Преглед изворни кода

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

SpringBoots пре 9 година
родитељ
комит
104e82ee53
43 измењених фајлова са 1360 додато и 472 уклоњено
  1. 12 6
      WeiChat/src/main/AndroidManifest.xml
  2. 8 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java
  3. 9 16
      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. 109 18
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  6. 4 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/ProcessB2BActivity.java
  7. 20 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddFlihtsActivity.java
  8. 174 119
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/DailydetailsActivity.java
  9. 356 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/FlihtsDateSelectActivity.java
  10. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/NavigationActivity.java
  11. 66 94
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  12. 28 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/PlatWDdetailyActivity.java
  13. 53 56
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkDailyShowActivity.java
  14. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/OAAdapter.java
  15. 74 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/OACalenderViewPagerAdapter.java
  16. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/CalendarDateFragmet.java
  17. 0 71
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/CalendarFragmet.java
  18. 14 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/FlightsModel.java
  19. 10 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/AddFlihtsPresenter.java
  20. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IAddFlihtsView.java
  21. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonUtil.java
  22. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/StringUtils.java
  23. 98 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/UmengUtil.java
  24. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/OfficeAddressSettingsActivity.java
  25. 0 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SettingActivity.java
  26. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/activity/ChangeDealManActivity.java
  27. 10 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/adapter/PagesModelAdapter.java
  28. 16 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/pageforms/ComplaintDetailActivity.java
  29. 8 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/pageforms/FormDetailActivity.java
  30. 5 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskAddB2BActivity.java
  31. 7 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskB2BActivity.java
  32. 7 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/OACalendarView.java
  33. 7 9
      WeiChat/src/main/java/com/xzjmyk/pm/newpedo/view/NewStepActivity.java
  34. 20 2
      WeiChat/src/main/res/layout/activity_add_flihts.xml
  35. 1 1
      WeiChat/src/main/res/layout/activity_common_docui.xml
  36. 1 2
      WeiChat/src/main/res/layout/activity_newstep.xml
  37. 47 2
      WeiChat/src/main/res/layout/activity_platdaily_detail.xml
  38. 50 2
      WeiChat/src/main/res/layout/activity_workdaily_detail.xml
  39. 17 0
      WeiChat/src/main/res/layout/flihts_calendar_select.xml
  40. 53 0
      WeiChat/src/main/res/layout/flihts_listview.xml
  41. 37 0
      WeiChat/src/main/res/layout/item_flihts.xml
  42. 18 7
      WeiChat/src/main/res/layout/plat_add_people.xml
  43. 4 2
      WeiChat/src/main/res/layout/plat_comdetail_docui.xml

+ 12 - 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"
@@ -907,6 +910,9 @@
 
         <activity android:name=".ui.platform.pageforms.ComplaintDetailActivity"
             android:label="申诉单"/>
+
+        <activity android:name=".ui.erp.activity.oa.FlihtsDateSelectActivity"
+            android:label="选择日期"/>
     </application>
 
 </manifest>

+ 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配置参数
      */

+ 9 - 16
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;
@@ -62,7 +64,6 @@ import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
 import com.xzjmyk.pm.activity.xmpp.CoreService;
 import com.xzjmyk.pm.activity.xmpp.ListenerManager;
 import com.xzjmyk.pm.activity.xmpp.listener.AuthStateListener;
-import com.xzjmyk.pm.newpedo.view.NewStepActivity;
 
 import java.util.HashMap;
 import java.util.List;
@@ -403,29 +404,20 @@ 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) {
+        if (isUUStep != 0) {
             startService(new Intent(mContext, com.xzjmyk.pm.newpedo.service.StepService.class));
-            PreferenceUtils.putInt(NewStepActivity.UU_STEP_NOTICE, 1);
+//            PreferenceUtils.putInt(NewStepActivity.UU_STEP_NOTICE, 1);
+            PreferenceUtils.putInt(MainActivity.UU_STEP, 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();

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

@@ -1,17 +1,27 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.crm;
 
 
+import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.os.Parcelable;
+import android.text.Editable;
 import android.text.Html;
+import android.text.Selection;
 import android.text.TextUtils;
+import android.util.DisplayMetrics;
 import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.WindowManager;
+import android.widget.EditText;
+import android.widget.PopupWindow;
+import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -41,6 +51,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CommonInterface;
 import com.xzjmyk.pm.activity.ui.erp.view.SingleDialog;
 import com.xzjmyk.pm.activity.util.DateFormatUtil;
+import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
@@ -194,9 +205,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 +365,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 +400,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 +476,6 @@ return true;
                             "\"vr_recorder\":\"" +
                             emname +
                             "\",\n" +
-                            //TODO 修改
                             "\"vr_status\":\"" +
                             "在录入" +
                             "\",\n" +
@@ -629,10 +640,11 @@ return true;
         if (requestCode == 0x22 && resultCode == 0x20) {
             SelectAimModel model = data.getParcelableExtra("data");
             LogUtil.d(JSON.toJSONString(model));
-            String address = model.getAddress();
-            String name = model.getName();
-            tv_customer_login.setText(name);
-            tv_address_login.setText(address);
+            doEditShortName(model); //编辑地址简称
+//            String address = model.getAddress();
+//            String name = model.getName();
+//            tv_customer_login.setText(name);
+//            tv_address_login.setText(address);
 //            SelectBean b = data.getParcelableExtra("data");
 //            if (b == null || StringUtils.isEmpty(b.getJson())) return;
 //            JsonValidator validator = new JsonValidator();
@@ -690,6 +702,85 @@ return true;
         }
     }
 
+    private TextView title_tv;
+    private PopupWindow popupWindow = null;
+    private void doEditShortName(final SelectAimModel model) {
+        // 一个自定义的布局,作为显示的内容
+        View contentView = LayoutInflater.from(ct).inflate(
+                R.layout.item_select_aim_pop, null);
+
+        // 设置按钮的点击事件
+        final EditText company_et = (EditText) contentView.findViewById(R.id.company_et);
+        TextView address_tv = (TextView) contentView.findViewById(R.id.address_tv);
+        title_tv = (TextView) contentView.findViewById(R.id.title_tv);
+        title_tv.setText("完善客户地址名称");
+        company_et.setText(model.getName());
+        address_tv.setText("客户地址: " + model.getAddress());
+        Editable etext = company_et.getText();
+        Selection.setSelection(etext, etext.length());
+        DisplayMetrics dm = getResources().getDisplayMetrics();
+        int w_screen = dm.widthPixels;
+        int h_screen = dm.heightPixels;
+        w_screen = DisplayUtil.dip2px(this, 300);
+        h_screen = DisplayUtil.dip2px(this, 185);
+
+        contentView.findViewById(R.id.goto_tv).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                tv_customer_login.setText(model.getName() + "");
+                tv_address_login.setText(model.getAddress() + "");
+                popupWindow.dismiss();
+            }
+        });
+        contentView.findViewById(R.id.sure_tv).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                String com = company_et.getText().toString();
+                if (!StringUtils.isEmpty(com)) {
+                    tv_customer_login.setText(com);
+                } else {
+                    tv_customer_login.setText(model.getName() + "");
+                }
+                tv_address_login.setText(model.getAddress());
+                popupWindow.dismiss();
+            }
+        });
+        popupWindow = new PopupWindow(contentView, w_screen, h_screen, true);
+        popupWindow.setTouchable(true);
+        popupWindow.setOutsideTouchable(false);
+        // 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
+        popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_main));
+        // 设置好参数之后再show
+        popupWindow.showAtLocation(contentView, Gravity.CENTER, 0, 0);
+        setbg(0.4f);
+    }
+    private void setbg(float alpha) {
+        setBackgroundAlpha(this, alpha);
+        if (popupWindow == null) return;
+        popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                setBackgroundAlpha(VisitReportAddActivity.this, 1f);
+            }
+        });
+    }
+
+    /**
+     * 设置页面的透明度
+     * 兼容华为手机(在个别华为手机上 设置透明度会不成功)
+     *
+     * @param bgAlpha 透明度   1表示不透明
+     */
+    public void setBackgroundAlpha(Activity activity, float bgAlpha) {
+        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
+        lp.alpha = bgAlpha;
+        if (bgAlpha == 1) {
+            activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
+        } else {
+            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
+        }
+        activity.getWindow().setAttributes(lp);
+    }
 
     private void showDateDialog(final FormEditText tv) {
         DateTimePicker picker = new DateTimePicker(this, DateTimePicker.HOUR_OF_DAY);

+ 4 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/ProcessB2BActivity.java

@@ -144,8 +144,7 @@ public class ProcessB2BActivity extends BaseActivity implements View.OnClickList
                     break;
                 case SUSSCESS_already:
                     itemArray = JSON.parseObject(result).getJSONArray("data");
-                    if (page == 1)
-                        arrayRe.clear();
+                    if (pageDone == 1) arrayRe.clear();
                     arrayRe.addAll(itemArray);
                     if (mAdapter == null) {
                         mAdapter = new ProcessAdapter(ct, arrayRe);
@@ -442,7 +441,7 @@ public class ProcessB2BActivity extends BaseActivity implements View.OnClickList
                 tv_process_un.setSelected(true);
                 tv_process_already.setSelected(false);
                 tv_process_me.setSelected(false);
-                mList.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+                mList.setMode(PullToRefreshBase.Mode.BOTH);
                 loadProcessToDo(page);
 
                 break;
@@ -488,13 +487,13 @@ public class ProcessB2BActivity extends BaseActivity implements View.OnClickList
     }
 
 
-    private void loadProcesstoAlreadyDo(int page) {
+    private void loadProcesstoAlreadyDo(int pageDone) {
         String url = ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getAuditDone;
         Map<String, Object> params = new HashMap<>();
         params.put("emuu", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "b2b_uu"));
         params.put("enuu", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "companyEnUu"));
         params.put("count", "1000");
-        params.put("page", page);
+        params.put("page", pageDone);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
         ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, SUSSCESS_already, null, null, "get");

