FANGLH 9 лет назад
Родитель
Сommit
e9d5c9700f
17 измененных файлов с 307 добавлено и 220 удалено
  1. 9 6
      WeiChat/src/main/AndroidManifest.xml
  2. 8 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java
  3. 6 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  4. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/account/DataDownloadActivity.java
  5. 14 14
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  6. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/NavigationActivity.java
  7. 66 94
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  8. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/OAAdapter.java
  9. 74 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/OACalenderViewPagerAdapter.java
  10. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/CalendarDateFragmet.java
  11. 0 71
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/CalendarFragmet.java
  12. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonUtil.java
  13. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/StringUtils.java
  14. 98 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/UmengUtil.java
  15. 6 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/pageforms/ComplaintDetailActivity.java
  16. 7 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskB2BActivity.java
  17. 7 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/OACalendarView.java

+ 9 - 6
WeiChat/src/main/AndroidManifest.xml

@@ -597,9 +597,10 @@
         <activity android:name=".ui.erp.activity.oa.OAMainActivity" />
 
         <!-- 分享开始   umeng api key -->
+        <!--TODO 分享Id   android:value="57ea27bb67e58e088c003bbf" -->
         <meta-data
             android:name="UMENG_APPKEY"
-            android:value="57ea27bb67e58e088c003bbf" />
+            android:value="574504a167e58eec520017df" />
         <!-- weixin -->
         <activity
             android:name=".wxapi.WXEntryActivity"
@@ -883,11 +884,13 @@
         <activity
             android:name=".ui.erp.activity.oa.NavigationActivity"
             android:label="导航" />
-        <activity android:name=".ui.erp.activity.oa.NavigationWebActivity"/>
-        <activity android:name="com.xzjmyk.pm.newpedo.view.NewStepActivity"
-            android:label="UU运动"/>
-        <activity android:name="com.xzjmyk.pm.newpedo.view.NewStepListActivity"
-            android:label="更多历史记录"/>
+        <activity android:name=".ui.erp.activity.oa.NavigationWebActivity" />
+        <activity
+            android:name="com.xzjmyk.pm.newpedo.view.NewStepActivity"
+            android:label="UU运动" />
+        <activity
+            android:name="com.xzjmyk.pm.newpedo.view.NewStepListActivity"
+            android:label="更多历史记录" />
         <!-- 计步功能 服务-->
         <service
             android:name="com.xzjmyk.pm.newpedo.service.StepService"

+ 8 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java

@@ -112,11 +112,11 @@ public class MyApplication extends Application {
             public void run() {
                 //定位场景设置
                 MobclickAgent.setScenarioType(MyApplication.this, MobclickAgent.EScenarioType.E_UM_NORMAL);
-
+                initUmengStatistics();
                 SDKInitializer.initialize(getApplicationContext());
                 // 初始化数据库
                 SQLiteHelper.copyDatabaseFile(getApplicationContext());
-                //TODO
+
                 // 初始化定位
                 getBdLocationHelper();
 
@@ -135,9 +135,6 @@ public class MyApplication extends Application {
         }
         // 初始化网络监听
         mNetWorkObservable = new NetWorkObservable(this);
-//        LogUtil.d("applications",AndroidUtils.getEthernetMacAddress());
-//        LogUtil.d("applications",AndroidUtils.getAndroidId(this));
-//        LogUtil.d("applications",AndroidUtils.getWifiMacAddress(this));
         initErpDB();
 
     }
@@ -157,6 +154,12 @@ public class MyApplication extends Application {
         PlatformConfig.setQQZone("1104894295", "Nk8zMIz5YSqwRQ1F");
     }
 
+    private void initUmengStatistics() {
+        MobclickAgent.UMAnalyticsConfig config = new MobclickAgent.UMAnalyticsConfig(this, "574504a167e58eec520017df",
+                "baidu", MobclickAgent.EScenarioType.E_UM_NORMAL);
+        MobclickAgent.startWithConfigure(config);
+    }
+
     /**
      * 为HttpUtils配置参数
      */

+ 6 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -46,6 +46,8 @@ import com.xzjmyk.pm.activity.ui.contact.ContactFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.WorksFragment;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.UmengUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.AutoErpService;
 import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
 import com.xzjmyk.pm.activity.ui.groupchat.GroupChatFragment;
@@ -403,29 +405,19 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         String host = mConfig.MeetingHost;
         SIP_DOMAIN = host == null ? "120.24.211.24" : host;
         SIP_SERVER_HOST = host == null ? "120.24.211.24" : host;
-        Log.i("wang", "token:" + MyApplication.getInstance().mAccessToken);
-        Log.i("wang", "usId:" + MyApplication.getInstance().mLoginUser.getUserId());
-        Log.i("wang", "usId:" + CommonUtil.getMetaValue(this, "api_key"));
-        //TODO 百度开始推送
         PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY,
                 CommonUtil.getMetaValue(this, "api_key"));
         int isPush = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.BAIDU_PUSH);
         if (isPush == 0) {
             PushManager.stopWork(this);
         }
