Browse Source

获取异常处理

Bitliker 9 years ago
parent
commit
e811341c2e
20 changed files with 266 additions and 223 deletions
  1. 6 3
      WeiChat/src/main/AndroidManifest.xml
  2. 9 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  3. 0 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java
  4. 3 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/LocationMapActivity.java
  5. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java
  6. 33 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  7. 32 24
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutofficeSetActivity.java
  8. 14 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkLogsActivity.java
  9. 55 46
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java
  10. 88 99
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java
  11. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/WorksFragment.java
  12. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CodeUtil.java
  13. 0 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonUtil.java
  14. 7 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/BaiduMapUtil.java
  15. 1 0
      WeiChat/src/main/res/layout/activity_oa.xml
  16. 2 1
      WeiChat/src/main/res/layout/activity_outoffice.xml
  17. 5 2
      WeiChat/src/main/res/layout/activity_outoffice_set.xml
  18. 2 1
      WeiChat/src/main/res/layout/activity_signin.xml
  19. 2 5
      WeiChat/src/main/res/layout/fragment_outoffice.xml
  20. 5 10
      WeiChat/src/main/res/layout/fragment_signin.xml

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

@@ -423,9 +423,12 @@
         <activity
             android:name=".ui.erp.activity.oa.OutofficeActivity"
             android:label="外勤签到" />
-        <activity android:name=".ui.erp.activity.oa.MeetDetailsActivity" />
-        <activity android:name=".ui.erp.activity.oa.OARegisterActivity" />
-        android:launchMode="singleTask" />
+        <activity
+            android:name=".ui.erp.activity.oa.MeetDetailsActivity"
+            android:label="会议详情" />
+        <activity
+            android:name=".ui.erp.activity.oa.OARegisterActivity"
+            android:label="查看签到情况" />
         <activity android:name=".ui.erp.activity.crm.CustomerAddActivity" />
         <activity android:name=".ui.erp.activity.crm.CustomerDetailActivity" />
         <activity android:name=".ui.erp.activity.crm.CustomerListActivity" />

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

@@ -159,6 +159,10 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
             if (mBusinessCircleFragment != null) {
                 mBusinessCircleFragment.onResult();
             }
+        } else if (requestCode == 0x11) {
+            if (resultCode == 0x12) {
+                mTabRadioGroup.check(R.id.main_tab_five);
+            }
         }
     }
 
@@ -221,6 +225,10 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
     private AppConfig config;
     private String mLoginUserId;
 
+    public void chea() {
+
+    }
+
     public void changeRedZone(boolean b) {
         if (b) {
             unWorkReadTV.setVisibility(View.VISIBLE);
@@ -730,6 +738,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
      * @return
      */
     public BusinessCircleFragment getBusinessCircleFragment() {
+
         FragmentManager sfmanager = getSupportFragmentManager();
         return (BusinessCircleFragment) sfmanager.findFragmentByTag(TAG_BusinessCircle);
     }

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

@@ -41,12 +41,6 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
     public static String KEY_ALAR_TIME = "KEY_ALAR_TIME";
     public static String KEY_UALAR_TIME = "KEY_UALAR_TIME";
 
-
-    public static String KEY_ALAR_MM = "KEY_ALAR_MM";
-    public static String KEY_UALAR_HH = "KEY_UALAR_HH";
-    public static String KEY_UALAR_MM = "KEY_UALAR_MM";
-
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

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

@@ -14,14 +14,7 @@ import android.widget.BaseAdapter;
 import android.widget.CheckBox;
 import android.widget.TextView;
 
-import com.baidu.mapapi.map.BitmapDescriptor;
-import com.baidu.mapapi.map.BitmapDescriptorFactory;
-import com.baidu.mapapi.map.MapStatus;
-import com.baidu.mapapi.map.MapStatusUpdate;
-import com.baidu.mapapi.map.MapStatusUpdateFactory;
 import com.baidu.mapapi.map.MapView;
-import com.baidu.mapapi.map.MarkerOptions;
-import com.baidu.mapapi.map.OverlayOptions;
 import com.baidu.mapapi.model.LatLng;
 import com.baidu.mapapi.search.core.PoiInfo;
 import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener;
@@ -52,6 +45,7 @@ public class LocationMapActivity extends BaseActivity implements OnGetPoiSearchR
     private int selectItem = 0;
     private PoiInfo myPoInfo;
     private int what = 0x12;
+    private int location;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -67,10 +61,10 @@ public class LocationMapActivity extends BaseActivity implements OnGetPoiSearchR
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_map_location);
-
+        location = getIntent().getIntExtra("data", 500);
         init();
         initView();
-        BaiduMapUtil.getInstence().getNearInfo(0, 0, point, mPoiSearch, handler, what);
+        BaiduMapUtil.getInstence().getNearInfo(location, 0, point, mPoiSearch, handler, what);
     }
 
     private void initView() {

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

@@ -153,7 +153,6 @@ public class MeetingActivity extends BaseActivity {
         param.put("pageSize", 10);
         param.put("condition", condition);
         param.put("sessionId", sessionId);
-        Log.i("gongpengming", url + "?emcode=" + emcode + "&caller=" + caller + "&sessionId=" + sessionId);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, whatLoad, null, null, "post");

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

@@ -52,7 +52,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
             whatTask = 0x11,    //任务接口
             whatSchedule = 0x12,//日程接口
             whatTaskNum = 0x13;//获取选中日期完成任务情况接口
-    private static String[] stateItems = {"状态", "确认中", "进行中", "已完成"};
+    private static String[] stateItems = {"确认中", "进行中", "已完成"};
     private static String[] typeItems = {"类型", "任务", "日程", "拜访"};
     private static String baseUrl;
 
@@ -202,6 +202,13 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
         loadNetData(whatSchedule);
     }
 