+ 20 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddFlihtsActivity.java

@@ -8,7 +8,9 @@ import android.text.Editable;
 import android.text.Selection;
 import android.util.Log;
 import android.view.View;
+import android.widget.Button;
 import android.widget.EditText;
+import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
@@ -43,6 +45,10 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
     private TextView time_tv;
     @ViewInject(R.id.date_tv)
     private TextView date_tv;
+    @ViewInject(R.id.calender_select_ll)
+    private LinearLayout calender_select_ll;
+    @ViewInject(R.id.click_btn)
+    private Button click_btn;
     @ViewInject(R.id.department_tv)
     private TextView department_tv;
     @ViewInject(R.id.munber_tv)
@@ -80,6 +86,7 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
             findViewById(R.id.date_tv).setOnClickListener(this);
             findViewById(R.id.department_tv).setOnClickListener(this);
             findViewById(R.id.munber_tv).setOnClickListener(this);
+            findViewById(R.id.calender_select_ll).setOnClickListener(this);
             collision_department_tv.setOnClickListener(this);
             collision_munber_tv.setOnClickListener(this);
         } else {
@@ -150,6 +157,11 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
                 presenter.putData2Intent(view.getId(), intent);
                 startActivityForResult(intent, COLLISION_DEPARTMENT_TV);
                 break;
+            case R.id.calender_select_ll:
+                //TODO 进入修改班次的考勤日期选择,跳日历界面
+//                ToastMessage("进入修改班次的考勤日期选择,跳日历界面");
+                startActivity(new Intent(getApplicationContext(),FlihtsDateSelectActivity.class));
+                break;
         }
     }
 
@@ -200,13 +212,17 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
     @Override
     public void updateTime(String time) {
         time_tv.setText(StringUtils.isEmpty(time) ? "" : time);
-
     }
 
     @Override
