|
|
@@ -5,6 +5,7 @@ import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
import android.os.Message;
|
|
|
import android.text.Html;
|
|
|
+import android.util.Log;
|
|
|
import android.view.Menu;
|
|
|
import android.view.MenuInflater;
|
|
|
import android.view.MenuItem;
|
|
|
@@ -15,6 +16,7 @@ import android.widget.TextView;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baidu.mapapi.map.MapView;
|
|
|
import com.baidu.mapapi.model.LatLng;
|
|
|
import com.baidu.mapapi.search.core.PoiInfo;
|
|
|
@@ -29,24 +31,26 @@ import com.xzjmyk.pm.activity.ui.erp.activity.oa.OAListActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutSigninOKActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutofficeActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutofficeSetActivity;
|
|
|
+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.ViewUtil;
|
|
|
import com.xzjmyk.pm.activity.util.BaiduMapUtil;
|
|
|
import com.xzjmyk.pm.activity.util.StringUtils;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
-import com.xzjmyk.pm.activity.util.ToastUtil;
|
|
|
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
+ * 1.0x11 获取打卡记录列表
|
|
|
+ * 2.0x12 获取判断用户是否是管理员接口
|
|
|
+ * 3.0x13 获取考勤设置接口
|
|
|
+ * 4.0x21 requestCode
|
|
|
* Created by gongpm on 2016/7/14.
|
|
|
*/
|
|
|
public class OutofficeFragment extends EasyFragment implements View.OnClickListener {
|
|
|
- private static final int WHAT_LOAD = 0x11;
|
|
|
private LatLng point;//位置
|
|
|
- private static int requestCode = 0x11;
|
|
|
private int sigNum;//签到次数
|
|
|
@ViewInject(R.id.name_img)
|
|
|
private ImageView name_img;//头像
|
|
|
@@ -70,19 +74,45 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
|
|
|
private TextView do_trim;
|
|
|
private OutofficeActivity ct;
|
|
|
private JSONArray json = null;
|
|
|
+ private String baseAddr;
|
|
|
+ private boolean isAdmin = false;
|
|
|
+ private boolean isAddress = false;
|
|
|
+ private boolean isImage = false;
|
|
|
+ private int distance = 0;
|
|
|
private Handler handler = new Handler() {
|
|
|
@Override
|
|
|
public void handleMessage(Message msg) {
|
|
|
ct.progressDialog.dismiss();
|
|
|
String message = msg.getData().getString("result");
|
|
|
- if (msg.what == WHAT_LOAD) {
|
|
|
- if (JSON.parseObject(message).containsKey("listdata")) {
|
|
|
- json = JSON.parseObject(message).getJSONArray("listdata");
|
|
|
- sigNum = json.size();
|
|
|
- num_tv.setText(Html.fromHtml("<u>" + sigNum + "</u>"));
|
|
|
- }
|
|
|
+ JSONObject object = null;
|
|
|
+ switch (msg.what) {
|
|
|
+ case 0x11:
|
|
|
+ object = JSON.parseObject(message);
|
|
|
+ if (object.containsKey("listdata")) {
|
|
|
+ json = object.getJSONArray("listdata");
|
|
|
+ sigNum = json.size();
|
|
|
+ num_tv.setText(Html.fromHtml("<u>" + sigNum + "</u>"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 0x12:
|
|
|
+ object = JSON.parseObject(message);
|
|
|
+ if (object.containsKey("success") && object.getBoolean("success")) {
|
|
|
+ isAdmin = object.containsKey("isAdmin") ? ("1".equals(object.getString("isAdmin")) ? true : false) : false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 0x13:
|
|
|
+ object = JSON.parseObject(message);
|
|
|
+ if (object.containsKey("success") && object.getBoolean("success")) {
|
|
|
+ isAddress = object.containsKey("isAddress") ? ("1".equals(object.getString("isAddress")) ? true : false) : false;
|
|
|
+ isImage = object.containsKey("isImage") ? ("1".equals(object.getString("isImage")) ? true : false) : false;
|
|
|
+ distance = object.containsKey("distance") ? Integer.parseInt(object.getString("distance")) : 0;
|
|
|
+ if (isAddress)
|
|
|
+ do_trim.setVisibility(View.VISIBLE);
|
|
|
+ else
|
|
|
+ do_trim.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -91,79 +121,6 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
|
|
|
return R.layout.fragment_outoffice;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- protected void onCreateView(Bundle savedInstanceState, boolean createView) {
|
|
|
- setHasOptionsMenu(true);
|
|
|
- ViewUtils.inject(getmRootView());
|
|
|
- ct = (OutofficeActivity) getActivity();
|
|
|
- initview();
|
|
|
- }
|
|
|
-
|
|
|
- private void signinAble(boolean b) {
|
|
|
- click_btn.setFocusable(b);
|
|
|
- click_btn.setClickable(b);
|
|
|
- if (b) {
|
|
|
- click_btn.setBackgroundResource(R.drawable.button_round_shape);
|
|
|
- } else {
|
|
|
- click_btn.setBackgroundResource(R.drawable.button_signin);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void initview() {
|
|
|
- loadLog();
|
|
|
- num_tv.setOnClickListener(this);
|
|
|
- date_tv.setText(TimeUtils.day_long_2_str(System.currentTimeMillis()) + " " + TimeUtils.getWeek(System.currentTimeMillis()) + " " + TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
|
|
|
- num_tv.setText("" + sigNum);
|
|
|
- String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
|
|
|
- AvatarHelper.getInstance().displayAvatar(loginUserId, name_img, true);
|
|
|
- name_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
|
|
|
- com_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_commpany"));
|
|
|
- String name = MyApplication.getInstance().getBdLocationHelper().getName();
|
|
|
- String addr = MyApplication.getInstance().getBdLocationHelper().getAddress();
|
|
|
- out_add_name_tv.setText(name);
|
|
|
- out_add_t_tv.setText(addr);
|
|
|
- double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
|
|
|
- double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
|
|
|
- point = new LatLng(latitude, longitude);
|
|
|
- baseAddr = StringUtils.isEmail(name) ? addr : name;
|
|
|
- BaiduMapUtil.getInstence().setMapViewPoint(mapView, point);
|
|
|
-// BaiduMapUtil.getInstence().getPoiInfo(ct, new BaiduMapUtil.OnLocationListener() {
|
|
|
-// @Override
|
|
|
-// public void result(Map<String, Object> map) {
|
|
|
-// out_add_name_tv.setText(map.get("poi") + "");
|
|
|
-//// out_add_t_tv.setText(map.get("name") + "");
|
|
|
-// out_add_t_tv.setText(MyApplication.getInstance().getBdLocationHelper().getAddress());
|
|
|
-// double latitude = (double) map.get("latitude");
|
|
|
-// double longitude = (double) map.get("lontitude");
|
|
|
-// point = new LatLng(latitude, longitude);
|
|
|
-// baseAddr = map.get("poi") + "";
|
|
|
-// BaiduMapUtil.getInstence().setMapViewPoint(mapView, point);
|
|
|
-// }
|
|
|
-// });
|
|
|
- do_trim.setOnClickListener(this);
|
|
|
- click_btn.setOnClickListener(this);
|
|
|
- }
|
|
|
-
|
|
|
- //获取打卡记录 date:yyyy-MM-dd
|
|
|
- private void loadLog() {
|
|
|
- ct.progressDialog.show();
|
|
|
- //获取网络数据
|
|
|
- String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/common/list.action";
|
|
|
- String emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
|
|
|
- final Map<String, Object> param = new HashMap<>();
|
|
|
- param.put("currentMaster", CommonUtil.getSharedPreferences(ct, "erp_master"));
|
|
|
- param.put("page", 1);
|
|
|
- param.put("pageSize", 1000);
|
|
|
- param.put("emcode", emcode);
|
|
|
- param.put("condition", "mo_mancode='" + emcode + "' and to_char(mo_signtime,'yyyy-MM-dd')='" + TimeUtils.s_long_2_str(System.currentTimeMillis()) + "'");
|
|
|
- param.put("caller", "Mobile_outsign");
|
|
|
- param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
- LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
- headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
- ViewUtil.httpSendRequest(ct, url, param, handler, headers, WHAT_LOAD, null, null, "get");
|
|
|
- }
|
|
|
-
|
|
|
- String baseAddr;
|
|
|
|
|
|
@Override
|
|
|
public void onDestroy() {
|
|
|
@@ -179,31 +136,19 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
|
|
|
startActivity(list);
|
|
|
break;
|
|
|
case R.id.do_trim:
|
|
|
- boolean isClick = CommonUtil.getSharedPreferencesBoolean(ct, OutofficeSetActivity.OA_LOCATION_IS);
|
|
|
- if (isClick) {
|
|
|
- Intent i = new Intent(getActivity(), LocationMapActivity.class);
|
|
|
- i.putExtra("addr", baseAddr == null ? "" : baseAddr);
|
|
|
- String location = CommonUtil.getSharedPreferences(ct, OutofficeSetActivity.OA_LOCATION_DISTANCE);
|
|
|
- if (location == null) location = "600米";
|
|
|
- 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, "您已关闭地点微调功能,请在设置里面修改设置");
|
|
|
- }
|
|
|
+ Intent i = new Intent(getActivity(), LocationMapActivity.class);
|
|
|
+ i.putExtra("addr", baseAddr == null ? "" : baseAddr);
|
|
|
+ i.putExtra("data", distance);
|
|
|
+ startActivityForResult(i, 0x21);
|
|
|
break;
|
|
|
case R.id.click_btn:
|
|
|
Intent intent = new Intent(getActivity(), OutSigninOKActivity.class);
|
|
|
intent.putExtra("addr", out_add_t_tv.getText().toString());
|
|
|
intent.putExtra("com", out_add_name_tv.getText().toString());
|
|
|
+ intent.putExtra("isImage", isImage);
|
|
|
if (json != null)
|
|
|
intent.putExtra("list", json);
|
|
|
- startActivityForResult(intent, requestCode);
|
|
|
+ startActivityForResult(intent, 0x21);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -211,7 +156,15 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
|
|
|
@Override
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
if (item.getItemId() == R.id.title) {
|
|
|
- startActivity(new Intent(getActivity(), OutofficeSetActivity.class));
|
|
|
+ if (isAdmin) {
|
|
|
+ Intent intent = new Intent(ct, OutofficeSetActivity.class);
|
|
|
+ intent.putExtra("isAddress", isAddress);
|
|
|
+ intent.putExtra("isImage", isImage);
|
|
|
+ intent.putExtra("distance", distance);
|
|
|
+ startActivityForResult(intent, 0x21);
|
|
|
+ } else {
|
|
|
+ Crouton.makeText(ct, "当前账号无权限进行设置");
|
|
|
+ }
|
|
|
}
|
|
|
return super.onOptionsItemSelected(item);
|
|
|
}
|
|
|
@@ -219,14 +172,14 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
|
|
|
@Override
|
|
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
|
|
inflater.inflate(R.menu.menu_outoffice, menu);
|
|
|
- menu.getItem(0).setTitle("设置");
|
|
|
super.onCreateOptionsMenu(menu, inflater);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
if (data == null) return;
|
|
|
- if (this.requestCode == requestCode) {
|
|
|
+ Log.i("gongpengming", "data != null");
|
|
|
+ if (0x21 == requestCode) {
|
|
|
if (resultCode == LocationMapActivity.REQUCODE) {
|
|
|
PoiInfo info = data.getParcelableExtra(LocationMapActivity.REQUESTNAME);
|
|
|
if (info != null) {
|
|
|
@@ -241,7 +194,104 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
|
|
|
sigNum++;
|
|
|
num_tv.setText(Html.fromHtml("<u>" + sigNum + "</u>"));
|
|
|
}
|
|
|
+ } else if (resultCode == 0x21) {
|
|
|
+ Log.i("gongpengming", "requestCode == 0x21");
|
|
|
+ isImage = data.getBooleanExtra("isImage", false);
|
|
|
+ isAddress = data.getBooleanExtra("isAddress", false);
|
|
|
+ distance = data.getIntExtra("distance", 100);
|
|
|
+ Log.i("gongpengming", "isImage=" + isImage);
|
|
|
+ Log.i("gongpengming", "isAddress=" + isAddress);
|
|
|
+ Log.i("gongpengming", "distance=" + distance);
|
|
|
+ if (isAddress)
|
|
|
+ do_trim.setVisibility(View.VISIBLE);
|
|
|
+ else
|
|
|
+ do_trim.setVisibility(View.GONE);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onCreateView(Bundle savedInstanceState, boolean createView) {
|
|
|
+ setHasOptionsMenu(true);
|
|
|
+ ViewUtils.inject(getmRootView());
|
|
|
+ ct = (OutofficeActivity) getActivity();
|
|
|
+ initview();
|
|
|
+ initData();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initview() {
|
|
|
+ num_tv.setOnClickListener(this);
|
|
|
+ date_tv.setText(TimeUtils.day_long_2_str(System.currentTimeMillis()) + " " + TimeUtils.getWeek(System.currentTimeMillis()) + " " + TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
|
|
|
+ num_tv.setText("" + sigNum);
|
|
|
+ String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
|
|
|
+ AvatarHelper.getInstance().displayAvatar(loginUserId, name_img, true);
|
|
|
+ name_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
|
|
|
+ com_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_commpany"));
|
|
|
+ String name = MyApplication.getInstance().getBdLocationHelper().getName();
|
|
|
+ String addr = MyApplication.getInstance().getBdLocationHelper().getAddress();
|
|
|
+ out_add_name_tv.setText(name);
|
|
|
+ out_add_t_tv.setText(addr);
|
|
|
+ double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
|
|
|
+ double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
|
|
|
+ point = new LatLng(latitude, longitude);
|
|
|
+ baseAddr = StringUtils.isEmail(name) ? addr : name;
|
|
|
+ BaiduMapUtil.getInstence().setMapViewPoint(mapView, point);
|
|
|
+ do_trim.setOnClickListener(this);
|
|
|
+ click_btn.setOnClickListener(this);
|
|
|
+ if (isAddress)
|
|
|
+ do_trim.setVisibility(View.VISIBLE);
|
|
|
+ else
|
|
|
+ do_trim.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initData() {
|
|
|
+ loadLog();
|
|
|
+ judgeManager();
|
|
|
+ getSet();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getSet() {
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("code", "isImage,isAddress,distance");
|
|
|
+ net("mobile/getconfigs.action", param, 0x13);
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断是否管理员
|
|
|
+ private void judgeManager() {
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ net("mobile/ifadmin.action", param, 0x12);
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取打卡记录 date:yyyy-MM-dd
|
|
|
+ private void loadLog() {
|
|
|
+ if (emcode == null)
|
|
|
+ emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
|
|
|
+ final Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("currentMaster", CommonUtil.getSharedPreferences(ct, "erp_master"));
|
|
|
+ param.put("page", 1);
|
|
|
+ param.put("pageSize", 1000);
|
|
|
+ param.put("condition", "mo_mancode='" + emcode + "' and to_char(mo_signtime,'yyyy-MM-dd')='" + TimeUtils.s_long_2_str(System.currentTimeMillis()) + "'");
|
|
|
+ param.put("caller", "Mobile_outsign");
|
|
|
+ net("mobile/common/list.action", param, 0x11);
|
|
|
+ }
|
|
|
+
|
|
|
+ String baseUrl = null;
|
|
|
+ String emcode = null;
|
|
|
+
|
|
|
+ private void net(String action, Map<String, Object> param, int what) {
|
|
|
+ ct.progressDialog.show();
|
|
|
+ if (baseUrl == null)
|
|
|
+ baseUrl = CommonUtil.getSharedPreferences(ct, "erp_baseurl");
|
|
|
+ if (emcode == null)
|
|
|
+ emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
|
|
|
+ String url = baseUrl + action;
|
|
|
+
|
|
|
+ param.put("emcode", emcode);
|
|
|
+ param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
+ LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
+ headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
+ ViewUtil.httpSendRequest(ct, url, param, handler, headers, what, null, null, "get");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|