Bitliker 9 лет назад
Родитель
Сommit
08af65674c
19 измененных файлов с 667 добавлено и 61 удалено
  1. 12 10
      WeiChat/src/main/AndroidManifest.xml
  2. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  3. 95 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  4. 26 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddFlihtsActivity.java
  5. 356 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/FlihtsDateSelectActivity.java
  6. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/PlatWDdetailyActivity.java
  7. 14 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/FlightsModel.java
  8. 10 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/AddFlihtsPresenter.java
  9. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IAddFlihtsView.java
  10. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/OfficeAddressSettingsActivity.java
  11. 0 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SettingActivity.java
  12. 10 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/pageforms/ComplaintDetailActivity.java
  13. 5 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskAddB2BActivity.java
  14. 6 9
      WeiChat/src/main/java/com/xzjmyk/pm/newpedo/view/NewStepActivity.java
  15. 20 2
      WeiChat/src/main/res/layout/activity_add_flihts.xml
  16. 17 0
      WeiChat/src/main/res/layout/flihts_calendar_select.xml
  17. 52 0
      WeiChat/src/main/res/layout/flihts_listview.xml
  18. 37 0
      WeiChat/src/main/res/layout/item_flihts.xml
  19. 1 1
      WeiChat/src/main/res/layout/plat_add_people.xml

+ 12 - 10
WeiChat/src/main/AndroidManifest.xml

@@ -108,7 +108,8 @@
     <!-- 计步器用到 -->
     <uses-feature android:name="android.hardware.sensor.accelerometer" />
 
-    <!-- <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> -->
+    <!--<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />-->
+
     <!-- 自动聚焦权限 -->
     <!-- 全局样式不要随意改动  @style/AppTheme -->
     <application
@@ -596,7 +597,7 @@
         <activity android:name=".ui.erp.activity.oa.OAMainActivity" />
 
         <!-- 分享开始   umeng api key -->
-        <!-- TODO 分享Id   android:value="57ea27bb67e58e088c003bbf" -->
+        <!--TODO 分享Id   android:value="57ea27bb67e58e088c003bbf" -->
         <meta-data
             android:name="UMENG_APPKEY"
             android:value="574504a167e58eec520017df" />
@@ -892,14 +893,13 @@
         <activity
             android:name="com.xzjmyk.pm.newpedo.view.NewStepListActivity"
             android:label="更多历史记录" />
-        <!-- 计步功能 服务 -->
+        <!-- 计步功能 服务-->
         <service
             android:name="com.xzjmyk.pm.newpedo.service.StepService"
             android:priority="1000"
             android:process="com.spring.stepcount.service">
             <intent-filter>
-
-                <!-- 系统启动完成后会调用 -->
+                <!-- 系统启动完成后会调用-->
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
                 <action android:name="android.intent.action.DATE_CHANGED" />
                 <action android:name="android.intent.action.MEDIA_MOUNTED" />
@@ -910,11 +910,13 @@
             </intent-filter>
         </service>
 
-        <activity
-            android:name=".ui.platform.pageforms.ComplaintDetailActivity"
-            android:label="申诉单" />
-        <activity android:name=".ui.erp.activity.ADActivity"
-       />
+        <activity android:name=".ui.platform.pageforms.ComplaintDetailActivity"
+            android:label="申诉单"/>
+
+        <activity android:name=".ui.erp.activity.oa.FlihtsDateSelectActivity"
+            android:label="选择日期"/>
+
+        <activity android:name=".ui.erp.activity.ADActivity"/>
     </application>
 
 </manifest>

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

@@ -64,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;
@@ -412,9 +411,10 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
             PushManager.stopWork(this);
         }
         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());
         }
         startService(new Intent(this, AutoErpService.class));

+ 95 - 4
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;
@@ -629,10 +640,11 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         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 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         }
     }
 
+    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);

+ 26 - 7
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
@@ -288,9 +304,12 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
         } else if (StringUtils.isEmpty(time_tv.getText().toString())) {
             Crouton.showToast(ct, "考勤时间不能为空", R.color.load_warning);
             return false;
-        } else if (StringUtils.isEmpty(date_tv.getText().toString())) {
-            Crouton.showToast(ct, "考勤日期不能为空", R.color.load_warning);
-            return false;
+        }
+        if (!"更新".equals(click_btn.getText().toString())){
+            if (StringUtils.isEmpty(date_tv.getText().toString())) {
+                Crouton.showToast(ct, "考勤日期不能为空", R.color.load_warning);
+                return false;
+            }
         }
         if (!ListUtils.isEmpty(mans) || !ListUtils.isEmpty(defaultirs)) {
             showDeleteDialog();

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

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

@@ -609,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();
                             }

+ 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/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 {

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

@@ -143,17 +143,16 @@ public class ComplaintDetailActivity extends BaseActivity {
 
     @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();

+ 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("执行人为必填项");

+ 6 - 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,15 +98,13 @@ 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");

+ 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

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

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

@@ -0,0 +1,52 @@
+<?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_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="5dp"
+           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>

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

@@ -41,7 +41,7 @@
                     android:textSize="15sp"
                     android:gravity="center_vertical|right"
                     whatever:testType="regexp"
-                    whatever:customRegexp="^[A-Za-z\u4e00-\u9fa5]{1,24}+$"
+                    whatever:customRegexp="^[A-Za-z\u4e00-\u9fa5]{1,12}+$"
                     whatever:testErrorString="姓名只能为12个字符之内的中、英文"
                     android:layout_marginLeft="10dp"/>
             </RelativeLayout>