-    public void updateDate(String date) {
-        date_tv.setText(StringUtils.isEmpty(date) ? "" : date);
-
+    public void updateDate(String date,boolean isUpdate) {
+        if (isUpdate) {
+            date_tv.setVisibility(View.GONE);
+            calender_select_ll.setVisibility(View.VISIBLE);
+            click_btn.setText("更新");
+        }else {
+            date_tv.setText(StringUtils.isEmpty(date) ? "" : date);
+        }
     }
 
     @Override

+ 174 - 119
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/DailydetailsActivity.java

@@ -22,6 +22,7 @@ import com.alibaba.fastjson.JSON;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.DailyDetailsApprovalFlowAdapter;
 import com.xzjmyk.pm.activity.bean.oa.CommonApprovalFlowBean;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
@@ -31,6 +32,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 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.view.CustomerScrollView;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.view.MyListView;
 
@@ -98,6 +100,138 @@ public class DailydetailsActivity extends BaseActivity {
     private String undotask;
     private WebSettings undo_settings;
     private View hide_above_af;
+    private ImageView photo_im;
+    private TextView name_tv;
+    private TextView section_tv;
+    private CustomerScrollView csv_hide;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        progressDialog.show();
+        initView();
+        initData();
+        initClickEvent();
+    }
+
+    private void initClickEvent() {
+
+        resubmit_ll.setOnClickListener(new View.OnClickListener() { //TODO 重新提交
+            @Override
+            public void onClick(View v) {
+
+                if (!TextUtils.isEmpty(submittype) && submittype.equals("unsubmit")){//未提交状态
+                    startActivity(new Intent(activity, WorkDailyAddActivity.class)
+                            .putExtra("caller", mCaller)
+                            .putExtra("id", mkeyValue)
+                            .putExtra("rs_summary", summary)
+                            .putExtra("rs_plan", plan)
+                            .putExtra("rs_experience", experience)
+                            .putExtra("resubmit", "resubmit"));
+                    Log.i("dosubmit_id", mkeyValue + "");
+                    finish();
+                }else {                                                             //提交状态
+                    new AlertDialog
+                            .Builder(mContext)
+                            .setTitle("温馨提示")
+                            .setMessage("\t\t确认反提交该条单据?")
+                            .setNegativeButton("取消",null)
+                            .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+                                @Override
+                                public void onClick(DialogInterface dialog, int which) {
+                                    String retype = "reforsub";
+                                    doresubmit(retype);
+                                }
+                            }).show();
+                }
+
+            }
+        });
+
+        delete_ll.setOnClickListener(new View.OnClickListener() {  //TODO 删除
+            @Override
+            public void onClick(View v) {
+                if (!TextUtils.isEmpty(submittype) && submittype.equals("unsubmit")){
+                    new AlertDialog
+                            .Builder(mContext)
+                            .setTitle("温馨提示")
+                            .setMessage("\t\t确认删除该条已保存单据?")
+                            .setNegativeButton("取消", null)
+                            .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+                                @Override
+                                public void onClick(DialogInterface dialog, int which) {
+                                    dodelete(mCaller, mkeyValue);
+                                }
+                            }).show();
+
+                }else {
+                    new AlertDialog
+                            .Builder(mContext)
+                            .setTitle("温馨提示")
+                            .setMessage("\t\t确认删除该条已提交单据?")
+                            .setNegativeButton("取消", null)
+                            .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+                                @Override
+                                public void onClick(DialogInterface dialog, int which) {
+                                    String retype = "refordelete";
+                                    doresubmit(retype);
+                                }
+                            }).show();
+                }
+
+            }
+        });
+    }
+
+
+    public void initView() {
+
+        setContentView(R.layout.activity_workdaily_detail);
+        getSupportActionBar().setTitle("日报详情");
+
+        csv_hide = (CustomerScrollView) findViewById(R.id.csv_hide);
+        photo_im = (ImageView) findViewById(R.id.common_docui_photo_img);
+        name_tv = (TextView) findViewById(R.id.common_docui_name_tv);
+        section_tv = (TextView) findViewById(R.id.common_docui_Section_tv);
+        wdd_data = (TextView) findViewById(R.id.work_daily_detail_time_tv);
+        wdd_summary = (TextView) findViewById(R.id.work_daily_detail_summary_tv);
+        wdd_plan = (TextView) findViewById(R.id.work_daily_detail_plan_tv);
+        wdd_experience = (TextView) findViewById(R.id.work_daily_detail_experience_tv);
+        wdd_status = (TextView) findViewById(R.id.work_daily_detail_status_tv);
+        plan_ll = (LinearLayout) findViewById(R.id.work_daily_detail_plan_ll);
+        experience_ll = (LinearLayout) findViewById(R.id.work_daily_detail_experience_ll);
+        approval_flowlv = (MyListView) findViewById(R.id.work_daily_detail_approval_flow_lv);
+        unsubmit_iv = (ImageView) findViewById(R.id.work_daily_unsubmit_iv);
+        resanddel_ll = (LinearLayout) findViewById(R.id.item_common_docui_res_and_del_ll);
+        resubmit_ll = (LinearLayout) findViewById(R.id.common_docui_resubmit_ll);
+        delete_ll = (LinearLayout) findViewById(R.id.common_docui_delete_ll);
+        resubmit_tv = (TextView) findViewById(R.id.common_docui_resubmit_tv);
+        done_task_ll = (LinearLayout) findViewById(R.id.work_daily_detail_donetask_ll);
+        donetask_wv = (WebView) findViewById(R.id.donetask_wv);
+        undo_task_ll = (LinearLayout) findViewById(R.id.work_daily_detail_undotask_ll);
+        undotask_wv = (WebView) findViewById(R.id.undotask_wv);
+        hide_above_af = findViewById(R.id.hide_above_af);
+
+        done_settings = donetask_wv.getSettings();
+        done_settings.setSupportZoom(true);
+        done_settings.setTextSize(WebSettings.TextSize.SMALLER);//已完成任务设置web字体大小
+
+        undo_settings = undotask_wv.getSettings();
+        undo_settings.setSupportZoom(true);
+        undo_settings.setTextSize(WebSettings.TextSize.SMALLER); //未完成任务设置web字体大小
+
+        mEmptyLayput_approvalflow = new EmptyLayout(this, approval_flowlv);
+        mEmptyLayput_approvalflow.setShowEmptyButton(false);
+        mEmptyLayput_approvalflow.setShowErrorButton(false);
+        mEmptyLayput_approvalflow.setShowLoadingButton(false);
+        //加载审批流的适配器
+        mCommonApprovalFlowBean = new CommonApprovalFlowBean();
+        mDailyDetailsApprovalFlowAdapter = new DailyDetailsApprovalFlowAdapter(this);
+
+        manager = new DBManager(this);
+        im_ids =new ArrayList<>();
+        afpeople_names = new ArrayList<>();
+    }
     private Handler handler = new Handler(){
         @Override
         public void handleMessage(Message msg) {
@@ -176,7 +310,7 @@ public class DailydetailsActivity extends BaseActivity {
                     break;
 
 
-                default:
+               case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     if (msg.getData() != null) {
                         if (!StringUtils.isEmpty(msg.getData().getString("result"))) {
                             ToastMessage(msg.getData().getString("result"));
@@ -201,6 +335,7 @@ public class DailydetailsActivity extends BaseActivity {
                 hide_above_af.setVisibility(View.GONE);
             }else{
                 mCommonApprovalFlowBean = JSON.parseObject(resultJsonObject.toString(), CommonApprovalFlowBean.class);
+                getapplypeomsg(mCommonApprovalFlowBean);
                 em_code = new String();
                 if (manager == null) manager = new DBManager(mContext);
                 if("已审核".equals(wd_status) && (mCommonApprovalFlowBean.getData().size() == 0 ||
@@ -394,126 +529,46 @@ public class DailydetailsActivity extends BaseActivity {
         progressDialog.dismiss();
     }
 
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        progressDialog.show();
-        initView();
-        initData();
-    }
-
-
-    public void initView() {
-
-        setContentView(R.layout.activity_workdaily_detail);
-        getSupportActionBar().setTitle("日报详情");
-
-        wdd_data = (TextView) findViewById(R.id.work_daily_detail_time_tv);
-        wdd_summary = (TextView) findViewById(R.id.work_daily_detail_summary_tv);
-        wdd_plan = (TextView) findViewById(R.id.work_daily_detail_plan_tv);
-        wdd_experience = (TextView) findViewById(R.id.work_daily_detail_experience_tv);
-        wdd_status = (TextView) findViewById(R.id.work_daily_detail_status_tv);
-        plan_ll = (LinearLayout) findViewById(R.id.work_daily_detail_plan_ll);
-        experience_ll = (LinearLayout) findViewById(R.id.work_daily_detail_experience_ll);
-        approval_flowlv = (MyListView) findViewById(R.id.work_daily_detail_approval_flow_lv);
-        unsubmit_iv = (ImageView) findViewById(R.id.work_daily_unsubmit_iv);
-        resanddel_ll = (LinearLayout) findViewById(R.id.item_common_docui_res_and_del_ll);
-        resubmit_ll = (LinearLayout) findViewById(R.id.common_docui_resubmit_ll);
-        delete_ll = (LinearLayout) findViewById(R.id.common_docui_delete_ll);
-        resubmit_tv = (TextView) findViewById(R.id.common_docui_resubmit_tv);
-        done_task_ll = (LinearLayout) findViewById(R.id.work_daily_detail_donetask_ll);
-        donetask_wv = (WebView) findViewById(R.id.donetask_wv);
-        undo_task_ll = (LinearLayout) findViewById(R.id.work_daily_detail_undotask_ll);
-        undotask_wv = (WebView) findViewById(R.id.undotask_wv);
-        hide_above_af = findViewById(R.id.hide_above_af);
-
-        done_settings = donetask_wv.getSettings();
-        done_settings.setSupportZoom(true);
-        done_settings.setTextSize(WebSettings.TextSize.SMALLER);//已完成任务设置web字体大小
-
-        undo_settings = undotask_wv.getSettings();
-        undo_settings.setSupportZoom(true);
-        undo_settings.setTextSize(WebSettings.TextSize.SMALLER); //未完成任务设置web字体大小
-
-        mEmptyLayput_approvalflow = new EmptyLayout(this, approval_flowlv);
-        mEmptyLayput_approvalflow.setShowEmptyButton(false);
-        mEmptyLayput_approvalflow.setShowErrorButton(false);
-        mEmptyLayput_approvalflow.setShowLoadingButton(false);
-        //加载审批流的适配器
-        mCommonApprovalFlowBean = new CommonApprovalFlowBean();
-        mDailyDetailsApprovalFlowAdapter = new DailyDetailsApprovalFlowAdapter(this);
-
-        manager = new DBManager(this);
-        im_ids =new ArrayList<>();
-        afpeople_names = new ArrayList<>();
-
-        resubmit_ll.setOnClickListener(new View.OnClickListener() { //TODO 重新提交
-            @Override
-            public void onClick(View v) {
-
-                if (!TextUtils.isEmpty(submittype) && submittype.equals("unsubmit")){//未提交状态
-                    startActivity(new Intent(activity, WorkDailyAddActivity.class)
-                            .putExtra("caller", mCaller)
-                            .putExtra("id", mkeyValue)
-                            .putExtra("rs_summary", summary)
-                            .putExtra("rs_plan", plan)
-                            .putExtra("rs_experience", experience)
-                            .putExtra("resubmit", "resubmit"));
-                    Log.i("dosubmit_id", mkeyValue + "");
-                    finish();
-                }else {                                                             //提交状态
-                    new AlertDialog
-                            .Builder(mContext)
-                            .setTitle("温馨提示")
-                            .setMessage("\t\t确认反提交该条单据?")
-                            .setNegativeButton("取消",null)
-                            .setPositiveButton("确认", new DialogInterface.OnClickListener() {
-                                @Override
-                                public void onClick(DialogInterface dialog, int which) {
-                                    String retype = "reforsub";
-                                    doresubmit(retype);
-                                }
-                            }).show();
-                }
-
-            }
-        });
-
-        delete_ll.setOnClickListener(new View.OnClickListener() {  //TODO 删除
-            @Override
-            public void onClick(View v) {
-                if (!TextUtils.isEmpty(submittype) && submittype.equals("unsubmit")){
-                    new AlertDialog
-                            .Builder(mContext)
-                            .setTitle("温馨提示")
-                            .setMessage("\t\t确认删除该条已保存单据?")
-                            .setNegativeButton("取消", null)
-                            .setPositiveButton("确认", new DialogInterface.OnClickListener() {
-                                @Override
-                                public void onClick(DialogInterface dialog, int which) {
-                                    dodelete(mCaller, mkeyValue);
-                                }
-                            }).show();
-
-                }else {
-                    new AlertDialog
-                            .Builder(mContext)
-                            .setTitle("温馨提示")
-                            .setMessage("\t\t确认删除该条已提交单据?")
-                            .setNegativeButton("取消", null)
-                            .setPositiveButton("确认", new DialogInterface.OnClickListener() {
-                                @Override
-                                public void onClick(DialogInterface dialog, int which) {
-                                    String retype = "refordelete";
-                                        doresubmit(retype);
-                                }
-                            }).show();
+    private void getapplypeomsg(CommonApprovalFlowBean mCommonApprovalFlowBean) {
+        if (ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())) return;
+        String applypeo_name = mCommonApprovalFlowBean.getProcesss().get(0).getJp_launcherName();
+        String applypeo_number = mCommonApprovalFlowBean.getProcesss().get(0).getJp_launcherId();
+
+        name_tv.setText(applypeo_name);
+        if (!applypeo_number.isEmpty()){
+            String whichsys = CommonUtil.getSharedPreferences(mContext, "erp_master");
+            String[] selectionArgs = {applypeo_number == null ? "" : applypeo_number, whichsys};
+            String selection = "em_code=? and whichsys=? ";
+
+            try {
+                //获取数据库数据
+                EmployeesEntity bean = manager.selectForEmployee(selectionArgs, selection);
+                if (bean != null) {
+                    String imId = String.valueOf(bean.getEm_IMID());
+                    String imName = String.valueOf(bean.getEM_NAME());
+                    String imDepartment = String.valueOf(bean.getEM_DEFAULTORNAME());
+                    String imPosition = String.valueOf(bean.getEM_POSITION());
+
+                    name_tv.setText(imName);
+                    if (!StringUtils.isEmpty(imId)) {
+                        AvatarHelper.getInstance().display(imId, photo_im, true, false);
+                    } else {
+                        String imageUri = "drawable://" + R.drawable.common_header_boy;
+                        AvatarHelper.getInstance().display(imageUri, photo_im, true);
+                    }//显示圆角图片
+                    section_tv.setText(imDepartment + ">" + imPosition);
+
+                    Log.i("aptodo", "imId=" + imId + "imName" + imName + "imDepartment" + imDepartment + "imPosition" + imPosition);
+                } else {
+                    ToastMessage("单据申请人数据获取异常");
                 }
-
+            } catch (Exception e) {
+                e.printStackTrace();
             }
-        });
+        }
     }
 
+
     // 删除
     private void dodelete(String mCaller, int mkeyValue) {
         String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "/mobile/commondelete.action";
@@ -595,7 +650,7 @@ public class DailydetailsActivity extends BaseActivity {
             resanddel_ll.setVisibility(View.VISIBLE);
         }else if (wd_status.equals("在录入")){
             wdd_status.setTextColor(mContext.getResources().getColor(R.color.done_approval));
-            wdd_status.setText("未提交");
+            wdd_status.setText("在录入");
             resanddel_ll.setVisibility(View.VISIBLE);
             submittype = "unsubmit";
             resubmit_tv.setText("提交");
@@ -620,7 +675,7 @@ public class DailydetailsActivity extends BaseActivity {
             approval_flowlv.setVisibility(View.GONE);
             hide_above_af.setVisibility(View.GONE);
         }
-
+        csv_hide.setVisibility(View.VISIBLE);
     }
 
     @Override

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

@@ -0,0 +1,356 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.oa;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.PopupWindow;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+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.model.oa.EmployeesModel;
+import com.xzjmyk.pm.activity.ui.erp.model.oa.FlightsModel;
+import com.xzjmyk.pm.activity.ui.erp.model.oa.FlightsTimeModel;
+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.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.util.DisplayUtil;
+import com.xzjmyk.pm.activity.view.MyListView;
+import com.xzjmyk.pm.activity.wxapi.ApiPlatform;
+import com.xzjmyk.pm.activity.wxapi.ApiUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import static com.alibaba.fastjson.JSON.parseObject;
+import static com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil.getJson2Text;
+
+/**
+ * Created by FANGlh on 2017/4/20.
+ * function:
+ */
+public class FlihtsDateSelectActivity extends BaseActivity {
+    private static final int GET_FLIHTS_DATAS = 42001;
+    JSONObject object = null;
+    List<FlightsModel> models;
+    private PopupWindow popupWindow = null;
+    private MyListView flihts_list;
+    private TextView rest_tv;
+    private FlihtsDatasAdapter myAdapter;
+    private Boolean isB2b;
+    private TextView rest_tv1;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
+        initView();
+    }
+    private void initView() {
+        setContentView(R.layout.flihts_calendar_select);
+        rest_tv1 = (TextView) findViewById(R.id.rest_tv);
+        models = new ArrayList<>();
+        myAdapter = new FlihtsDatasAdapter();
+
+        rest_tv1.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getFlihtsData();
+            }
+        });
+    }
+
+    private Handler handler = new Handler(){
+        @Override
+        public void handleMessage(Message msg) {
+            super.handleMessage(msg);
+            switch (msg.what){
+                case GET_FLIHTS_DATAS:
+                    if (msg.getData() != null){
+                        String fliht_result = msg.getData().getString("result");
+                        JSONArray fliht_array = parseObject(fliht_result).getJSONArray("listdata");
+                        if (!ListUtils.isEmpty(fliht_array)) {
+                            handlerWork(fliht_array);
+                        }
+                    }
+                    break;
+                default:
+                    if (msg.getData() != null) {
+                        if (!StringUtils.isEmpty(msg.getData().getString("result"))) {
+                            ToastMessage(msg.getData().getString("result"));
+                        }
+                    }
+                    break;
+            }
+        }
+    };
+
+    private void handlerWork(JSONArray array) {
+        if (!ListUtils.isEmpty(models)) models.clear();
+        for (int i = 0; i < array.size(); i++) {
+            object = array.getJSONObject(i);
+            if (object.containsKey("ifDefaultClass") && object.getBoolean("ifDefaultClass"))
+                models.add(0, handlerDefFlights(object));
+            else
+                models.add(handlerFlights(object));
+           if (i == array.size() -1){
+                showFlihtsWindows();
+               Log.i("sb","showFlihtsWindows()");
+            }
+        }
+    }
+
+    private void getFlihtsData() {
+        String url = Constants.getAppBaseUrl(getApplicationContext()) + "mobile/getAllWorkDate.action";
+        Map<String, Object> param = new HashMap<>();
+        param.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
+        LinkedHashMap headers = new LinkedHashMap();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(getApplicationContext(), "sessionId"));
+        ViewUtil.httpSendRequest(getApplicationContext(), url, param, handler, headers, GET_FLIHTS_DATAS, null, null, "post");
+    }
+
+
+
+    private void  showFlihtsWindows(){
+        View contentView = LayoutInflater.from(ct).inflate(
+                R.layout.flihts_listview, null);
+
+        flihts_list = (MyListView) contentView.findViewById(R.id.flihts_list);
+        rest_tv = (TextView) contentView.findViewById(R.id.rest_tv);
+        DisplayMetrics dm = getResources().getDisplayMetrics();
+        int w_screen = dm.widthPixels;
+        int h_screen = dm.heightPixels;
+        w_screen = DisplayUtil.dip2px(this, 300);
+        h_screen = DisplayUtil.dip2px(this, 250);
+        myAdapter.setModels(models);
+        flihts_list.setAdapter(myAdapter);
+        Log.i("sb", "setAdapter");
+
+        ((MyListView) contentView.findViewById(R.id.flihts_list)).setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                ToastMessage(models.get(position).getName() + "班次");
+            }
+        });
+
+        rest_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ToastMessage("休息");
+            }
+        });
+        popupWindow = new PopupWindow(contentView, w_screen, h_screen, true);
+        popupWindow.setTouchable(true);
+        popupWindow.setOutsideTouchable(false);
+        // 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
+        popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_main));
+        // 设置好参数之后再show
+        popupWindow.showAtLocation(contentView, Gravity.CENTER, 0, 0);
+        setbg(0.4f);
+    }
+
+    private void setbg(float alpha) {
+        setBackgroundAlpha(this, alpha);
+        if (popupWindow == null) return;
+        popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                setBackgroundAlpha(FlihtsDateSelectActivity.this, 1f);
+            }
+        });
+    }
+
+    public void setBackgroundAlpha(Activity activity, float bgAlpha) {
+        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
+        lp.alpha = bgAlpha;
+        if (bgAlpha == 1) {
+            activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
+        } else {
+            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
+        }
+        activity.getWindow().setAttributes(lp);
+    }
+
+    public class FlihtsDatasAdapter extends BaseAdapter {
+        List<FlightsModel> models;
+        public List<FlightsModel> getModels() {return models;}
+        public void setModels(List<FlightsModel> models) {this.models = models;}
+        @Override
+        public int getCount() {return models == null ? 0 : models.size();}
+        @Override
+        public Object getItem(int position) {
+            return models.get(position);
+        }
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            ViewHolder viewHolder = null;
+            if (convertView == null){
+                viewHolder = new ViewHolder();
+                convertView =  View.inflate(mContext, R.layout.item_flihts,null);
+                viewHolder.docmainmsg_list = (TextView) convertView.findViewById(R.id.item_comdoc_am_list_tv);
+                viewHolder.docmainmsg_value = (TextView) convertView.findViewById(R.id.item_comdoc_am_value_tv);
+                convertView.setTag(viewHolder);
+
+            }else {
+                viewHolder = (ViewHolder) convertView.getTag();
+            }
+            if (models.get(position).getType() == 2){
+                viewHolder.docmainmsg_list.setText(models.get(position).getName());
+            }else {
+                viewHolder.docmainmsg_list.setText(models.get(position).getName() + "班次");
+            }
+            viewHolder.docmainmsg_value.setText(models.get(position).getTimeTable());
+            return convertView;
+        }
+        class ViewHolder{
+            TextView docmainmsg_list;
+            TextView docmainmsg_value;
+        }
+    }
+
+    private FlightsModel handlerDefFlights(JSONObject object) {
+        FlightsModel model = new FlightsModel();
+        FlightsTimeModel timeModel = new FlightsTimeModel();
+        EmployeesModel employeesModel = new EmployeesModel();
+        EmployeesModel hrorgsModel = new EmployeesModel();
+        timeModel.setEarlyTime(OACheckUtil.getJsonIntager(object, "wd_earlytime"));
+        timeModel.setEarlyTime(OACheckUtil.getJsonIntager(object, "wd_earlytime"));
+        timeModel.setWd_ondutyone(getJson2Text(object, "wd_ondutyone"));
+        timeModel.setWd_offdutyone(getJson2Text(object, "wd_offdutyone"));
+        timeModel.setWd_ondutytwo(getJson2Text(object, "wd_ondutytwo"));
+        timeModel.setWd_offdutytwo(getJson2Text(object, "wd_offdutytwo"));
+        timeModel.setWd_ondutythree(getJson2Text(object, "wd_ondutythree"));
+        timeModel.setWd_offdutythree(getJson2Text(object, "wd_offdutythree"));
+        model.setTimeModel(timeModel);
+        model.setEmployeesModel(employeesModel);
+        model.setHrorgsModel(hrorgsModel);
+        JSONObject o = null;
+        if (object.containsKey("Class1")) {
+            o = object.getJSONObject("Class1");
+            timeModel.setWd_ondutyone(getByClass(o, true));
+            timeModel.setWd_offdutyone(getByClass(o, false));
+        }
+        if (object.containsKey("Class2")) {
+            o = object.getJSONObject("Class2");
+            timeModel.setWd_ondutytwo(getByClass(o, true));
+            timeModel.setWd_offdutytwo(getByClass(o, false));
+        }
+        if (object.containsKey("Class3")) {
+            o = object.getJSONObject("Class3");
+            timeModel.setWd_ondutythree(getByClass(o, true));
+            timeModel.setWd_offdutythree(getByClass(o, false));
+        }
+        employeesModel.setEmployeecode(getJson2Text(object, "defaultmancode"));
+        employeesModel.setEmployeeNames(getJson2Text(object, "defaultman"));
+//        hrorgsModel.setEmployeecode(OACheckUtil.getJson2Text(object, "hrorgcode"));
+//        hrorgsModel.setEmployeeNames(OACheckUtil.getJson2Text(object, "hrorgname"));
+        model.setId(OACheckUtil.getJsonIntager(object, "wd_id"));
+        model.setCode(getJson2Text(object, "wd_code"));
+        model.setTimeModel(timeModel);
+        model.setDay(getJson2Text(object, "wd_day"));//返回为1,2,3
+        model.setEmployeesModel(employeesModel);
+        model.setHrorgsModel(hrorgsModel);
+        model.setType(2);
+        model.setName(getJson2Text(object, "wd_name"));
+
+        try {
+            String names = employeesModel.getEmployeeNames();
+            if (!StringUtils.isEmpty(names)) {
+                model.setCount(names.split(",").length);
+            }
+            String hrorgs = hrorgsModel.getEmployeeNames();
+            if (!StringUtils.isEmpty(hrorgs)) {
+                model.setDepartments(hrorgs.split(",").length);
+            }
+        } catch (Exception e) {
+
+        }
+        return model;
+    }
+    private FlightsModel handlerFlights(JSONObject object) {
+        FlightsModel model = new FlightsModel();
+        FlightsTimeModel timeModel = new FlightsTimeModel();
+        EmployeesModel employeesModel = new EmployeesModel();
+        EmployeesModel hrorgsModel = new EmployeesModel();
+        timeModel.setEarlyTime(OACheckUtil.getJsonIntager(object, "wd_earlytime"));
+        timeModel.setWd_ondutyone(getJson2Text(object, "wd_ondutyone"));
+        timeModel.setWd_offdutyone(getJson2Text(object, "wd_offdutyone"));
+        timeModel.setWd_ondutytwo(getJson2Text(object, "wd_ondutytwo"));
+        timeModel.setWd_offdutytwo(getJson2Text(object, "wd_offdutytwo"));
+        timeModel.setWd_ondutythree(getJson2Text(object, "wd_ondutythree"));
+        timeModel.setWd_offdutythree(getJson2Text(object, "wd_offdutythree"));
+        String emcodes = OACheckUtil.getJson2Text(object, "wd_emcode");
+        if (StringUtils.isEmpty(emcodes))
+            emcodes = OACheckUtil.getJson2Text(object, "emcodes");
+
+        String emnames = OACheckUtil.getJson2Text(object, "wd_man");
+        if (StringUtils.isEmpty(emnames))
+            emnames = OACheckUtil.getJson2Text(object, "emnames");
+
+        employeesModel.setEmployeecode(emcodes);
+        employeesModel.setEmployeeNames(emnames);
+
+        String emdefaultorcodes = OACheckUtil.getJson2Text(object, "wd_defaultorcode");
+        if (StringUtils.isEmpty(emdefaultorcodes))
+            emdefaultorcodes = OACheckUtil.getJson2Text(object, "emdefaultorcodes");
+
+        String emdefaultors = OACheckUtil.getJson2Text(object, "wd_defaultor");
+        if (StringUtils.isEmpty(emdefaultors))
+            emdefaultors = OACheckUtil.getJson2Text(object, "emdefaultors");
+        hrorgsModel.setEmployeecode(emdefaultorcodes);
+        hrorgsModel.setEmployeeNames(emdefaultors);
+        model.setId(OACheckUtil.getJsonIntager(object, "id"));
+//        model.setCount(OACheckUtil.getJsonIntager(object, "wd_pcount"));
+        model.setCode(OACheckUtil.getJson2Text(object, "wd_code"));
+        model.setTimeModel(timeModel);
+        if (isB2b)
+            model.setDay(OACheckUtil.getJson2Text(object, "wd_day", "day"));
+        else
+            model.setDay(OACheckUtil.getJson2Text(object, "wd_day"));//返回为1,2,3
+        model.setEmployeesModel(employeesModel);
+        model.setHrorgsModel(hrorgsModel);
+        model.setType(isB2b ? 2 : 1);
+        model.setName(OACheckUtil.getJson2Text(object, "wd_name"));
+        try {
+            String names = employeesModel.getEmployeeNames();
+            if (!StringUtils.isEmpty(names)) {
+                model.setCount(names.split(",").length);
+            }
+            String hrorgs = hrorgsModel.getEmployeeNames();
+            if (!StringUtils.isEmpty(hrorgs)) {
+                model.setDepartments(hrorgs.split(",").length);
+            }
+        } catch (Exception e) {
+
+        }
+        return model;
+    }
+
+    private String getByClass(JSONObject object, boolean work) {
+        return work ? (object.containsKey("wd_onduty") ? object.getString("wd_onduty") : "") : (
+                object.containsKey("wd_offduty") ? object.getString("wd_offduty") : "");
+    }
+}