+    public void loadNetData(String status) {
+        progressDialog.show();
+        String url = baseUrl + "mobile/crm/getVisitPlan.action";
+        String date = TimeUtils.long2str(System.currentTimeMillis(), "yyyyMM");
+        loadNetData(whatTask, url, date, status, 1);
+    }
+
     //获取网络数据
     public void loadNetData(int what) {
         progressDialog.show();
@@ -223,17 +230,17 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
                 date = this.date;
                 break;
         }
-        loadNetData(what, url, date, 1);
+        loadNetData(what, url, date, "1", 1);
     }
 
     //获取网络数据
-    public void loadNetData(int what, String url, String date, int pager) {
+    public void loadNetData(int what, String url, String date, String status, int pager) {
         //获取网络数据
         final Map<String, Object> param = new HashMap<>();
         param.put("emcode", CommonUtil.getSharedPreferences(this, "erp_username"));
         param.put("date", date);
         if (what == whatTask)
-            param.put("status", 1);
+            param.put("status", status);
         param.put("page", pager);
         param.put("pageSize", 10);
         param.put("sessionId", CommonUtil.getSharedPreferences(this, "sessionId"));
@@ -281,6 +288,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
 
     //设置控件点击事件
     private void setListener() {
+        findViewById(R.id.oa_img_people).setOnClickListener(this);
         findViewById(R.id.ll_signin).setOnClickListener(this);
         findViewById(R.id.ll_outside).setOnClickListener(this);
         findViewById(R.id.ll_meeting).setOnClickListener(this);
@@ -309,21 +317,35 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
         switch (adapterView.getId()) {
             case R.id.state:
-                Log.i("gongpengming", stateItems[i]);
-                break;
+                String status = "1";
+                switch (i) {
+                    case 0:
+                        status = "UNCONFIRMED";
+                        break;
+                    case 1:
+                        status = "DOING";
+                        break;
+                    case 2:
+                        status = "FINISHED";
+                        break;
+                }
+                loadNetData(status);
             case R.id.type:
                 Log.i("gongpengming", typeItems[i]);
                 switch (i) {
                     case 0:
+                        state.setVisibility(View.GONE);
                         break;
                     case 1:
                         typeWhat = whatTask;
+                        state.setVisibility(View.VISIBLE);
                         if (taskList == null) {//如果前一次请求失败
                             loadNetData(whatTask);
                         }
                         updateUI();
                         break;
                     case 2:
+                        state.setVisibility(View.GONE);
                         typeWhat = whatSchedule;
                         if (scheduleList == null) {
                             loadNetData(whatSchedule);
@@ -331,6 +353,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
                         updateUI();
                         break;
                     case 3:
+                        state.setVisibility(View.GONE);
                         typeWhat = whatVisit;
                         if (visitList == null) {
                             loadNetData(whatVisit);
@@ -389,6 +412,10 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
             case R.id.staff_tv://点击人员
 //                startActivity(new Intent(activity, StatisticsActivity.class));
                 break;
+            case R.id.oa_img_people://点击返回
+                setResult(0x12, null);
+                finish();
+                break;
         }
     }
 

+ 32 - 24
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutofficeSetActivity.java

@@ -4,75 +4,83 @@ import android.content.DialogInterface;
 import android.os.Bundle;
 import android.support.v7.app.AlertDialog;
 import android.view.View;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.SwitchView;
 
 public class OutofficeSetActivity extends BaseActivity {
+    public static final String OA_LOCATION_DISTANCE = "OA_LOCATION_DISTANCE";
+    public static final String OA_LOCATION_IS = "OA_LOCATION_IS";
 
+    @ViewInject(R.id.location_tv)
     private TextView location_tv;
+    @ViewInject(R.id.location_tag)
+    private TextView location_tag;
+    @ViewInject(R.id.location_rl)
+    private RelativeLayout location_rl;
+    @ViewInject(R.id.allow_chance_location)
     private SwitchView allow_chance_location;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_outoffice_set);
+        ViewUtils.inject(this);
         initview();
     }
 
     private void initview() {
-        location_tv = (TextView) findViewById(R.id.location_tv);
-        allow_chance_location = (SwitchView) findViewById(R.id.allow_chance_location);
         allow_chance_location.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(View view, boolean isChecked) {
-                CommonUtil.setSharedPreferences(OutofficeSetActivity.this, "outoffice_allow", isChecked);
+                setClickAble(isChecked);
+                CommonUtil.setSharedPreferences(OutofficeSetActivity.this, OA_LOCATION_IS, isChecked);
             }
         });
-        findViewById(R.id.location_rl).setOnClickListener(new View.OnClickListener() {
+        location_rl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                 ShowDalogs();
             }
         });
+        //获取保存信息
+        String location = CommonUtil.getSharedPreferences(ct, OA_LOCATION_DISTANCE);
+        if (location == null || location.length() <= 0)
+            location = "100米";
+        location_tv.setText(location);
+        allow_chance_location.setChecked(CommonUtil.getSharedPreferencesBoolean(ct, OA_LOCATION_IS, false));
     }
 
     private void ShowDalogs() {
         AlertDialog.Builder builder = new AlertDialog.Builder(OutofficeSetActivity.this);
         builder.setTitle("选择微调距离");
         //    指定下拉列表的显示数据
-        final String[] cities = {"200米", "400米", "600米", "800米", "1000米"};
+        final String[] cities = {"100米", "200米", "400米", "600米", "1000米"};
         //    设置一个下拉的列表选择项
         builder.setItems(cities, new DialogInterface.OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 location_tv.setText(cities[which]);
-                long i = 0;
-                switch (which) {
-                    case 0:
-                        i = 200;
-                        break;
-                    case 1:
-                        i = 400;
-                        break;
-                    case 2:
-                        i = 600;
-                        break;
-                    case 3:
-                        i = 700;
-                        break;
-                    case 4:
-                        i = 1000;
-                        break;
-                }
-                CommonUtil.putSharedPreferencesLong(OutofficeSetActivity.this, "outoffice_location", i);
+                CommonUtil.setSharedPreferences(ct, OA_LOCATION_DISTANCE, cities[which]);
             }
         });
         builder.show();
     }
 
 