-        // TODO 判断上一个状态UU运动是否预关闭
         int isUUStep = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.UU_STEP);
         if (isUUStep == 1) {
             startService(new Intent(mContext, com.xzjmyk.pm.newpedo.service.StepService.class));
             PreferenceUtils.putInt(NewStepActivity.UU_STEP_NOTICE, 1);
             PushManager.resumeWork(MyApplication.getInstance());
         }
-        //TODO 发布版本关闭
-        if (AppConfig.COMPANY) {
-//            startService(new Intent(this, AlarmService.class));
-            startService(new Intent(this, AutoErpService.class));
-
-        }
+        startService(new Intent(this, AutoErpService.class));
         mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
         if (savedInstanceState != null) {
             restoreState(savedInstanceState);
@@ -501,7 +493,8 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
 
         //开启APP后自动开启UU运动服务,这里为了耗电占内存等情况暂时不设置开启APP自动开启UU运动
 //        openUUStepService();
-
+       String ids= UmengUtil.getDeviceInfo(ct);
+        LogUtil.i(ids);
     }
 
     private Messenger messenger;
@@ -796,7 +789,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         return (BusinessCircleFragment) sfmanager.findFragmentByTag(TAG_BusinessCircle);
     }
 
-    public  void setUnReader(int num){
+    public void setUnReader(int num) {
         mMsgUnReadNum = mMsgUnReadNum - oldERPNum > 0 ? (mMsgUnReadNum - oldERPNum) : 0;
         mMsgUnReadNum = mMsgUnReadNum + num;
         oldERPNum = num;

+ 4 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/account/DataDownloadActivity.java

@@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.android.volley.Response.ErrorListener;
 import com.android.volley.VolleyError;
+import com.umeng.analytics.MobclickAgent;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.AttentionUser;
@@ -137,6 +138,9 @@ public class DataDownloadActivity extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_data_download);
+        String name = CommonUtil.getName();
+        if (!StringUtils.isEmpty(name))
+            MobclickAgent.onProfileSignIn(name);
         UserSp.getInstance(DataDownloadActivity.this).setUpdate(false);// 进入下载资料界面,就将该值赋值false
         mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
         //mHandler = new Handler();

+ 14 - 14
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java

@@ -194,9 +194,9 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
             tv_customer_login.setText(getJSONString(object, "mpd_company"));
             tv_address_login.setText(getJSONString(object, "mpd_address"));
             tv_visit_theme.setText(getJSONString(object, "mpd_remark"));
-
         }
-    }
+
+       }
 
     private void setFocusable(FormEditText v, boolean focusable) {
         if (focusable) {
@@ -354,11 +354,11 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         formStore.put("emuu", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "b2b_uu"));//录入人uu
         formStore.put("enuu", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "companyEnUu"));//企业uu
         formStore.put("vr_title", tv_visit_theme.getText().toString());//主题
-        formStore.put("vr_detail", tv_visit_content.getText().toString());//内容
+        formStore.put("vr_detail", com.xzjmyk.pm.activity.ui.erp.util.StringUtils.string2Json(tv_visit_content.getText().toString()));//内容
         formStore.put("vr_cucode", cu_code);//客户编号
-        formStore.put("vr_cuname", tv_customer_login.getText().toString());//客户名字
+        formStore.put("vr_cuname", com.xzjmyk.pm.activity.ui.erp.util.StringUtils.string2Json(tv_customer_login.getText().toString()));//客户名字
         formStore.put("vr_cuaddress", tv_address_login.getText().toString());//客户地址
-        formStore.put("vr_cucontact", tv_linksman_login.getText().toString());//客户联系人
+        formStore.put("vr_cucontact", com.xzjmyk.pm.activity.ui.erp.util.StringUtils.string2Json(tv_linksman_login.getText().toString()));//客户联系人
         params.put("formStore", com.xzjmyk.pm.activity.ui.erp.util.StringUtils.mapToJson(formStore));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