+ 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;
@@ -71,6 +68,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;
@@ -167,13 +165,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) {
@@ -212,19 +210,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:
@@ -271,6 +269,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) {
@@ -437,10 +436,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));
@@ -486,7 +489,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<>();
@@ -509,14 +511,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);
@@ -607,7 +608,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"));
@@ -616,7 +617,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";
@@ -631,7 +632,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     private void loadSuccess() {//下拉成功后添加到适配器
         setAdapterBeans();
         setDateToListener(isMe ? meInt : otherInt);
-
+        setCalenderOnClicklistener();
     }
 
     private void setAdapterBeans() {
@@ -639,7 +640,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) {
@@ -666,20 +672,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;
 
@@ -718,13 +710,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;
 
                     }
@@ -765,14 +757,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;
     }
 
@@ -800,8 +792,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();
@@ -814,17 +804,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) {
@@ -938,8 +917,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
@@ -956,30 +954,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();
@@ -993,12 +970,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) {
@@ -1030,4 +1001,5 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     public interface OnTaskChangeListener {
         void onChange(Set<Integer> in);
     }
+
 }

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

@@ -32,6 +32,7 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.PlatComAfAdapter;
 import com.xzjmyk.pm.activity.bean.oa.PlatComAfBean;
 import com.xzjmyk.pm.activity.bean.oa.SelectEmUser;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.entity.SelectCollisionTurnBean;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