+    public void setClickAble(boolean clickAble) {
+        location_rl.setClickable(clickAble);
+        location_rl.setFocusable(clickAble);
+        int color = R.color.hintColor;
+        if (clickAble)
+            color = R.color.text_main;
+        location_tag.setTextColor(getResources().getColor(color));
+        location_tv.setTextColor(getResources().getColor(color));
+    }
 }

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

@@ -26,6 +26,8 @@ import com.xzjmyk.pm.activity.view.SuperSwipeRefreshLayout;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * 工作日志
@@ -111,6 +113,18 @@ public class WorkLogsActivity extends BaseActivity {
         mAdapter.notifyDataSetChanged();
     }
 
+    private static void getStrings() {
+        String str = "rrwerqq84461376qqasfdasdfrrwerqq84461377qqasfdasdaa654645aafrrwerqq84461378qqasfdaa654646aaasdfrrwerqq84461379qqasfdasdfrrwerqq84461376qqasfdasdf";
+        Pattern p = Pattern.compile("qq(.*?)qq");
+        Matcher m = p.matcher(str);
+        ArrayList<String> strs = new ArrayList<String>();
+        while (m.find()) {
+            strs.add(m.group(1));
+        }
+        for (String s : strs){
+           Log.i("gongepngming",s);
+        }
+    }
     private void initView() {
         bottom_view = (PMsgBottomView) findViewById(R.id.bottom_view);
         root_view = (SuperSwipeRefreshLayout) findViewById(R.id.root_view);

+ 55 - 46
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java

@@ -7,12 +7,13 @@ import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.Button;
-import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.baidu.mapapi.map.MapView;
 import com.baidu.mapapi.model.LatLng;
 import com.baidu.mapapi.search.core.PoiInfo;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
@@ -24,29 +25,42 @@ import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutofficeSetActivity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
-
-import java.util.Calendar;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 
 /**
  * Created by gongpm on 2016/7/14.
  */
 public class OutofficeFragment extends EasyFragment implements View.OnClickListener {
+    private LatLng point;//位置
+    private static int requestCode = 0x11;
+    private int sigNum;//签到次数
+
+    @ViewInject(R.id.num_tv)
     private TextView num_tv; //签到次数
+    @ViewInject(R.id.out_add_name_tv)
     private TextView out_add_name_tv;//地点名称
-    private ImageView name_img;//头像
+    @ViewInject(R.id.name_img)
+    private TextView name_img;//头像
+    @ViewInject(R.id.name_tv)
     private TextView name_tv;//名字
+    @ViewInject(R.id.out_date_tv)
     private TextView out_date_tv;//日期
+    @ViewInject(R.id.out_time_tv)
     private TextView out_time_tv;//当前时间
+    @ViewInject(R.id.click_btn)
     private Button click_btn;//点击签到
+    @ViewInject(R.id.out_add_t_tv)
     private TextView out_add_t_tv;//地址
-    private OutofficeActivity ct;
-    //当前位置
-    private LatLng point;
-    int requestCode = 0x11;
+    @ViewInject(R.id.mapView)
     private MapView mapView;
+    @ViewInject(R.id.com_tv)
     private TextView com_tv;
+    @ViewInject(R.id.date_tag)
     private TextView date_tag;
-    private int sigNum = 0;
+    @ViewInject(R.id.do_trim)
+    private TextView do_trim;
+
+    private OutofficeActivity ct;
 
     @Override
     protected int inflateLayoutId() {
@@ -56,6 +70,7 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
     @Override
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
         setHasOptionsMenu(true);
+        ViewUtils.inject(getmRootView());
         ct = (OutofficeActivity) getActivity();
         initview();
     }
@@ -71,28 +86,44 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
     }
 
     private void initview() {
-        out_add_name_tv = (TextView) findViewById(R.id.out_add_name_tv);
-        out_add_t_tv = (TextView) findViewById(R.id.out_add_t_tv);
-        num_tv = (TextView) findViewById(R.id.num_tv);
-        name_img = (ImageView) findViewById(R.id.name_img);
-        name_tv = (TextView) findViewById(R.id.name_tv);
-        out_date_tv = (TextView) findViewById(R.id.out_add_t_tv);
-        out_time_tv = (TextView) findViewById(R.id.out_time_tv);
-        click_btn = (Button) findViewById(R.id.click_btn);
-        mapView = (MapView) findViewById(R.id.mapView);
-        com_tv = (TextView) findViewById(R.id.com_tv);
-        date_tag = (TextView) findViewById(R.id.date_tag);
-        findViewById(R.id.do_trim).setOnClickListener(this);
-        initData();
+        num_tv.setText("" + sigNum);
+        name_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
+        com_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_commpany"));
+        long timeLong = System.currentTimeMillis();
+        date_tag.setText(TimeUtils.getWeek(timeLong) + ":");//星期
+        out_date_tv.setText(TimeUtils.s_long_2_str(timeLong));//日期
+        out_time_tv.setText(TimeUtils.long2str(timeLong, "HH:mm"));//时间点
+        BdLocationHelper locationHelper = MyApplication.getInstance().getBdLocationHelper();
+        double latitude = locationHelper.getLatitude();
+        double longitude = locationHelper.getLongitude();
+        out_add_name_tv.setText(locationHelper.getDistrictName());
+        out_add_t_tv.setText(locationHelper.getAddress());
+        point = new LatLng(latitude, longitude);
+        BaiduMapUtil.getInstence().setMapViewPoint(mapView, point);
+        do_trim.setOnClickListener(this);
         click_btn.setOnClickListener(this);
-    }
 
+    }
 
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.do_trim:
-                startActivityForResult(new Intent(getActivity(), LocationMapActivity.class), requestCode);
+                boolean isClick = CommonUtil.getSharedPreferencesBoolean(ct, OutofficeSetActivity.OA_LOCATION_IS);
+                if (isClick) {
+                    Intent i = new Intent(getActivity(), LocationMapActivity.class);
+                    String location = CommonUtil.getSharedPreferences(ct, OutofficeSetActivity.OA_LOCATION_DISTANCE);
+                    StringBuilder builder = new StringBuilder(location);
+                    location = builder.deleteCharAt(builder.length() - 1).toString();
+                    try {
+                        i.putExtra("data", Integer.parseInt(location));
+                    } catch (NumberFormatException e) {
+                        e.printStackTrace();
+                    }
+                    startActivityForResult(i, requestCode);
+                } else {
+                    ToastUtil.showToast(ct, "您已关闭地点微调功能,请在设置里面修改设置");
+                }
                 break;
             case R.id.click_btn:
                 Intent intent = new Intent(getActivity(), OutSigninOKActivity.class);
