|
|
@@ -14,18 +14,42 @@ 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.lidroid.xutils.ViewUtils;
|
|
|
+import com.lidroid.xutils.view.annotation.ViewInject;
|
|
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
|
|
+import com.xzjmyk.pm.activity.MyApplication;
|
|
|
import com.xzjmyk.pm.activity.R;
|
|
|
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
|
|
|
import com.xzjmyk.pm.activity.ui.base.BaseActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.Constants;
|
|
|
+import com.xzjmyk.pm.activity.util.BaiduMapUtil;
|
|
|
+import com.xzjmyk.pm.activity.util.CalendarUtils;
|
|
|
+import com.xzjmyk.pm.activity.util.StringUtils;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
+import com.xzjmyk.pm.activity.view.wheel.OASigninPicker;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
public class OAListActivity extends BaseActivity {
|
|
|
+ @ViewInject(R.id.rili_tv)
|
|
|
+ private TextView rili_tv;
|
|
|
+ @ViewInject(R.id.name_tv)
|
|
|
+ private TextView name_tv;
|
|
|
+ @ViewInject(R.id.num_tv)
|
|
|
+ private TextView num_tv;
|
|
|
+ @ViewInject(R.id.prot_tv)
|
|
|
+ private TextView prot_tv;
|
|
|
+ @ViewInject(R.id.head_img)
|
|
|
+ private ImageView head_img;
|
|
|
+ @ViewInject(R.id.mapView)
|
|
|
+ private MapView mapView;
|
|
|
+ @ViewInject(R.id.listview)
|
|
|
+ private ListView listview;
|
|
|
|
|
|
private Handler handler = new Handler() {
|
|
|
@Override
|
|
|
@@ -33,21 +57,76 @@ public class OAListActivity extends BaseActivity {
|
|
|
progressDialog.dismiss();
|
|
|
String message = (String) msg.getData().get("result");
|
|
|
if (msg.what == 0x13) {
|
|
|
- listview.setAdapter(new SigninAdapter(JSON.parseObject(message).getJSONArray("listdata")));
|
|
|
+ adapter.setJson(JSON.parseObject(message).getJSONArray("listdata"));
|
|
|
+// listview.setAdapter(new SigninAdapter(JSON.parseObject(message).getJSONArray("listdata")));
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
- private ListView listview;
|
|
|
+
|
|
|
+ private String date = null;
|
|
|
+ private SigninAdapter adapter = null;
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.activity_oalist);
|
|
|
+ ViewUtils.inject(this);
|
|
|
+ init();
|
|
|
initView();
|
|
|
}
|
|
|
|
|
|
+ private void init() {
|
|
|
+ date = TimeUtils.s_long_2_str(System.currentTimeMillis());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initView() {
|
|
|
+ rili_tv.setText(StringUtils.isEmpty(date) ? "" : date);
|
|
|
+ String name = MyApplication.getInstance().mLoginUser.getNickName();
|
|
|
+ name_tv.setText(StringUtils.isEmpty(name) ? "" : name);
|
|
|
+ prot_tv.setText("");
|
|
|
+ double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
|
|
|
+ double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
|
|
|
+ BaiduMapUtil.getInstence().setMapViewPoint(mapView, new LatLng(longitude, latitude), true);
|
|
|
+ AvatarHelper.getInstance().displayAvatar(MyApplication.getInstance().mLoginUser.getUserId(), head_img, true);
|
|
|
+ JSONArray array = getIntent().getParcelableExtra("data");
|
|
|
+ adapter = new SigninAdapter();
|
|
|
+ listview.setAdapter(adapter);
|
|
|
+ if (array == null || array.size() <= 0) {
|
|
|
+ loadLog(date);
|
|
|
+ } else {
|
|
|
+ adapter.setJson(array);
|
|
|
+ listview.setAdapter(adapter);
|
|
|
+ }
|
|
|
+ rili_tv.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ showDateDialog();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void showDateDialog() {
|
|
|
+ OASigninPicker picker = new OASigninPicker(this);
|
|
|
+ picker.setRange(CalendarUtils.getCurrentYear(), CalendarUtils.getCurrentMonth(), CalendarUtils.getCurrentDate());
|
|
|
+ picker.setSelectedItem(CalendarUtils.getCurrentYear(), CalendarUtils.getCurrentMonth(), CalendarUtils.getCurrentDate());
|
|
|
+ picker.setOnDateTimePickListener(new OASigninPicker.OnDateTimePickListener() {
|
|
|
+ @Override
|
|
|
+ public void setTime(String year, String month, String day) {
|
|
|
+ String time = year + "-" + month + "-" + day;
|
|
|
+ if (!time.equals(date)) {
|
|
|
+ date = time;
|
|
|
+ rili_tv.setText(date);
|
|
|
+ loadLog(date);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ picker.show();
|
|
|
+ }
|
|
|
+
|
|
|
//获取打卡记录 date:yyyy-MM-dd
|
|
|
- private void loadLog() {
|
|
|
+ private void loadLog(String date) {
|
|
|
progressDialog.show();
|
|
|
//获取网络数据
|
|
|
String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/common/list.action";
|
|
|
@@ -57,7 +136,7 @@ public class OAListActivity extends BaseActivity {
|
|
|
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("condition", "mo_mancode='" + emcode + "' and to_char(mo_signtime,'yyyy-MM-dd')='" + date + "'");
|
|
|
param.put("caller", "Mobile_outsign");
|
|
|
param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
@@ -65,20 +144,21 @@ public class OAListActivity extends BaseActivity {
|
|
|
com.xzjmyk.pm.activity.ui.erp.util.ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x13, null, null, "get");
|
|
|
}
|
|
|
|
|
|
- private void initView() {
|
|
|
- JSONArray array = getIntent().getParcelableExtra("data");
|
|
|
- listview = (ListView) findViewById(R.id.listview);
|
|
|
- if (array == null || array.size() <= 0)
|
|
|
- loadLog();
|
|
|
- else
|
|
|
- listview.setAdapter(new SigninAdapter(array));
|
|
|
- }
|
|
|
|
|
|
class SigninAdapter extends BaseAdapter {
|
|
|
private JSONArray json;
|
|
|
|
|
|
- public SigninAdapter(JSONArray json) {
|
|
|
+ public SigninAdapter() {
|
|
|
+ }
|
|
|
+
|
|
|
+ public JSONArray getJson() {
|
|
|
+ return json;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setJson(JSONArray json) {
|
|
|
+ prot_tv.setText("本日签到 " + json.size() + " 次");
|
|
|
this.json = json;
|
|
|
+ notifyDataSetChanged();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -103,20 +183,26 @@ public class OAListActivity extends BaseActivity {
|
|
|
holder = new ViewHolder();
|
|
|
view = LayoutInflater.from(ct).inflate(R.layout.item_outoffice_list, null);
|
|
|
holder.time = (TextView) view.findViewById(R.id.time);
|
|
|
- holder.name = (TextView) view.findViewById(R.id.name);
|
|
|
+ holder.day = (TextView) view.findViewById(R.id.day);
|
|
|
+ holder.location = (TextView) view.findViewById(R.id.location);
|
|
|
holder.addr = (TextView) view.findViewById(R.id.addr);
|
|
|
+ holder.remark = (TextView) view.findViewById(R.id.remark);
|
|
|
holder.image = (ImageView) view.findViewById(R.id.image);
|
|
|
- holder.company = (TextView) view.findViewById(R.id.company);
|
|
|
view.setTag(holder);
|
|
|
} else {
|
|
|
holder = (ViewHolder) view.getTag();
|
|
|
}
|
|
|
JSONObject object = json.getJSONObject(i);
|
|
|
- holder.time.setText(object.getString("mo_signtime") == null ? "" : object.getString("mo_signtime"));
|
|
|
- holder.name.setText(object.getString("mo_man") == null ? "" : object.getString("mo_man"));
|
|
|
- holder.addr.setText(object.getString("mo_remark") == null ? "" : object.getString("mo_remark"));
|
|
|
- holder.company.setText(object.getString("mo_company") == null ? "" : object.getString("mo_company"));
|
|
|
+ String str = getStrByJson(object, "mo_signtime");
|
|
|
+ if (!StringUtils.isEmpty(str)) {
|
|
|
+ holder.time.setText(TimeUtils.long2str(TimeUtils.f_str_2_long(str), "HH:mm"));
|
|
|
+ holder.day.setText(TimeUtils.long2str(TimeUtils.f_str_2_long(str), "MM/dd"));
|
|
|
+ }
|
|
|
+ holder.location.setText(getStrByJson(object, "mo_company"));
|
|
|
+ holder.addr.setText(getStrByJson(object, "mo_address"));
|
|
|
+ holder.remark.setText(getStrByJson(object, "mo_remark"));
|
|
|
if (object.containsKey("mo_attachid") && object.getInteger("mo_attachid") > 1000) {
|
|
|
+ holder.image.setVisibility(View.VISIBLE);
|
|
|
ImageLoader.getInstance().displayImage(getImageUrl(object.getInteger("mo_attachid")), holder.image);
|
|
|
} else {
|
|
|
holder.image.setVisibility(View.GONE);
|
|
|
@@ -124,16 +210,25 @@ public class OAListActivity extends BaseActivity {
|
|
|
return view;
|
|
|
}
|
|
|
|
|
|
+ private String getStrByJson(JSONObject object, String key) {
|
|
|
+ if (object.containsKey(key)) {
|
|
|
+ return object.getString(key) == null ? "" : object.getString(key);
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
private String getImageUrl(int id) {
|
|
|
return Constants.getAppBaseUrl(ct) + "common/downloadbyId.action?id=" + id;
|
|
|
}
|
|
|
|
|
|
class ViewHolder {
|
|
|
- TextView time,//时间
|
|
|
- name,//签到人
|
|
|
- addr, //地址
|
|
|
- company;//签到公司
|
|
|
- ImageView image;
|
|
|
+ TextView day,//日期
|
|
|
+ time,//时间
|
|
|
+ location,//位置名称
|
|
|
+ addr,//位置详细
|
|
|
+ remark;//备注
|
|
|
+ ImageView image;//图片
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|