@@ -113,6 +114,12 @@ public class PlatWDdetailyActivity extends BaseActivity {
     private CustomerScrollView csv_hide;
     @ViewInject(R.id.ly_head_display)
     private LinearLayout ly_head_display;
+    @ViewInject(R.id.common_docui_photo_img)
+    private ImageView photo_im;
+    @ViewInject(R.id.common_docui_name_tv)
+    private TextView name_tv;
+    @ViewInject(R.id.common_docui_Section_tv)
+    private TextView section_tv;
     private String date;
     private String summary;
     private String wd_status;
@@ -554,7 +561,6 @@ public class PlatWDdetailyActivity extends BaseActivity {
                         LogUtil.prinlnLongMsg("app_flow_result", app_flow_result);
 
                         doPlatComAfShow(app_flow_result);
-                        progressDialog.dismiss();
                     }
                     break;
                 case RESUBMIT_OF_DELETEAPPFL:
@@ -603,6 +609,7 @@ public class PlatWDdetailyActivity extends BaseActivity {
                                 experience = dataObject.getString("wd_experience");
                                 wd_status = dataObject.getString("wd_status");
                                 dodetailsShow(date, summary, plan, experience, wd_status);
+                                getapplypeomsg(com_doc_details);
                             } catch (Exception e) {
                                 e.printStackTrace();
                             }
@@ -668,6 +675,7 @@ public class PlatWDdetailyActivity extends BaseActivity {
                         LogUtil.prinlnLongMsg("doc_em_data", doc_em_data);
                         if (!StringUtils.isEmpty(doc_em_data)) {
                             getDailyStatue(doc_em_data);
+                            getapplypeomsg(doc_em_data);
                         }
                     }
                     break;
@@ -683,6 +691,23 @@ public class PlatWDdetailyActivity extends BaseActivity {
         }
     };
 
+    private void getapplypeomsg(String doc_em_data) {
+       try{
+           JSONObject object = JSON.parseObject(doc_em_data);
+           JSONObject dataObject = object.getJSONObject("data");
+           Long em_code = dataObject.getLongValue("emcode");
+           String em_name = dataObject.getString("wd_emp");
+
+           name_tv.setText(em_name);
+           String imageUri = "drawable://" + R.drawable.common_header_boy;
+           AvatarHelper.getInstance().display(imageUri, photo_im, true);
+
+           Log.i("em_name,em_code",em_name + "," + em_code);
+       }catch (Exception e){
+           e.printStackTrace();
+       }
+    }
+
     private void getDailyStatue(String doc_em_data) {
         JSONObject Object = JSON.parseObject(doc_em_data);
         JSONObject dataObject = Object.getJSONObject("data");
@@ -773,6 +798,8 @@ public class PlatWDdetailyActivity extends BaseActivity {
             }
 
         }
+
+        progressDialog.dismiss();
     }
 
 

+ 53 - 56
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkDailyShowActivity.java

@@ -76,35 +76,11 @@ public class WorkDailyShowActivity extends BaseActivity implements RecognizerDia
         super.onCreate(savedInstanceState);
         initView();
         initData();
+        initClickEvent();
         super.onResume();
     }
 
-    public void initView() {
-        setContentView(R.layout.activity_work_daily);
-        getSupportActionBar().setTitle("日报记录");
-        mSearchEt = (ClearEditText) findViewById(R.id.work_daily_search_edit);
-        mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.work_daily_context_ptlv);
-        voice_search = (ImageView) findViewById(R.id.voice_search_iv);
-
-        mEmptyLayout = new EmptyLayout(this, mPullToRefreshListView.getRefreshableView());
-        mEmptyLayout.setShowEmptyButton(false);
-        mEmptyLayout.setShowErrorButton(false);
-        mEmptyLayout.setShowLoadingButton(false);
-        mPullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
-
-        real_list = new ArrayList<>();
-        mWorkDailyAdapter = new WorkDailyAdapter(this);
-        mWorkDailyAdapter.setmWorkDailyBeanList(real_list);
-        mPullToRefreshListView.getRefreshableView().setAdapter(mWorkDailyAdapter);
-        real_list = mWorkDailyAdapter.getmWorkDailyBeanList();
-        final VoiceToWord voice = new VoiceToWord(mContext,"534e3fe2");
-        voice.setRecognizerDialogListener(this);  //自己调用自己
-        voice_search.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                voice.GetWordFromVoice();
-            }
-        });
+    private void initClickEvent() {
         mSearchEt.addTextChangedListener(new TextWatcher() {
             @Override
             public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -220,6 +196,35 @@ public class WorkDailyShowActivity extends BaseActivity implements RecognizerDia
         });
     }
 
+    public void initView() {
+        progressDialog.show();
+        setContentView(R.layout.activity_work_daily);
+        getSupportActionBar().setTitle("日报记录");
+        mSearchEt = (ClearEditText) findViewById(R.id.work_daily_search_edit);
+        mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.work_daily_context_ptlv);
+        voice_search = (ImageView) findViewById(R.id.voice_search_iv);
+
+        mEmptyLayout = new EmptyLayout(this, mPullToRefreshListView.getRefreshableView());
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setShowLoadingButton(false);
+        mPullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
+
+        real_list = new ArrayList<>();
+        mWorkDailyAdapter = new WorkDailyAdapter(this);
+        mWorkDailyAdapter.setmWorkDailyBeanList(real_list);
+        mPullToRefreshListView.getRefreshableView().setAdapter(mWorkDailyAdapter);
+        real_list = mWorkDailyAdapter.getmWorkDailyBeanList();
+        final VoiceToWord voice = new VoiceToWord(mContext,"534e3fe2");
+        voice.setRecognizerDialogListener(this);  //自己调用自己
+        voice_search.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                voice.GetWordFromVoice();
+            }
+        });
+    }
+
     private void dodelete(String mCaller, int mkeyValue) {
         String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "/mobile/commondelete.action";
         Map<String, Object> formStoreMap = new HashMap<>();
@@ -230,37 +235,9 @@ public class WorkDailyShowActivity extends BaseActivity implements RecognizerDia
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         LogUtil.prinlnLongMsg("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(this, url, params, handler, headers, DELETE_DOC_REQUEST_SUCCESSFULLY, null, null, "get");
+        ViewUtil.httpSendRequest(this, url, params, mHandler, headers, DELETE_DOC_REQUEST_SUCCESSFULLY, null, null, "get");
     }
 
-    private Handler handler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            super.handleMessage(msg);
-
-            switch (msg.what) {
-                case DELETE_DOC_REQUEST_SUCCESSFULLY:
-                    if (!StringUtils.isEmpty(msg.getData().getString("result"))) {
-                        String delete_result = msg.getData().getString("result");
-                        LogUtil.prinlnLongMsg("delete_result", delete_result);
-                        if (JSON.parseObject(delete_result).containsKey("success") && JSON.parseObject(delete_result).getBoolean("success")) {
-                            Toast.makeText(mContext, "工作日报删除成功", Toast.LENGTH_LONG).show();
-                            real_list.remove(mPosition);
-                            mWorkDailyAdapter.notifyDataSetChanged();
-                        }
-                    }
-                    break;
-                default:
-                    if (msg.getData() != null) {
-                        if (!StringUtils.isEmpty(msg.getData().getString("result"))) {
-                            Toast.makeText(mContext, msg.getData().getString("result"), Toast.LENGTH_LONG).show();
-                        }
-                    }
-                    break;
-            }
-        }
-    };
-
     //正则
     private static boolean getResult(String text, String str) {
         Pattern p = Pattern.compile(str);
@@ -276,7 +253,6 @@ public class WorkDailyShowActivity extends BaseActivity implements RecognizerDia
             LinkedHashMap headers = new LinkedHashMap();
             headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(getApplicationContext(), "sessionId"));
             ViewUtil.httpSendRequest(getApplicationContext(), url, param, mHandler, headers, WORK_DAILY_REQUEST, null, null, "post");