@@ -389,25 +389,26 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
             Crouton.makeText(ct, "请输入拜访内容");
             return false;
         }
-        if (!validatorInput()){
+        if (!validatorInput()) {
             ToastMessage("不能输入特殊字符");
         }
-        return  tv_customer_login.testValidity()
+        return tv_customer_login.testValidity()
                 && tv_linksman_login.testValidity()
                 && tv_address_login.testValidity()
                 && tv_visit_theme.testValidity();
     }
 
 
-    private boolean validatorInput(String... message){
-        if (message==null||message.length<=0)return true;
-        for (String e:message){
-            if (!StringUtils.isEmpty(e)&&!validatorInput(e))return false;
+    private boolean validatorInput(String... message) {
+        if (message == null || message.length <= 0) return true;
+        for (String e : message) {
+            if (!StringUtils.isEmpty(e) && !validatorInput(e)) return false;
         }
         return true;
     }
-    private boolean validatorInput(String e){
-return true;
+
+    private boolean validatorInput(String e) {
+        return true;
     }
 
     private void sendHttpResquest(int what, String code) {
@@ -464,7 +465,6 @@ return true;
                             "\"vr_recorder\":\"" +
                             emname +
                             "\",\n" +
-                            //TODO 修改
                             "\"vr_status\":\"" +
                             "在录入" +
                             "\",\n" +

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

@@ -27,6 +27,7 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.WebViewCommActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.baidu.BaiduMapUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.baidu.OnGetRoutePlanResult;
@@ -117,7 +118,8 @@ public class NavigationActivity extends BaseActivity {
 
         public void onGetDrivingRouteResult(DrivingRouteResult result) {
             //驾车
-            if (result == null || SearchResult.ERRORNO.RESULT_NOT_FOUND == result.error) {
+            if (result == null || SearchResult.ERRORNO.RESULT_NOT_FOUND == result.error|| ListUtils.isEmpty(result.getRouteLines())||
+                    result.getRouteLines().get(0)==null) {
                 Toast.makeText(getApplicationContext(), "未搜索到结果", Toast.LENGTH_LONG).show();
                 return;
             }

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

@@ -8,9 +8,6 @@ import android.os.Handler;
 import android.os.Message;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentPagerAdapter;
 import android.support.v4.view.ViewPager;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -50,7 +47,7 @@ import com.xzjmyk.pm.activity.ui.erp.activity.WorkExtraActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.crm.VisitReportAddActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.form.DataFormDetailActivity;
 import com.xzjmyk.pm.activity.ui.erp.adapter.oa.OAAdapter;
-import com.xzjmyk.pm.activity.ui.erp.fragment.CalendarFragmet;
+import com.xzjmyk.pm.activity.ui.erp.adapter.oa.OACalenderViewPagerAdapter;
 import com.xzjmyk.pm.activity.ui.erp.model.Employees;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.OAModel;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
@@ -70,6 +67,7 @@ import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.MyListView;
+import com.xzjmyk.pm.activity.view.OACalendarView;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.crouton.Style;
 import com.xzjmyk.pm.activity.wxapi.ApiConfig;
@@ -160,13 +158,13 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     private List<OAModel> otherModels;
 
     private OAAdapter adapter; //当前列表的数据
-    private PagerAdapter pagerAdapter;//当前Viewpager适配器
+    private OACalenderViewPagerAdapter pagerAdapter;//当前Viewpager适配器
     private Date curDate;    //当前显示的日期  包含年月日信息
     private Set<Integer> meInt;     //我的任务
     private Set<Integer> otherInt;  //我的下属的任务
     private int posItem;           //当前为滑动到的哪个Viewpager
-    List<Map<String, Object>>  menusMap=new ArrayList<>();//菜单动态数据
-    
+    List<Map<String, Object>> menusMap = new ArrayList<>();//菜单动态数据
+
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -205,19 +203,19 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                         }
                         break;
                     case 0x13:
-                       array = JSON.parseObject(message).getJSONArray("listdata");//获取到数据
-                        if (array!=null){
-                           
-                            for (int i=0;i<array.size();i++){
-                                JSONObject object=array.getJSONObject(i);
-                                String MM_CALLER= object.getString("MM_CALLER");
-                                String MM_NAME= object.getString("MM_NAME");
-                                Map<String,Object> temp=new LinkedHashMap<>();
-                                temp.put("item_name",MM_NAME);
-                                temp.put("item_caller",MM_CALLER);
+                        array = JSON.parseObject(message).getJSONArray("listdata");//获取到数据
+                        if (array != null) {
+
+                            for (int i = 0; i < array.size(); i++) {
+                                JSONObject object = array.getJSONObject(i);
+                                String MM_CALLER = object.getString("MM_CALLER");
+                                String MM_NAME = object.getString("MM_NAME");
+                                Map<String, Object> temp = new LinkedHashMap<>();
+                                temp.put("item_name", MM_NAME);
+                                temp.put("item_caller", MM_CALLER);
                                 menusMap.add(temp);
                             }
-                            
+
                         }
                         break;
                     default:
@@ -264,6 +262,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     private float moveY;
     private boolean isB2b;
     private String workDailyAdd;
+    private OACalendarView calendarView;
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
@@ -430,10 +429,14 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
 
             @Override
             public void onPageSelected(int position) {
-                posItem = position;
-                curDate = date[position];
                 Calendar c = Calendar.getInstance();
                 c.setTime(curDate);
+                int day = c.get(Calendar.DAY_OF_MONTH);
+                calendarView = pagerAdapter.getmViews().get(position);
+                setCalenderOnClicklistener();
+                posItem = position;
+                calendarView.setDownIndex(day);
+                curDate = calendarView.getDownDate();
                 setDateTag(curDate);
                 if (CommonUtil.isNetWorkConnected(getApplication())) {
                     loadNetData(TimeUtils.ym_format.format(curDate));
@@ -479,7 +482,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         emptyLayout.setEmptyViewRes(R.layout.oa_empty_list);
         adapter = new OAAdapter(ct, util, new ArrayList<OAModel>());
         oa_listview.setAdapter(adapter);
-        listenerMap = new HashMap<>();
         curDate = new Date(System.currentTimeMillis());
         meInt = new HashSet<>();
         otherInt = new HashSet<>();
@@ -502,14 +504,13 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
             //没有下属
         }
         loadNetData(String.valueOf(TimeUtils.ym_long_2_str(System.currentTimeMillis())));
-        posItem = MAX_PAGER / 2;
-        setDate();
+        posItem = OACalenderViewPagerAdapter.MAX_NUM / 2;
         LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) viewPager.getLayoutParams(); // 取控件mGrid当前的布局参数   搜索
         linearParams.height = (getResources().getDisplayMetrics().heightPixels * 1 / 3);// 当控件的高强制设成50象素
         viewPager.setLayoutParams(linearParams); // 使设置好的布局参数应用到控件myGrid
-        pagerAdapter = new PagerAdapter(getSupportFragmentManager());
+        pagerAdapter = new OACalenderViewPagerAdapter(ct);
         viewPager.setAdapter(pagerAdapter);
-        viewPager.setCurrentItem(MAX_PAGER / 2);
+        viewPager.setCurrentItem(OACalenderViewPagerAdapter.MAX_NUM / 2);
         //判断是否是管理员
         CommonInterface.getInstance().judgeManager(this);
         CommonInterface.getInstance().getOutSetInfo(this);
@@ -579,7 +580,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         ViewUtil.LoginERPTask(ct, handler, 0x16);
     }
 
-    private void getMenuData(){
+    private void getMenuData() {
         String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/oa/getmenuconfig.action";
         final Map<String, Object> param = new HashMap<>();
         param.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
@@ -588,7 +589,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x13, null, null, "get");
     }
-    
+
     private void getDataByNet() {
         progressDialog.show();
         String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/crm/getstaffmsg.action";
@@ -603,7 +604,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     private void loadSuccess() {//下拉成功后添加到适配器
         setAdapterBeans();
         setDateToListener(isMe ? meInt : otherInt);
-
+        setCalenderOnClicklistener();
     }
 
     private void setAdapterBeans() {
@@ -611,7 +612,12 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     }
 
     private void setAdapterBeans(List<OAModel> showModel) {
-        if (ListUtils.isEmpty(showModel)) return;
+        if (ListUtils.isEmpty(showModel)) {
+            adapter.setModels(showModel);
+            adapter.notifyDataSetChanged();
+            emptyLayout.showEmpty();
+            return;
+        }
         int ok = 0, size = 0;
         List<OAModel> filterModels = new ArrayList<>();
         for (OAModel e : showModel) {
@@ -638,20 +644,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     }
 
 
-    /**
-     * 通过JSONObject获取开始时间,用于筛选
-     *
-     * @param object
-     * @return
-     */
-    private long getTimeForObject(JSONObject object) {
-        if (isB2b) {
-            return OACheckUtil.getJsonLong(object, "mp_visittime", "mpd_arrivedate", "recorddate", "vr_startdate", "vr_enddate");
-        }
-        return TimeUtils.f_str_2_long(OACheckUtil.getJson2Text(object, "startdate", "vr_visittime", "mpd_arrivedate"));
-    }
-
-
     //弹出菜单
     private PopupWindow popupWindow = null;
 
@@ -690,13 +682,13 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                             intent = new Intent(ct, VisitReportAddActivity.class);
                             break;
                         default:
-                            String caller=   (String)menusMap.get(position).get("item_caller");
-                            String name=(String)menusMap.get(position).get("item_name");
-                            LogUtil.d("caller:"+caller);
-                            intent=new Intent(ct,DataFormDetailActivity.class)
-                                    .putExtra("caller",caller)
-                            .putExtra("title",name);
-                            
+                            String caller = (String) menusMap.get(position).get("item_caller");
+                            String name = (String) menusMap.get(position).get("item_name");
+                            LogUtil.d("caller:" + caller);
+                            intent = new Intent(ct, DataFormDetailActivity.class)
+                                    .putExtra("caller", caller)
+                                    .putExtra("title", name);
+
                             break;
 
                     }
@@ -737,14 +729,14 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         }
         map.put("item_name", "新增拜访报告");
         list.add(map);
-        if (menusMap!=null) {
+        if (menusMap != null) {
             if (menusMap.size() != 0) {
                 for (int i = 0; i < menusMap.size(); i++) {
                     list.add(menusMap.get(i));
                 }
             }
         }
-        menusMap=list;
+        menusMap = list;
         return list;
     }
 
@@ -772,8 +764,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         setAdapterBeans();
     }
 
-    private int MAX_PAGER = 30;
-    private Date[] date = new Date[MAX_PAGER];
 
     private void setDateTag(Date date) {
         Calendar c = Calendar.getInstance();
@@ -786,17 +776,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         week_tv.setText(TimeUtils.getWeek(TimeUtils.s_format.format(date)));
     }
 
-    private void setDate() {
-        //当前天在 MAX_PAGER/2 位置
-        Calendar c = Calendar.getInstance();
-        Date date = new Date();
-        for (int i = 0; i < MAX_PAGER; i++) {
-            c.setTime(date);
-            c.add(Calendar.MONTH, i - (MAX_PAGER / 2));
-            c.set(Calendar.DAY_OF_MONTH, 1);
-            this.date[i] = c.getTime();
-        }
-    }
 
     @Override
     public void onClick(View view) {
@@ -906,8 +885,27 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     }
 
     public void setDateToListener(Set<Integer> in) {
-        if (listenerMap.containsKey(TimeUtils.ym_format.format(curDate)) && listenerMap.get(TimeUtils.ym_format.format(curDate)) != null)
-            listenerMap.get(TimeUtils.ym_format.format(curDate)).onChange(in);
+        OACalendarView calendarView = getCalendarView();
+        if (calendarView != null)
+            calendarView.setDecoratDays(in);
+    }
+
+    private void setCalenderOnClicklistener() {
+        OACalendarView calendarView = getCalendarView();
+        if (calendarView != null)
+            calendarView.setDateListener(new OACalendarView.OnSelectDateListener() {
+                @Override
+                public void result(Date date) {
+                    setClickDay(date);
+                }
+            });
+    }
+
+    private OACalendarView getCalendarView() {
+        if (calendarView == null && pagerAdapter != null && pagerAdapter.getmViews() != null) {
+            calendarView = pagerAdapter.getmViews().get(posItem);
+        }
+        return calendarView;
     }
 
     @Override
@@ -924,30 +922,9 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         }
     }
 
-    class PagerAdapter extends FragmentPagerAdapter {
-
-        public PagerAdapter(FragmentManager fm) {
-            super(fm);
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            return CalendarFragmet.getInstance(date[position]);
-        }
-
-        @Override
-        public int getCount() {
-            return MAX_PAGER;
-        }
-    }
 
     /*当点击了指定日期(点击日期、滑动时候触发)*/
     public void setClickDay(Date date) {
-        if (this.date != null && this.date.length > posItem) {
-            this.date[posItem] = date;
-            Calendar c = Calendar.getInstance();
-            c.setTime(this.date[posItem]);
-        }
         curDate = date;
         setDateTag(date);
         setAdapterBeans();
@@ -961,12 +938,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     }
 
 
-    private Map<String, OnTaskChangeListener> listenerMap;
-
-    public void setListener(String key, OnTaskChangeListener listener) {
-        listenerMap.put(key, listener);
-    }
-
     @Override
     public boolean dispatchTouchEvent(MotionEvent ev) {
         if (scrollable) {
@@ -998,4 +969,5 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     public interface OnTaskChangeListener {
         void onChange(Set<Integer> in);
     }
+
 }

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/OAAdapter.java

@@ -85,7 +85,6 @@ public class OAAdapter extends BaseAdapter {
         //当前有三个类型,任务日程(status_tv) 拜访报告(status_img) 外勤计划(status_img)
         String status = model.getStatus();
         String handler = model.isMe() ? "" : model.getHandler();
-        holder.status_tv.setVisibility(!model.isMission() ? View.VISIBLE : View.GONE);
         holder.status_img.setVisibility(model.isMission() ? View.VISIBLE : View.GONE);
         if (model.isTask()) {
             holder.status_tv.setText(status);
@@ -102,6 +101,8 @@ public class OAAdapter extends BaseAdapter {
             holder.status_tv.setText("已拜访");
         }
         holder.handler_tv.setText(handler);
+        if (model.isMission())
+            holder.status_tv.setText("");
     }
 
 

+ 74 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/OACalenderViewPagerAdapter.java

@@ -0,0 +1,74 @@
+package com.xzjmyk.pm.activity.ui.erp.adapter.oa;
+
+import android.content.Context;
+import android.support.v4.view.PagerAdapter;
+import android.util.SparseArray;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.view.OACalendarView;
+
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * Created by Bitliker on 2017/4/19.
+ */
+
+public class OACalenderViewPagerAdapter extends PagerAdapter {
+    public static final int MAX_NUM = 30;
+    private Context mContext;
+    private SparseArray<OACalendarView> mViews;
+    private Date[] date = new Date[MAX_NUM];
+
+    public OACalenderViewPagerAdapter(Context context) {
+        this.mContext = context;
+        this.mViews = new SparseArray<>();
+        setDate();
+    }
+
+    @Override
+    public int getCount() {
+        return MAX_NUM;
+    }
+
+    @Override
+    public boolean isViewFromObject(View view, Object object) {
+        return view == object;
+    }
+
+    @Override
+    public Object instantiateItem(ViewGroup container, int position) {
+        LogUtil.i("instantiateItem="+position);
+        if (mViews.get(position) == null) {
+            OACalendarView calendarView = new OACalendarView(mContext);
+            Date date = this.date[position];
+            calendarView.setCurDate(date);
+            mViews.put(position, calendarView);
+        }
+        container.addView(mViews.get(position));
+        return mViews.get(position);
+    }
+
+    @Override
+    public void destroyItem(ViewGroup container, int position, Object object) {
+        container.removeView((View) object);
+    }
+
+    public SparseArray<OACalendarView> getmViews() {
+        return mViews;
+    }
+
+    private void setDate() {
+        //当前天在 MAX_PAGER/2 位置
+        Calendar c = Calendar.getInstance();
+        Date date = new Date();
+        for (int i = 0; i < MAX_NUM; i++) {
+            c.setTime(date);
+            c.add(Calendar.MONTH, i - (MAX_NUM / 2));
+            c.set(Calendar.DAY_OF_MONTH, 1);
+            this.date[i] = c.getTime();
+        }
+    }
+}

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

@@ -21,7 +21,7 @@ import java.util.Set;
  */
 
 /**
- * @desc:此类暂时过渡,需要删除并优化---详情请见 CalendarFragmet
+ * @desc:此类暂时过渡,需要删除并优化---详情请见
  * @author:Arison on 2017/1/18
  */
 public class CalendarDateFragmet extends Fragment {

+ 0 - 71
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/CalendarFragmet.java

@@ -1,71 +0,0 @@
-package com.xzjmyk.pm.activity.ui.erp.fragment;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.erp.activity.oa.OAActivity;
-import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.view.OACalendarView;
-
-import java.util.Date;
-import java.util.Set;
-
-/**
- * Created by pengminggong on 2016/9/28.
- */
-
-public class CalendarFragmet extends Fragment {
-    private OAActivity activity;
-    private OACalendarView calendarView;
-
-    /**
-     * @param date 显示月份
-     * @return
-     */
-    public static CalendarFragmet getInstance(Date date) {
-        CalendarFragmet fragment = new CalendarFragmet();
-        Bundle bundle = new Bundle();
-        bundle.putSerializable("DATA", date);
-        fragment.setArguments(bundle);
-        return fragment;
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        activity = (OAActivity) context;
-    }
-
-    @Nullable
-    @Override
-    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View view = inflater.inflate(R.layout.item_calendar, container, false);
-        calendarView = (OACalendarView) view.findViewById(R.id.calender);
-        Date date = (Date) getArguments().getSerializable("DATA");
-        calendarView.setCurDate(date);
-        //判断是否是当月
-        calendarView.getCurDate();
-        if (activity != null) {
-            activity.setListener(TimeUtils.ym_format.format(date), new OAActivity.OnTaskChangeListener() {
-                @Override
-                public void onChange(Set<Integer> in) {
-                    calendarView.setDecoratDays(in);
-                }
-            });
-        }
-        calendarView.setDateListener(new OACalendarView.OnSelectDateListener() {
-            @Override
-            public void result(Date date) {
-                activity.setClickDay(date);
-            }
-        });
-        return view;
-    }
-
-}

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonUtil.java

@@ -1037,7 +1037,7 @@ public class CommonUtil {
         String temp = "";
         temp = et.getText().toString().trim();
         temp = removeStringMark(temp);
-        return temp;
+        return StringUtils.string2Json(temp);
     }
 
     /**

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

@@ -336,6 +336,7 @@ public class StringUtils {
      */
     public static String string2Json(String s) {
         StringBuffer sb = new StringBuffer();
+        if (isEmpty(s))return "";
         for (int i = 0; i < s.length(); i++) {
             char c = s.charAt(i);
             switch (c) {

+ 98 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/UmengUtil.java

@@ -0,0 +1,98 @@
+package com.xzjmyk.pm.activity.ui.erp.util;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import android.text.TextUtils;
+
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.lang.reflect.Method;
+
+/**
+ * Created by Bitliker on 2017/4/19.
+ */
+
+public class UmengUtil {
+    public static boolean checkPermission(Context context, String permission) {
+        boolean result = false;
+        if (Build.VERSION.SDK_INT >= 23) {
+            try {
+                Class<?> clazz = Class.forName("android.content.Context");
+                Method method = clazz.getMethod("checkSelfPermission", String.class);
+                int rest = (Integer) method.invoke(context, permission);
+                if (rest == PackageManager.PERMISSION_GRANTED) {
+                    result = true;
+                } else {
+                    result = false;
+                }
+            } catch (Exception e) {
+                result = false;
+            }
+        } else {
+            PackageManager pm = context.getPackageManager();
+            if (pm.checkPermission(permission, context.getPackageName()) == PackageManager.PERMISSION_GRANTED) {
+                result = true;
+            }
+        }
+        return result;
+    }
+
+    public static String getDeviceInfo(Context context) {
+        try {
+            org.json.JSONObject json = new org.json.JSONObject();
+            android.telephony.TelephonyManager tm = (android.telephony.TelephonyManager) context
+                    .getSystemService(Context.TELEPHONY_SERVICE);
+            String device_id = null;
+            if (checkPermission(context, Manifest.permission.READ_PHONE_STATE)) {
+                device_id = tm.getDeviceId();
+            }
+            String mac = null;
+            FileReader fstream = null;
+            try {
+                fstream = new FileReader("/sys/class/net/wlan0/address");
+            } catch (FileNotFoundException e) {
+                fstream = new FileReader("/sys/class/net/eth0/address");
+            }
+            BufferedReader in = null;
+            if (fstream != null) {
+                try {
+                    in = new BufferedReader(fstream, 1024);
+                    mac = in.readLine();
+                } catch (IOException e) {
+                } finally {
+                    if (fstream != null) {
+                        try {
+                            fstream.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    if (in != null) {
+                        try {
+                            in.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            }
+            json.put("mac", mac);
+            if (TextUtils.isEmpty(device_id)) {
+                device_id = mac;
+            }
+            if (TextUtils.isEmpty(device_id)) {
+                device_id = android.provider.Settings.Secure.getString(context.getContentResolver(),
+                        android.provider.Settings.Secure.ANDROID_ID);
+            }
+            json.put("device_id", device_id);
+            return json.toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}

+ 6 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/pageforms/ComplaintDetailActivity.java

@@ -32,11 +32,13 @@ import com.xzjmyk.pm.activity.bean.oa.PlatComAfBean;
 import com.xzjmyk.pm.activity.bean.oa.SelectEmUser;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectCollisionActivity;
+import com.xzjmyk.pm.activity.ui.erp.entity.SelectCollisionTurnBean;
 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.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.oa.OAConfig;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomerScrollView;
 import com.xzjmyk.pm.activity.ui.platform.activity.ChangeDealManActivity;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
@@ -132,8 +134,10 @@ public class ComplaintDetailActivity extends BaseActivity {
 
     private void doSelectDealMan() {
         Intent intent = new Intent(ct, SelectCollisionActivity.class);
-        intent.putExtra("title", "选择执行人");
-        intent.putExtra("single", true);
+        SelectCollisionTurnBean bean = new SelectCollisionTurnBean()
+                .setTitle("选择执行人")
+                .setSingleAble(true);
+        intent.putExtra(OAConfig.MODEL_DATA, bean);
         startActivityForResult(intent, 0x01);
     }
 

+ 7 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskB2BActivity.java

@@ -170,6 +170,7 @@ public class TaskB2BActivity extends BaseActivity implements RecognizerDialogLis
                             JSONObject item = data.getJSONObject(i);
                             process.setTaskid(String.valueOf(item.get("id")));//id
                             process.setRecorder(item.getString("recorder"));//发起人
+                            process.setRecorderid(item.getString("recordercode"));//发起人
                             process.setStatus(item.getString("status"));//状态
                             process.setMainname(item.getString("status"));//状态
                             process.setTaskname(item.getString("taskname"));//名称
@@ -244,29 +245,27 @@ public class TaskB2BActivity extends BaseActivity implements RecognizerDialogLis
         }
         listview_main.onRefreshComplete();
         LogUtil.prinlnLongMsg("login_Name,allList", login_Name + JSON.toJSONString(allList));
+        String emcode = CommonUtil.getEmcode();
         if (ListUtils.isEmpty(allList)) return;
         for (int i = 0; i < allList.size(); i++) {
             // 待处理
-            if ((login_Name.equals(allList.get(i).getDealpersoncode()) &&
+            if ((emcode.equals(allList.get(i).getRa_resourcecode()) &&
                     "进行中".equals(allList.get(i).getStatus()))
-                    || (login_Name.equals(allList.get(i).getRecorder()) &&
+                    || (emcode.equals(allList.get(i).getRecorderid()) &&
                     "待确认".equals(allList.get(i).getStatus()))) {
                 waitList.add(allList.get(i));
             }
 
             //已处理
-            if ((login_Name.equals(allList.get(i).getDealpersoncode()) &&
+            if ((emcode.equals(allList.get(i).getRa_resourcecode()) &&
                     "已完成".equals(allList.get(i).getStatus()))
-                    || (login_Name.equals(allList.get(i).getDealpersoncode()) &&
+                    || (!emcode.equals(allList.get(i).getRecorderid()) &&
                     "待确认".equals(allList.get(i).getStatus()))) {
                 doneList.add(allList.get(i));
             }
 
             //我发起的
-            if ((login_Name.equals(allList.get(i).getRecorder()) &&
-                    "进行中".equals(allList.get(i).getStatus())) ||
-                    (login_Name.equals(allList.get(i).getRecorder()) &&
-                            "已完成".equals(allList.get(i).getStatus()))) {
+            if (emcode.equals(allList.get(i).getRecorderid()) && !"待确认".equals(allList.get(i).getStatus())) {
                 isendList.add(allList.get(i));
             }
 

+ 7 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/OACalendarView.java

@@ -5,7 +5,6 @@ import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Paint;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
 
@@ -313,11 +312,16 @@ public class OACalendarView extends View implements View.OnTouchListener {
         return curDate;
     }
 
+    public Date getDownDate() {
+        int day= date[downIndex];
+        Calendar c=Calendar.getInstance();
+        c.setTime(curDate);
+        c.set(Calendar.DAY_OF_MONTH,day);
+        return c.getTime();
+    }
 
     public void setDownIndex(int day) {
-        Log.i("gongpengming", "day=" + day);
         this.downIndex = startIndex + day-1;
-        Log.i("gongpengming", "downIndex=" + downIndex);
         invalidate();
     }