@@ -104,28 +135,6 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
         }
     }
 
-    private void initData() {
-        long time = System.currentTimeMillis();
-        Calendar mCalendar = Calendar.getInstance();
-        mCalendar.setTimeInMillis(time);
-        int mHour = mCalendar.get(Calendar.HOUR);
-        int mMin = mCalendar.get(Calendar.MINUTE);
-        num_tv.setText("" + sigNum);
-        name_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
-        com_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_commpany"));
-        long timeLong = System.currentTimeMillis();
-        date_tag.setText(TimeUtils.getWeek(timeLong) + ":");//星期
-        out_date_tv.setText(TimeUtils.s_long_2_str(System.currentTimeMillis()));//日期
-        out_time_tv.setText((mHour < 10 ? "0" : "") + mHour + ":" + (mMin < 10 ? "0" : "") + mMin);//时间点
-        BdLocationHelper locationHelper = MyApplication.getInstance().getBdLocationHelper();
-        double latitude = locationHelper.getLatitude();
-        double longitude = locationHelper.getLongitude();
-        out_add_name_tv.setText(locationHelper.getDistrictName());
-        out_add_t_tv.setText(locationHelper.getAddress());
-        point = new LatLng(latitude, longitude);
-        BaiduMapUtil.getInstence().setMapViewPoint(mapView, point);
-    }
-
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == R.id.title) {

+ 88 - 99
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java

@@ -55,6 +55,15 @@ import java.util.Map;
  * Created by gongpm on 2016/7/5.
  */
 public class SigninFragment extends EasyFragment {
+    private static final int NEW_TIME_WHAT = 0x10;
+    private static final int whatLoad = 0x11;
+    private static final int whatSignin = 0x12;
+    private static final int thrad = 0x13;
+    private static final int requcode = 0x14;
+    private static final int whatLog = 0x15;
+    private static final double X = 22.540551;
+    private static final double Y = 113.953345;
+
     @ViewInject(R.id.location_tv)
     private TextView location_tv;
     @ViewInject(R.id.newtime_tv)
@@ -77,40 +86,35 @@ public class SigninFragment extends EasyFragment {
     private LinearLayout signin_btn;
 
     private LatLng location;
-    private static final int NEW_TIME_WHAT = 0x10;
-    private final int whatLoad = 0x11;
-    private final int whatSignin = 0x12;
-    private final int thrad = 0x13;
-    private static final double X = 22.540551;
-    private static final double Y = 113.953345;
+
     private AlertDialog dateDialog;
     private SigninActivity ct;
-    private int requcode = 0x11;
     private PoiInfo myPoInfo;
     private String baseUrl;
-    private int uHH, uMM, dHH, dMM;//上下班的时分
-    private int hh, mm;//距离时间
     private boolean isPlay = false;//是否已经签到
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             ct.progressDialog.dismiss();
-            Bundle message = msg.getData();
+            String message = msg.getData().getString("result");
             switch (msg.what) {
+                case whatLog:
+
+                    break;
                 case whatLoad:
                     try {
                         //获取到当前时间
-                        JSONObject object = new JSONObject(message.getString("result"));
+                        JSONObject object = new JSONObject(message);
                         String u = object.isNull("ondutytime") ? "00:00" : object.getString("ondutytime");
                         String d = object.isNull("offdutytime") ? "00:00" : object.getString("offdutytime");
-                        uHH = Integer.parseInt(u.split(":")[0]);
-                        uMM = Integer.parseInt(u.split(":")[1]);
-                        dHH = Integer.parseInt(d.split(":")[0]);
-                        dMM = Integer.parseInt(d.split(":")[1]);
+                        int uHH = Integer.parseInt(u.split(":")[0]);
+                        int uMM = Integer.parseInt(u.split(":")[1]);
+                        int dHH = Integer.parseInt(d.split(":")[0]);
+                        int dMM = Integer.parseInt(d.split(":")[1]);
                         time0fwork_tv.setText((uHH < 10 ? "0" : "") + uHH + ":" + (uMM < 10 ? "0" : "") + uMM);
                         time0fuwork_tv.setText((dHH < 10 ? "0" : "") + dHH + ":" + (dMM < 10 ? "0" : "") + dMM);
                         //获取到签到时间后开线程计算距离签到时间
-                        startThrad();
+                        startThrad(time0fwork_tv.getText().toString().trim() + ":00", time0fuwork_tv.getText().toString().trim() + ":00");
                     } catch (JSONException e) {
                         e.printStackTrace();
                     }
@@ -121,8 +125,6 @@ public class SigninFragment extends EasyFragment {
                     mCalendar.setTimeInMillis(time);
                     int mHour = mCalendar.get(Calendar.HOUR_OF_DAY);
                     int mMin = mCalendar.get(Calendar.MINUTE);
-                    int h = Math.abs(mHour - uHH);
-                    int m = Math.abs(mHour - dHH);
                     String strTime = (mHour < 10 ? "0" : "") + mHour + ":" + (mMin < 10 ? "0" : "") + mMin;
                     int k = SigninDao.getInstance(ct).getDateStatus(em_code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
                     if (k == 0) {
@@ -141,9 +143,8 @@ public class SigninFragment extends EasyFragment {
                     signinAble(false);//关闭签到入口
                     break;
                 case thrad:
-                    String str = message.getString("result");
-                    if (str == null) return;
-                    untime_signin.setText(str);
+                    if (message == null) return;
+                    untime_signin.setText(message);
                     break;
                 case NEW_TIME_WHAT:
                     newtime_tv.setText(TimeUtils.f_long_2_str(System.currentTimeMillis()));
@@ -157,6 +158,7 @@ public class SigninFragment extends EasyFragment {
     };
     private String em_code;
     long distanceTime = 60 * 1000 * 20;//允许提前20分钟签到
+    private int signinNum;//打卡次数
 
     private void signinAble() {
         int k = SigninDao.getInstance(ct).getDateStatus(em_code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
@@ -168,7 +170,6 @@ public class SigninFragment extends EasyFragment {
             String str = BaiduMapUtil.getInstence().getDistance(lalat, location);
             unoffice_mm.setText("距离考勤地点:" + str + "米");
             if (BaiduMapUtil.getInstence().getDistanceD(lalat, location) < 500) {
-                //TODO 在允许的距离内签到
                 signinAble(true);
             } else {
                 signinAble(false);
@@ -200,95 +201,60 @@ public class SigninFragment extends EasyFragment {
     }
 
     //开启线程计算时间
-    private void startThrad() {
+    private void startThrad(final String uTime, final String dTime) {
         ThreadPool.getThreadPool().addTask(new Runnable() {
             @Override
             public void run() {
-                long time = System.currentTimeMillis();
-                Calendar mCalendar = Calendar.getInstance();
-                mCalendar.setTimeInMillis(time);
-                int mHour = mCalendar.get(Calendar.HOUR);
-                int mMin = mCalendar.get(Calendar.MINUTE);
-                int mSecond = mCalendar.get(Calendar.SECOND);
-                if (mHour < uHH) {//当前时间在上班时间之前
-                    beforeTheTime(mHour, mMin, mSecond);
-                } else if (mHour == uHH) {//
-                    if (mMin < uMM) {//还没到上班考勤时间
-                        beforeTheTime(mHour, mMin, mSecond);
-                    } else {//过了上班考勤时间
-                        endTheTime(mHour, mMin, mSecond);
-                    }
-                } else if (mHour < dHH && mHour > uHH) {//当前时间在上班时间之后在下班时间之前
-                    endTheTime(mHour, mMin, mSecond);
-                } else {//当前时间在上班时间和下班时间之后  当天打卡时间已过
-                    sendHandle(-1, -1);
+                long distance = -1;
+                if (signinNum == 0) {//没有打过卡,那当前时间和上班时间对比
+                    distance = getDistanceTime(uTime);
+                } else {//打了上班卡,拿当前时间和下班时间对比
+                    distance = getDistanceTime(dTime);
                 }
-            }
-        });
-    }
 
-    private void endTheTime(int mHour, int mMin, int mSecond) {
-        try {
-            int m = dMM - mMin;
-            int h = dHH - mHour;
-            while (true) {
-                if (isPlay) break;
-                m--;
-                if (m < 0) {
-                    h--;
-                    m = 60 + m;
-                    if (h < 0) {
-                        sendHandle(00, 00);
-                        break;//退出
+                long unit;
+                if (distance > 0) {//当前时间超过指定签到时间,要不断加
+                    unit = 1000;
+                } else {//当前时间还没到签到时间,要减
+                    unit = -1000;
+                }
+                distance = Math.abs(distance);
+                try {
+                    while (distance > 0) {
+                        distance -= unit;
+                        sendHandle(distance);
+                        Thread.sleep(1000);
                     }
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
                 }
-                sendHandle(h, m);
-                Thread.sleep(1000 * 60);
             }
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
+        });
     }
 
     /**
-     * @param mHour   当前时
-     * @param mMin    当前分
-     * @param mSecond 当前秒
+     * 获取当天的指定时分秒和当前的时间差
+     *
+     * @param time 时分秒 "HH:mm:ss"
+     * @return 相差时间long(指定时间去减当前时间)
      */
-    private void beforeTheTime(int mHour, int mMin, int mSecond) {//当前时间在上班时间之前
-        try {
-            int m = mMin - uMM;
-            int h = uHH - mHour;
-
-            while (true) {
-                if (isPlay) break;
-                m--;
-                if (m < 0) {
-                    h--;
-                    m = 60 + m;
-                    if (h < 0) {
-                        sendHandle(00, 00);
-                        break;//退出
-                    }
-                }
-                sendHandle(h, m);
-                Thread.sleep(1000 * 60);
-            }
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
+    private long getDistanceTime(String time) {
+        String temp = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + time;
+        return TimeUtils.f_str_2_long(temp) - System.currentTimeMillis();
     }
 
-    private void sendHandle(int h, int m) {
+    private void sendHandle(long distance) {
         Message message = handler.obtainMessage();
         message.what = thrad;
-        String time;
-        if (h == -1 && m == -1) {
-            time = "今天打开时间已经过了";
-        } else {
-            time = (h < 10 ? "0" : "") + h + ":" + (m < 10 ? "0" : "") + m;
-        }
-        message.getData().putString("result", time);
+        Log.i("gongpengming", "distance=" + distance);
+        int d = (int) distance / 1000;
+        int h = d / 3600;
+        int m = (d % 3600) / 60;
+        int s = ((d % 3600) % 60);
+        String str = (h < 10 ? "0" : "") + h + ":" + (m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s;
+        Bundle bundle = new Bundle();
+        bundle.putString("result", str);
+        message.setData(bundle);
         handler.sendMessage(message);
     }
 
@@ -301,6 +267,7 @@ public class SigninFragment extends EasyFragment {
         baseUrl = CommonUtil.getSharedPreferences(ct, "erp_baseurl");
         initView();
         loadNetData();
+        loadLog();
     }
 
     //获取网络数据
@@ -321,6 +288,27 @@ public class SigninFragment extends EasyFragment {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, whatLoad, null, null, "post");
     }
 
+    private void loadLog() {
+        ct.progressDialog.show();
+        //获取网络数据
+        String url = baseUrl + "mobile/common/list.action";
+        int date = TimeUtils.int_long_2_str(System.currentTimeMillis());
+        String emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
+        String sessionId = CommonUtil.getSharedPreferences(ct, "sessionId");
+        final Map<String, Object> param = new HashMap<>();
+        param.put("emcode", emcode);
+        param.put("currentMaster", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        param.put("page", 1);
+        param.put("pageSize", 10);
+        param.put("condition", "1=1");
+        param.put("sessionId", sessionId);
+        param.put("caller", "CardLog");
+        param.put("sessionId", sessionId);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, whatLog, null, null, "get");
+    }
+
     public String getLocation() {
         String temp = location_tv.getText().toString();
         String locationStr = "";
@@ -361,12 +349,14 @@ public class SigninFragment extends EasyFragment {
         location_tv.setText(MyApplication.getInstance().getBdLocationHelper().getAddress());
         em_code = CommonUtil.getSharedPreferences(ct, "erp_username");
         Signin bean = SigninDao.getInstance(ct).query(em_code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
+        signinNum = 0;
         if (bean != null) {
-            if (bean.getSigninNum() >= 1) {
+            signinNum = bean.getSigninNum();
+            if (signinNum >= 1) {
                 //只打一次卡
                 signin0fwork_tv.setText(TimeUtils.long2str(TimeUtils.f_str_2_long(bean.getUtime()), "HH:mm"));
             }
-            if (bean.getSigninNum() == 2) {
+            if (signinNum == 2) {
                 signin0fuwork_tv.setText(TimeUtils.long2str(TimeUtils.f_str_2_long(bean.getDtime()), "HH:mm"));
             }
         }
@@ -375,8 +365,7 @@ public class SigninFragment extends EasyFragment {
                 MyApplication.getInstance().getBdLocationHelper().getLongitude());
         String str = BaiduMapUtil.getInstence().getDistance(lalat, location);
         unoffice_mm.setText("距离考勤地点:" + str + "米");
-        //TODO 判断是否可以点击,先关闭
-//        signinAble();
+        signinAble();
     }
 
     private void setListener() {

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

@@ -93,7 +93,7 @@ public class WorksFragment extends XutilsFragment implements View.OnClickListene
                 ViewUtil.WebLinks(ct, url, "我的商务");
                 break;
             case R.id.rl_uas_sys:
-                ct.startActivity(new Intent(ct, OAActivity.class));
+                getActivity().startActivityForResult(new Intent(ct, OAActivity.class), 0x11);
                 break;
             case R.id.my_client_rl:
                 ct.startActivity(new Intent(ct, ClientActivity.class));

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

@@ -45,7 +45,7 @@ public class CodeUtil {
                     return;
                 }
             }
-            //容错
+            //TODO 容错、待修改(网络修复后)
             if (linstener != null) {
                 linstener.callBack(code);
             }

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

@@ -21,7 +21,6 @@ import android.os.Build;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
 import android.text.style.ForegroundColorSpan;
-import android.text.style.StrikethroughSpan;
 import android.text.style.StyleSpan;
 import android.text.style.UnderlineSpan;
 import android.util.DisplayMetrics;
@@ -56,19 +55,15 @@ import java.util.regex.Pattern;
 
 @SuppressLint("NewApi")
 public class CommonUtil {
-
     private final static String AppShareName = "setting";
-
     public static boolean isBackground(Context context) {
         ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
         List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
         for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
             if (appProcess.processName.equals(context.getPackageName())) {
                 if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
-                    Log.i("Process", "进入后台..." + appProcess.processName);
                     return true;
                 } else {
-                    Log.i("Process", "进入前台..." + appProcess.processName);
                     return false;
                 }
             }

+ 7 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/BaiduMapUtil.java

@@ -58,15 +58,17 @@ public class BaiduMapUtil implements OnGetPoiSearchResultListener {
 
     //计算距离
     public String getDistance(LatLng a, LatLng b) {
-        double distance = DistanceUtil.getDistance(a, b);
+        double distance = Math.abs(DistanceUtil.getDistance(a, b));
         DecimalFormat df = new DecimalFormat(".##");
         return df.format(distance);
     }
+
     //计算距离
     public double getDistanceD(LatLng a, LatLng b) {
         double distance = DistanceUtil.getDistance(a, b);
         return distance;
     }
+
     public String getDistance(double a1, double a2, double b1, double b2) {
         LatLng a = new LatLng(a1, a2);
         LatLng b = new LatLng(b1, b2);
@@ -112,10 +114,11 @@ public class BaiduMapUtil implements OnGetPoiSearchResultListener {
         mPoiSearch.searchNearby(option);
     }
 
-    public void getLocation(){
+    public void getLocation() {
 
     }
-    public  void getNearInfo(int radius, int pagerNum, LatLng location, Handler handler) {
+
+    public void getNearInfo(int radius, int pagerNum, LatLng location, Handler handler) {
         getNearInfo(radius, pagerNum, location, PoiSearch.newInstance(), handler, NEAR_WHAT);
     }
 
@@ -128,6 +131,7 @@ public class BaiduMapUtil implements OnGetPoiSearchResultListener {
         message.setData(bundle);
         handler.sendMessage(message);
     }
+
     @Override
     public void onGetPoiResult(PoiResult poiResult) {
         if (handler == null) return;

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

@@ -382,6 +382,7 @@
 
             <Spinner
                 android:id="@+id/state"
+                android:visibility="gone"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="2.5"

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

@@ -31,7 +31,8 @@
             android:button="@null"
             android:drawableTop="@drawable/outoffice_play"
             android:gravity="center"
-            android:text="足迹" />
+            android:text="足迹"
+            android:visibility="gone" />
 
     </RadioGroup>
 

+ 5 - 2
WeiChat/src/main/res/layout/activity_outoffice_set.xml

@@ -66,6 +66,7 @@
         android:padding="5dp">
 
         <TextView
+            android:id="@+id/location_tag"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
             android:gravity="center_vertical"
@@ -80,10 +81,12 @@
             android:layout_alignParentRight="true"
             android:drawableRight="@drawable/oa_next"
             android:gravity="center_vertical"
-            android:text="500米" />
+            android:text="500米"
+            android:textColor="@color/text_main" />
     </RelativeLayout>
+
     <View
         android:layout_width="match_parent"
         android:layout_height="2px"
-        android:background="@color/item_line"/>
+        android:background="@color/item_line" />
 </LinearLayout>

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

@@ -37,7 +37,8 @@
             android:layout_height="match_parent"
             android:layout_weight="1"
             android:drawableTop="@drawable/tab_signin_set"
-            android:text="设置" />
+            android:text="设置"
+            android:visibility="gone" />
     </RadioGroup>
 
 </RelativeLayout>

+ 2 - 5
WeiChat/src/main/res/layout/fragment_outoffice.xml

@@ -4,14 +4,13 @@
     android:layout_height="match_parent"
     android:padding="20dp">
 
-    <ImageView
+    <TextView
         android:id="@+id/name_img"
         android:layout_width="80dp"
         android:layout_height="80dp"
-        android:background="@drawable/text_button_stye2"
+        android:background="@drawable/text_button_stye3"
         android:gravity="center"
         android:scaleType="fitXY"
-        android:src="@drawable/home_image_01"
         android:textSize="25dp" />
 
     <TextView
@@ -82,7 +81,6 @@
         android:layout_below="@+id/line1"
         android:layout_marginTop="10dp"
         android:drawableLeft="@drawable/alarm"
-        android:text=":"
         android:textSize="@dimen/text_hine" />
 
     <TextView
@@ -92,7 +90,6 @@
         android:layout_alignTop="@+id/date_tag"
         android:layout_below="@+id/line1"
         android:layout_toRightOf="@+id/date_tag"
-        android:text="2016.06.13"
         android:textSize="@dimen/text_hine" />
 
     <TextView

+ 5 - 10
WeiChat/src/main/res/layout/fragment_signin.xml

@@ -30,8 +30,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
                 android:layout_weight="1"
-                android:gravity="center"
-                android:text="--:--" />
+                android:gravity="center" />
         </LinearLayout>
 
         <LinearLayout
@@ -54,8 +53,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
                 android:layout_weight="1"
-                android:gravity="center"
-                android:text="--:--" />
+                android:gravity="center" />
         </LinearLayout>
 
         <LinearLayout
@@ -79,8 +77,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
                 android:layout_weight="1"
-                android:gravity="center"
-                android:text="--:--" />
+                android:gravity="center" />
         </LinearLayout>
 
         <LinearLayout
@@ -105,8 +102,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
                 android:layout_weight="1"
-                android:gravity="center"
-                android:text="--:--" />
+                android:gravity="center" />
         </LinearLayout>
 
         <RelativeLayout
@@ -125,8 +121,7 @@
                 android:id="@+id/untime_signin"
                 style="@style/add_signin_tv_hine"
                 android:layout_alignParentRight="true"
-                android:layout_marginRight="10dp"
-                android:text="--:--" />
+                android:layout_marginRight="10dp" />
         </RelativeLayout>
 
         <LinearLayout