-
     }
 
     @Override
@@ -347,7 +323,28 @@ public class WorkDailyShowActivity extends BaseActivity implements RecognizerDia
                     }catch (Exception e){
                         e.printStackTrace();
                     }
+                    progressDialog.dismiss();
+                    break;
+                case DELETE_DOC_REQUEST_SUCCESSFULLY:
+                    if (!StringUtils.isEmpty(msg.getData().getString("result"))) {
+                        String delete_result = msg.getData().getString("result");
+                        LogUtil.prinlnLongMsg("delete_result", delete_result);
+                        if (JSON.parseObject(delete_result).containsKey("success") && JSON.parseObject(delete_result).getBoolean("success")) {
+                            Toast.makeText(mContext, "工作日报删除成功", Toast.LENGTH_LONG).show();
+                            real_list.remove(mPosition);
+                            mWorkDailyAdapter.notifyDataSetChanged();
+                        }
+                    }
+                    break;
+                case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    if (msg.getData() != null) {
+                        if (!StringUtils.isEmpty(msg.getData().getString("result"))) {
+                            ToastMessage(msg.getData().getString("result"));
+                            progressDialog.dismiss();
+                        }
+                    }
 
+                    break;
             }
 
         }

+ 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;
-    }
-
-}

+ 14 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/FlightsModel.java

@@ -232,6 +232,20 @@ public class FlightsModel implements Parcelable {
         return builder.toString();
     }
 
+    // 班次时间显示,不显示总时数
+    public String getTimeTable() {
+        StringBuilder builder = new StringBuilder();
+        if (!StringUtils.isEmpty(timeModel.getWd_ondutyone())) {
+            builder.append(timeModel.getWd_ondutyone() + "-" + timeModel.getWd_offdutyone() + " ");
+        }
+        if (!StringUtils.isEmpty(timeModel.getWd_ondutytwo())) {
+            builder.append(timeModel.getWd_ondutytwo() + "-" + timeModel.getWd_offdutytwo() + " ");
+        }
+        if (!StringUtils.isEmpty(timeModel.getWd_ondutythree())) {
+            builder.append(timeModel.getWd_ondutythree() + "-" + timeModel.getWd_offdutythree() + " ");
+        }
+        return builder.toString();
+    }
     private String float2String(float hour) {
         if (hour == 0) return "0";
         String h = String.valueOf(hour);

+ 10 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/AddFlihtsPresenter.java

@@ -66,7 +66,7 @@ public class AddFlihtsPresenter implements HttpHandler.OnResultListener {
                 iAddFlihtsView.updateDepartment(model.getHrorgsModel().getEmployeeNames());
             String time = model.getTime();
             String date = model.getWeek();
-            iAddFlihtsView.updateDate(date);
+            iAddFlihtsView.updateDate(date,isUpdate);
             iAddFlihtsView.updateTime(time);
             iAddFlihtsView.updateName(model.getName());
             iAddFlihtsView.setClickAble(!("默认班次".equals(model.getName()) || model.getType() == 2));
@@ -123,12 +123,15 @@ public class AddFlihtsPresenter implements HttpHandler.OnResultListener {
             iAddFlihtsView.showToast("请填写考勤时间", R.color.load_error);
             return;
         }
-        if (!StringUtils.isEmpty(model.getDay())) {
-            formStore.put("wd_day", model.getDay());
-        } else {
-            iAddFlihtsView.showToast("请填写考勤日期", R.color.load_error);
-            return;
+        if (!isUpdate){
+            if (!StringUtils.isEmpty(model.getDay())) {
+                formStore.put("wd_day", model.getDay());
+            } else {
+                iAddFlihtsView.showToast("请填写考勤日期", R.color.load_error);
+                return;
+            }
         }
+
         //start 人员数据
         EmployeesModel employeesModel = model.getEmployeesModel();
         String employeesName;
@@ -216,7 +219,7 @@ public class AddFlihtsPresenter implements HttpHandler.OnResultListener {
     public void saveDate(Intent data) {
         String days = data.getStringExtra("data");
         model.setDay(days);
-        iAddFlihtsView.updateDate(model.getWeek());
+        iAddFlihtsView.updateDate(model.getWeek(),isUpdate);
     }
 
     private String hrorgsCode = "";

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IAddFlihtsView.java

@@ -15,7 +15,7 @@ public interface IAddFlihtsView extends HttpImp {
 
     void updateTime(String time);//更新数据
 
-    void updateDate(String date);//更新数据
+    void updateDate(String date,boolean isUpdate);//更新数据
 
     void updateDepartment(String department);//更新数据
 

+ 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;
+    }
+}

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/OfficeAddressSettingsActivity.java

@@ -639,7 +639,7 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
         popupWindow.setTouchable(true);
         popupWindow.setOutsideTouchable(false);
         // 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
-//        popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_main));
+        popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_main));
         // 设置好参数之后再show
         popupWindow.showAtLocation(contentView, Gravity.CENTER, 0, 0);
         setbg(0.4f);

+ 0 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SettingActivity.java

@@ -83,7 +83,6 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
     private RelativeLayout new_step_rl;
     private ProgressDialog dialog;
     private RelativeLayout share_rl;
-    private String uustep_service_name = "com.xzjmyk.pm.basepedo.service.StepService";
     private String newStep_service_name = "com.xzjmyk.pm.newpedo.service.StepService";
 
     @Override
@@ -150,7 +149,6 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
 
         //UU开关的 根据StepService是否开启显示状态
         int isStep = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.UU_STEP);
-         boolean sbb = isServiceRunning(newStep_service_name);
         if (isServiceRunning(newStep_service_name)&&(isStep == -1 || isStep == 1)){
             uu_step_reply.setChecked(true);
         }else {

+ 3 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/activity/ChangeDealManActivity.java

@@ -177,7 +177,9 @@ public class ChangeDealManActivity extends BaseActivity implements RecognizerDia
                         String change_deal_man_result = msg.getData().getString("result");
                         LogUtil.prinlnLongMsg("change_deal_man_result", change_deal_man_result);
                         Toast.makeText(getApplicationContext(), "变更成功", Toast.LENGTH_LONG).show();
-                        setResult(0x333);
+                        Intent intent  = new Intent();
+                        intent.putExtra("change",true);
+                        setResult(0x333,intent);
                         finish();
                     }
                     break;

+ 10 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/adapter/PagesModelAdapter.java

@@ -22,6 +22,7 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 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.view.EmptyLayout;
@@ -182,6 +183,7 @@ public class PagesModelAdapter extends BaseAdapter implements Filterable {
         }else {
             model.delete_tv.setVisibility(View.GONE);
         }
+        final ViewModel finalModel = model;
         model.delete_tv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -196,6 +198,7 @@ public class PagesModelAdapter extends BaseAdapter implements Filterable {
                                 int item_id= CommonUtil.getNumByString(datas.get(position).getId());
                                 mPosition = position;
                                 doPlatDeleteByid(item_id,whichpage);
+                                finalModel.delete_tv.setEnabled(false);
                             }
                         }).show();
             }
