|
|
@@ -1,5 +1,6 @@
|
|
|
package com.xzjmyk.pm.activity.ui.erp.activity.oa;
|
|
|
|
|
|
+import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
import android.view.LayoutInflater;
|
|
|
@@ -12,16 +13,17 @@ 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.bean.oa.SelectBean;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
import com.xzjmyk.pm.activity.view.MostLinearLayoutManager;
|
|
|
import com.xzjmyk.pm.activity.view.RecycleViewDivider;
|
|
|
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
|
|
|
import com.xzjmyk.pm.activity.view.wheel.TimePicker;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
public class FlihtsTimeActivity extends OABaseActivity implements View.OnClickListener {
|
|
|
@@ -34,10 +36,8 @@ public class FlihtsTimeActivity extends OABaseActivity implements View.OnClickLi
|
|
|
private TextView time_tv;
|
|
|
@ViewInject(R.id.munber_tv)
|
|
|
private TextView munber_tv;
|
|
|
- @ViewInject(R.id.add_tv)
|
|
|
- private TextView add_tv;
|
|
|
|
|
|
- private List<Map<String, String>> mapList;
|
|
|
+ private ArrayList<Map<String, String>> mapList;
|
|
|
private MyAdapter adapter;
|
|
|
|
|
|
@Override
|
|
|
@@ -67,8 +67,28 @@ public class FlihtsTimeActivity extends OABaseActivity implements View.OnClickLi
|
|
|
public void onClick(View view) {
|
|
|
switch (view.getId()) {
|
|
|
case R.id.munber_tv:
|
|
|
+ String[] str = new String[]{"上班前1个小时", "上班前2个小时",
|
|
|
+ "上班前3个小时", "上班前4个小时", "上班前5个小时"};
|
|
|
+ ArrayList<SelectBean> beans = new ArrayList<>();
|
|
|
+ SelectBean bean = null;
|
|
|
+ for (String e : str) {
|
|
|
+ bean = new SelectBean();
|
|
|
+ bean.setName(e);
|
|
|
+ bean.setClick(false);
|
|
|
+ beans.add(bean);
|
|
|
+ }
|
|
|
+ Intent intent = new Intent(ct, SelectActivity.class);
|
|
|
+ intent.putExtra("type", 2);
|
|
|
+ intent.putParcelableArrayListExtra("data", beans);
|
|
|
+ intent.putExtra("title", "最早上班时间");
|
|
|
+ startActivityForResult(intent, 0x21);
|
|
|
break;
|
|
|
case R.id.click_btn:
|
|
|
+ intent = new Intent();
|
|
|
+ intent.putExtra("data", mapList);
|
|
|
+ intent.putExtra("time", setTime(mapList));
|
|
|
+ setResult(0x20, intent);
|
|
|
+ finish();
|
|
|
break;
|
|
|
case R.id.add_tv:
|
|
|
addEmpty();
|
|
|
@@ -76,6 +96,15 @@ public class FlihtsTimeActivity extends OABaseActivity implements View.OnClickLi
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
+ super.onActivityResult(requestCode, resultCode, data);
|
|
|
+ if (data == null) return;
|
|
|
+ if (0x21 == requestCode) {
|
|
|
+ SelectBean bean = data.getParcelableExtra("data");
|
|
|
+ munber_tv.setText(bean.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
|
|
|
|
|
|
@@ -98,13 +127,25 @@ public class FlihtsTimeActivity extends OABaseActivity implements View.OnClickLi
|
|
|
holder.start_tv.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
- showDateDialog(position, true);
|
|
|
+ try {
|
|
|
+ showDateDialog(position, true);
|
|
|
+ } catch (Exception e) {
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
holder.end_tv.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
- showDateDialog(position, false);
|
|
|
+ try {
|
|
|
+ if (StringUtils.isEmpty(mapList.get(position).get(KEY))) {
|
|
|
+ Crouton.showToast(ct, "请先填写开始时间", R.color.load_warning);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ showDateDialog(position, false);
|
|
|
+ } catch (Exception e) {
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
holder.img.setOnClickListener(new View.OnClickListener() {
|
|
|
@@ -158,6 +199,25 @@ public class FlihtsTimeActivity extends OABaseActivity implements View.OnClickLi
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //计算合计工时
|
|
|
+ private String setTime(ArrayList<Map<String, String>> mapList) {
|
|
|
+ long time = 0;
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ for (Map<String, String> m : mapList) {
|
|
|
+ String start = m.get(KEY);
|
|
|
+ String end = m.get(VALUES);
|
|
|
+ builder.append(start + "-" + end + " ");
|
|
|
+ if (StringUtils.isEmpty(start) || StringUtils.isEmpty(end)) continue;
|
|
|
+ time += setTime(start, end);
|
|
|
+ }
|
|
|
+
|
|
|
+ int min = (int) (time / (1000 * 60));//获取分钟
|
|
|
+
|
|
|
+ int h = min / 60;//获取小时
|
|
|
+ int m = min % 60;//获取分钟
|
|
|
+ return builder.toString() + "" + h + "小时";
|
|
|
+ }
|
|
|
+
|
|
|
//计算合计工时
|
|
|
private void setTime() {
|
|
|
long time = 0;
|
|
|
@@ -179,6 +239,7 @@ public class FlihtsTimeActivity extends OABaseActivity implements View.OnClickLi
|
|
|
time_tv.setText(finalTime);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private long setTime(String start, String end) {
|
|
|
long startMin = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + start + ":00");
|
|
|
long endMin = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + end + ":00");
|
|
|
@@ -193,14 +254,23 @@ public class FlihtsTimeActivity extends OABaseActivity implements View.OnClickLi
|
|
|
|
|
|
private void showDateDialog(final int position, final boolean isStart) {
|
|
|
TimePicker picker = new TimePicker(this, TimePicker.HOUR_OF_DAY);
|
|
|
- picker.setSelectedItem(8, 12);
|
|
|
+ picker.setSelectedItem(12, 12);
|
|
|
picker.setOnTimePickListener(new TimePicker.OnTimePickListener() {
|
|
|
@Override
|
|
|
public void onTimePicked(String hour, String minute) {
|
|
|
String string = hour + ":" + minute;
|
|
|
- if (isStart)
|
|
|
+ if (isStart) {
|
|
|
mapList.get(position).put(KEY, string);
|
|
|
- else mapList.get(position).put(VALUES, string);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isEmpty(mapList.get(position).get(KEY)) ||
|
|
|
+ mapList.get(position).get(KEY).compareTo(string) > 0) {
|
|
|
+ Crouton.showToast(ct, "下班时间不能小于上班时间", R.color.load_warning);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ mapList.get(position).put(VALUES, string);
|
|
|
+ setTime();
|
|
|
+ }
|
|
|
adapter.notifyItemChanged(position);
|
|
|
}
|
|
|
});
|