@@ -228,12 +231,14 @@ public class PagesModelAdapter extends BaseAdapter implements Filterable {
                     if (msg.getData() != null){
                         String delete_result=msg.getData().getString("result");
                         LogUtil.d("delete_result", delete_result);
-//                        if (JSON.parseObject(delete_result).containsKey("success")
-//                                && "true".equals(JSON.parseObject(delete_result).getJSONObject("success"))){
+                        if (JSON.parseObject(delete_result).containsKey("success")
+                                && JSON.parseObject(delete_result).getBooleanValue("success")){
                             Toast.makeText(ct,"删除成功",Toast.LENGTH_LONG).show();
-                            datas.remove(mPosition);
-                            notifyDataSetChanged();
-//                        }
+                            if (!ListUtils.isEmpty(datas)) {
+                                datas.remove(mPosition);
+                                notifyDataSetChanged();
+                            }
+                        }
                     }else {
                         Toast.makeText(ct,"删除失败,请稍候再试",Toast.LENGTH_LONG).show();
                     }

+ 16 - 13
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,24 +134,25 @@ 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);
     }
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (data == null) {
-            if (resultCode == 0x333) {
-                loadPlatAppFlow(detail_id);
-                mPlatComAfAdapter.notifyDataSetChanged();
-                a_and_disa_ll.setVisibility(View.GONE);
-                ToastMessage("变更成功,刷新审批节点");
-                change = data.getBooleanExtra("change",false);
-            } else {
-                return;
-            }
-        } else if (requestCode == 0x01 && resultCode == 0x20) {
+        if (data == null) return;
+        if (resultCode == 0x333) {
+            loadPlatAppFlow(detail_id);
+            mPlatComAfAdapter.notifyDataSetChanged();
+            a_and_disa_ll.setVisibility(View.GONE);
+            ToastMessage("变更成功,刷新审批节点");
+            change = data.getBooleanExtra("change",false);
+        }
+
+        if (requestCode == 0x01 && resultCode == 0x20) {
             SelectEmUser d = data.getParcelableExtra("data");
             if (d != null) {
                 String single_man_name = d.getEmName();

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

@@ -17,6 +17,7 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.widget.BaseAdapter;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.PopupWindow;
 import android.widget.SimpleAdapter;
@@ -36,6 +37,7 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.PlatComAfAdapter;
 import com.xzjmyk.pm.activity.bean.oa.PlatComAfBean;
 import com.xzjmyk.pm.activity.bean.oa.SelectEmUser;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.PlatLeaveAddActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.TravelActivity;
@@ -107,6 +109,8 @@ public class FormDetailActivity extends BaseActivity {
     private TextView status_tv;
     @ViewInject(R.id.common_docui_name_tv)
     private TextView doc_em_name_tv;
+    @ViewInject(R.id.common_docui_photo_img)
+    private ImageView photo_im;
     List<LinkedHashMap<String, String>> datas = new ArrayList<>();
     List<LinkedHashMap<String, String>> details = new ArrayList<>();
     private int mkeyValue = -1;
@@ -169,7 +173,8 @@ public class FormDetailActivity extends BaseActivity {
                     break;
             }
         }
-
+        String imageUri = "drawable://" + R.drawable.common_header_boy;
+        AvatarHelper.getInstance().display(imageUri, photo_im, true);
         if (!StringUtils.isEmpty(fromwhere) && "examine_and_approve".equals(fromwhere)) {
             deal_id = intent.getIntExtra("deal_id", -1);
             detail_id = intent.getIntExtra("detail_id", -1);
@@ -686,6 +691,7 @@ public class FormDetailActivity extends BaseActivity {
             if ("已审批".equals(status) || "已审核".equals(status)) {
                 status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.approval));
                 status_tv.setText("已审批");
+                resanddel_ll.setVisibility(View.GONE);
             } else {
                 status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.no_approval));
                 status_tv.setText("待审批");
@@ -939,10 +945,10 @@ public class FormDetailActivity extends BaseActivity {
     }
 
     private void doShowDocDetails(String com_doc_details) {
-        common_docui_sv.setVisibility(View.VISIBLE);
         JSONObject Object = JSON.parseObject(com_doc_details);
         JSONObject dataObject = Object.getJSONObject("data");
         if (dataObject != null) {
+            common_docui_sv.setVisibility(View.VISIBLE);
             if (!ListUtils.isEmpty(doc_key)) doc_key.clear();
             if (!ListUtils.isEmpty(doc_value)) doc_value.clear();
             if (whichpage == 1) {

+ 5 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskAddB2BActivity.java

@@ -402,12 +402,14 @@ public class TaskAddB2BActivity extends BaseActivity implements View.OnClickList
         }
 
         String resourcename = "";
-        if (tagValues != null && tagValues.length > 0) {
+        if (tagValues != null && tagValues.length > 0 ) {
             try {
                 resourcename = getResourceName(tagValues);
             } catch (Exception e) {
-                ToastMessage("执行人为必填项");
-                return;
+                if (StringUtils.isEmpty(et_task_people.getInputTagText().toString())){
+                    ToastMessage("执行人为必填项");
+                    return;
+                }
             }
         } else {
             ToastMessage("执行人为必填项");

+ 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();
     }
 

+ 7 - 9
WeiChat/src/main/java/com/xzjmyk/pm/newpedo/view/NewStepActivity.java

@@ -20,12 +20,9 @@ import android.view.WindowManager;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import com.baidu.android.pushservice.PushManager;
-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.me.SettingActivity;
-import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.newpedo.bean.StepEntity;
 import com.xzjmyk.pm.newpedo.calendar.BeforeOrAfterCalendarView;
 import com.xzjmyk.pm.newpedo.constant.Constant;
@@ -47,7 +44,7 @@ public class NewStepActivity extends BaseActivity implements Handler.Callback {
     private TextView stepsTimeTv;
     private TextView totalStepsTv;
     private TextView supportTv;
-    public static String UU_STEP_NOTICE = "UUSTEPNOTICE";
+//    public static String UU_STEP_NOTICE = "UUSTEPNOTICE";
     /**
      * 屏幕长度和宽度
      */
@@ -61,6 +58,7 @@ public class NewStepActivity extends BaseActivity implements Handler.Callback {
     private StepDataDao stepDataDao;
     private LinearLayout steps_history_ll;
     private TextView steps_history_tv;
+    private Boolean support_step;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -85,6 +83,7 @@ public class NewStepActivity extends BaseActivity implements Handler.Callback {
         steps_history_tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
         curSelDate = TimeUtil.getCurrentDate();
 
+        support_step = StepCountCheckUtil.isSupportStepCountSensor(this);
     }
 
     private void initData() {
@@ -99,19 +98,18 @@ public class NewStepActivity extends BaseActivity implements Handler.Callback {
         /**
          * 这里判断当前设备是否支持计步
          */
-        if (StepCountCheckUtil.isSupportStepCountSensor(this)) {
+        if (support_step) {
             getRecordList();
             supportTv.setVisibility(View.GONE);
             setDatas();
             setupService();
-
-            PreferenceUtils.putInt(NewStepActivity.UU_STEP_NOTICE, 0);
-            PushManager.resumeWork(MyApplication.getInstance());
-
+//            PreferenceUtils.putInt(NewStepActivity.UU_STEP_NOTICE, 0);
+//            PushManager.resumeWork(MyApplication.getInstance());
             ToastMessage("小提示:UU在关闭后无法继续统计您的步数数据");
         } else {
             totalStepsTv.setText("0");
             supportTv.setVisibility(View.VISIBLE);
+            steps_history_ll.setVisibility(View.GONE);
         }
     }
 

+ 20 - 2
WeiChat/src/main/res/layout/activity_add_flihts.xml

@@ -21,7 +21,7 @@
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
             android:gravity="center_vertical"
-            android:text="规则名称"
+            android:text="班次名称"
             android:textColor="@color/text_main"
             android:textSize="@dimen/text_main" />
 
@@ -88,6 +88,22 @@
             android:textColor="@color/text_main"
             android:textSize="@dimen/text_main" />
 
+        <LinearLayout
+            android:id="@+id/calender_select_ll"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="10dp"
+            android:layout_centerVertical="true"
+            android:paddingLeft="80dp"
+            android:visibility="gone"
+            >
+            <ImageView
+                android:layout_width="30dp"
+                android:layout_height="30dp"
+                android:background="@drawable/icon_date_nor"
+                />
+        </LinearLayout>
         <TextView
             android:id="@+id/date_tv"
             android:layout_width="wrap_content"
@@ -100,7 +116,9 @@
             android:gravity="center_vertical|right"
             android:hint="@string/select_must"
             android:textColor="@color/text_hine"
-            android:textSize="@dimen/text_hine" />
+            android:textSize="@dimen/text_hine"
+            android:visibility="visible"
+            />
     </RelativeLayout>
 
     <RelativeLayout

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

@@ -13,7 +13,7 @@
         android:layout_weight="1"
         android:fillViewport="true"
         android:scrollbars="none"
-        android:visibility="gone"
+        android:visibility="visible"
         android:focusableInTouchMode="true">
 
         <LinearLayout

+ 1 - 2
WeiChat/src/main/res/layout/activity_newstep.xml

@@ -183,8 +183,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
-        android:layout_marginTop="100dp"
-        android:layout_marginBottom="40dp"
+        android:layout_marginTop="50dp"
         >
         <ImageView
             android:layout_width="wrap_content"

+ 47 - 2
WeiChat/src/main/res/layout/activity_platdaily_detail.xml

@@ -13,7 +13,7 @@
         android:layout_weight="1"
         android:fillViewport="true"
         android:scrollbars="none"
-        android:visibility="gone">
+        android:visibility="visible">
 
         <LinearLayout
             android:layout_width="match_parent"
@@ -21,7 +21,6 @@
             android:focusable="true"
             android:focusableInTouchMode="true"
             android:orientation="vertical"
-            android:layout_marginTop="5dp"
             >
 
             <LinearLayout
@@ -31,6 +30,52 @@
                 android:orientation="vertical"
                 android:layout_marginBottom="10dp"
                 >
+                <RelativeLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:padding="5dp"
+                    android:layout_marginLeft="10dp"
+                    android:layout_marginRight="10dp"
+                    >
+
+                    <ImageView
+                        android:id="@+id/common_docui_photo_img"
+                        android:layout_width="45dp"
+                        android:layout_height="45dp"
+                        android:contentDescription="@string/app_name"
+                        android:layout_marginTop="5dp"
+                        android:layout_marginBottom="5dp" />
+
+                    <TextView
+                        android:id="@+id/common_docui_name_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8dp"
+                        android:layout_toRightOf="@+id/common_docui_photo_img"
+                        android:textColor="#575757"
+                        android:textSize="@dimen/text_hine"
+                        android:layout_marginTop="10dp"
+
+                        />
+                    <TextView
+                        android:id="@+id/common_docui_Section_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8dp"
+                        android:layout_toRightOf="@+id/common_docui_photo_img"
+                        android:layout_below="@id/common_docui_name_tv"
+                        android:textColor="@color/text_main"
+                        android:textSize="@dimen/text_hine"
+                        android:layout_marginTop="4dp"/>
+                    <TextView
+                        android:id="@+id/work1_daily_detail_status_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentRight="true"
+                        android:layout_marginTop="5dp"
+                        android:layout_marginBottom="0dp"
+                        android:textSize="@dimen/text_hine"/>
+                </RelativeLayout>
                 <View
                     android:layout_width="match_parent"
                     android:layout_height="@dimen/line"

+ 50 - 2
WeiChat/src/main/res/layout/activity_workdaily_detail.xml

@@ -11,14 +11,15 @@
         android:layout_height="match_parent"
         android:layout_weight="1"
         android:fillViewport="true"
-        android:scrollbars="none">
+        android:scrollbars="none"
+        android:visibility="gone">
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:focusable="true"
             android:focusableInTouchMode="true"
             android:orientation="vertical"
-            android:layout_marginTop="5dp">
+            >
             <LinearLayout
                 android:id="@+id/ly_head_display"
                 android:layout_width="match_parent"
@@ -26,6 +27,52 @@
                 android:orientation="vertical"
                 android:layout_marginBottom="10dp"
                 >
+                <RelativeLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:padding="5dp"
+                    android:layout_marginLeft="10dp"
+                    android:layout_marginRight="10dp"
+                    >
+
+                    <ImageView
+                        android:id="@+id/common_docui_photo_img"
+                        android:layout_width="45dp"
+                        android:layout_height="45dp"
+                        android:contentDescription="@string/app_name"
+                        android:layout_marginTop="5dp"
+                        android:layout_marginBottom="5dp" />
+
+                    <TextView
+                        android:id="@+id/common_docui_name_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8dp"
+                        android:layout_toRightOf="@+id/common_docui_photo_img"
+                        android:textColor="#575757"
+                        android:textSize="@dimen/text_hine"
+                        android:layout_marginTop="10dp"
+
+                        />
+                    <TextView
+                        android:id="@+id/common_docui_Section_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8dp"
+                        android:layout_toRightOf="@+id/common_docui_photo_img"
+                        android:layout_below="@id/common_docui_name_tv"
+                        android:textColor="@color/text_main"
+                        android:textSize="@dimen/text_hine"
+                        android:layout_marginTop="4dp"/>
+                    <TextView
+                        android:id="@+id/work1_daily_detail_status_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentRight="true"
+                        android:layout_marginTop="5dp"
+                        android:layout_marginBottom="0dp"
+                        android:textSize="@dimen/text_hine"/>
+                </RelativeLayout>
                 <View
                     android:layout_width="match_parent"
                     android:layout_height="@dimen/line"
@@ -40,6 +87,7 @@
                     android:layout_marginLeft="10dp"
                     android:layout_marginRight="10dp"
                     >
+
                 <RelativeLayout
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"

+ 17 - 0
WeiChat/src/main/res/layout/flihts_calendar_select.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/rest_tv"
+        android:background="#c9e2fd"
+        android:layout_width="match_parent"
+        android:layout_height="30dp"
+        android:text="班次显示"
+        android:gravity="center"
+        android:textSize="17sp"
+        android:layout_marginTop="150dp"
+        />
+</LinearLayout>

+ 53 - 0
WeiChat/src/main/res/layout/flihts_listview.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="250dp"
+    android:gravity="center_horizontal"
+    android:background="@drawable/bg_main"
+    android:orientation="vertical"
+    android:paddingLeft="10dp"
+    android:paddingRight="10dp"
+   >
+    <TextView
+        android:id="@+id/title_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="20dp"
+        android:text="选择班次"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main"
+        android:layout_marginTop="10dp"
+        />
+    <ScrollView
+        android:layout_marginTop="5dp"
+        android:layout_marginBottom="10dp"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+       <LinearLayout
+           android:layout_width="match_parent"
+           android:layout_height="match_parent"
+           android:layout_marginTop="10dp"
+           android:orientation="vertical">
+
+           <com.xzjmyk.pm.activity.view.MyListView
+               android:id="@+id/flihts_list"
+               android:layout_width="match_parent"
+               android:layout_height="match_parent"
+               >
+           </com.xzjmyk.pm.activity.view.MyListView>
+
+           <TextView
+               android:id="@+id/rest_tv"
+               android:background="#c9e2fd"
+               android:layout_width="match_parent"
+               android:layout_height="30dp"
+               android:text="休息"
+               android:gravity="center"
+               android:textSize="17sp"
+               android:layout_marginTop="10dp"
+               android:layout_marginBottom="10dp"
+               />
+       </LinearLayout>
+    </ScrollView>
+
+</LinearLayout>

+ 37 - 0
WeiChat/src/main/res/layout/item_flihts.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    >
+<LinearLayout
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:background="#c9e2fd"
+    android:paddingBottom="5dp"
+    android:layout_marginTop="10dp"
+    >
+    <TextView
+        android:id="@+id/item_comdoc_am_list_tv"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:text="2017-2-16"
+        android:layout_marginRight="10dp"
+        android:gravity="center_horizontal"
+        android:textSize="16sp"
+        />
+
+    <TextView
+        android:id="@+id/item_comdoc_am_value_tv"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="2"
+        android:text="2016-11-25-21:22"
+        android:gravity="center_horizontal"
+        android:textSize="16sp"
+        />
+</LinearLayout>
+
+</LinearLayout>

+ 18 - 7
WeiChat/src/main/res/layout/plat_add_people.xml

@@ -17,10 +17,11 @@
             android:orientation="vertical">
             <RelativeLayout
                 style="@style/IMTbleLine2"
-                android:layout_height="50dp"
+                android:minHeight="45dp"
                 android:background="@color/white">
                 <TextView
                     style="@style/form_relative_left_text"
+                    android:id="@+id/name_tv"
                     android:text="姓     名"
                     android:layout_marginLeft="0dp"
                     android:textColor="@color/text_main"
@@ -32,6 +33,7 @@
                     android:layout_height="wrap_content"
                     android:textColor="@color/dark_dark_grey"
                     android:padding="10dp"
+                    android:layout_toRightOf="@+id/name_tv"
                     android:layout_alignParentRight="true"
                     android:layout_centerVertical="true"
                     android:background="@null"
@@ -39,8 +41,9 @@
                     android:textSize="15sp"
                     android:gravity="center_vertical|right"
                     whatever:testType="regexp"
-                    whatever:customRegexp="^[A-Za-z\u4e00-\u9fa5]+$"
-                    whatever:testErrorString="姓名只能为中、英文"/>
+                    whatever:customRegexp="^[A-Za-z\u4e00-\u9fa5]{1,12}+$"
+                    whatever:testErrorString="姓名只能为12个字符之内的中、英文"
+                    android:layout_marginLeft="10dp"/>
             </RelativeLayout>
             <View
                 android:layout_width="match_parent"
@@ -141,6 +144,7 @@
                 android:layout_height="50dp"
                 android:background="@color/white">
                 <TextView
+                    android:id="@+id/tel_tv"
                     style="@style/form_relative_left_text"
                     android:text="电话号码"
                     android:layout_marginLeft="0dp"
@@ -159,7 +163,10 @@
                     android:hint="请输入(必填)"
                     android:textSize="15sp"
                     android:inputType="number"
-                    android:gravity="center_vertical|right"/>
+                    android:gravity="center_vertical|right"
+                    android:layout_toRightOf="@id/tel_tv"
+                    android:layout_marginLeft="5dp"
+                    android:maxLength="11"/>
             </RelativeLayout>
             <View
                 android:layout_width="match_parent"
@@ -167,9 +174,10 @@
                 android:background="@color/item_line" />
             <RelativeLayout
                 style="@style/IMTbleLine2"
-                android:layout_height="50dp"
+                android:minHeight="40dp"
                 android:background="@color/white">
                 <TextView
+                    android:id="@+id/email_tv"
                     style="@style/form_relative_left_text"
                     android:text="邮箱地址"
                     android:layout_marginLeft="0dp"
@@ -177,7 +185,7 @@
                     android:textSize="15sp"/>
 
                 <com.andreabaccega.widget.FormEditText xmlns:editTextFormExample="http://schemas.android.com/apk/res-auto"
-                   android:id="@+id/user_email_tv"
+                    android:id="@+id/user_email_tv"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:textColor="@color/dark_dark_grey"
@@ -185,12 +193,15 @@
                     android:layout_alignParentRight="true"
                     android:layout_centerVertical="true"
                     android:background="@null"
+                    android:layout_toRightOf="@+id/email_tv"
                     android:hint="请输入(必填)"
                     android:textSize="15sp"
                     android:gravity="center_vertical|right"
                     whatever:testType="regexp"
                     whatever:customRegexp="^([\\w-])+(\\.\\w+)*@([\\w-])+((\\.\\w{2,3}){1,3})$"
-                    whatever:testErrorString="请输入正确的邮箱格式"/>
+                    whatever:testErrorString="请输入正确的邮箱格式"
+                    android:maxLength="50"
+                    android:layout_marginLeft="10dp"/>
             </RelativeLayout>
             <View
                 android:layout_width="match_parent"

+ 4 - 2
WeiChat/src/main/res/layout/plat_comdetail_docui.xml

@@ -13,7 +13,9 @@
         android:layout_weight="1"
         android:fillViewport="true"
         android:scrollbars="none"
-        android:focusableInTouchMode="true">
+        android:focusableInTouchMode="true"
+        android:visibility="gone"
+        >
 
         <LinearLayout
             android:layout_width="match_parent"
@@ -38,7 +40,7 @@
                 android:contentDescription="@string/app_name"
                 android:layout_marginTop="5dp"
                 android:layout_marginBottom="5dp"
-                android:src="@drawable/b2bs"/>
+                />
 
             <TextView
                 android:id="@+id/common_docui_name_tv"