|
|
@@ -27,7 +27,6 @@ import com.xzjmyk.pm.activity.MyApplication;
|
|
|
import com.xzjmyk.pm.activity.R;
|
|
|
import com.xzjmyk.pm.activity.bean.oa.Signin;
|
|
|
import com.xzjmyk.pm.activity.bean.oa.SigninBean;
|
|
|
-import com.xzjmyk.pm.activity.db.dao.SigninDao;
|
|
|
import com.xzjmyk.pm.activity.ui.base.EasyFragment;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.activity.oa.AlarmaActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.activity.oa.LocationMapActivity;
|
|
|
@@ -36,6 +35,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.FormatUtil;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.ViewUtil;
|
|
|
import com.xzjmyk.pm.activity.util.BaiduMapUtil;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
@@ -43,6 +43,7 @@ import com.xzjmyk.pm.activity.util.ToastUtil;
|
|
|
import com.xzjmyk.pm.activity.view.MyListView;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.Map;
|
|
|
@@ -78,7 +79,7 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
@ViewInject(R.id.office_addr)
|
|
|
private TextView office_addr;//考勤地点
|
|
|
@ViewInject(R.id.unoffice_mm)
|
|
|
- private TextView unoffice_mm;//区里考勤地点
|
|
|
+ private TextView unoffice_mm;//地点微调
|
|
|
//初始化
|
|
|
private String sessionId = null;
|
|
|
private String baseUrl = null;
|
|
|
@@ -99,7 +100,8 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
if (JSON.parseObject(message).getBoolean("success")) {//返回正确
|
|
|
signinSeccess(message);
|
|
|
} else {
|
|
|
-
|
|
|
+ //如果返回失败
|
|
|
+ ToastUtil.showToast(ct, "网络连接失败,请稍后再试");
|
|
|
}
|
|
|
break;
|
|
|
case WHATLOG://获取打卡
|
|
|
@@ -109,20 +111,30 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
if (JSON.parseObject(message).getBoolean("success")) {//返回正确
|
|
|
ToastUtil.showToast(ct, "签到成功");
|
|
|
setSigninAble(false);
|
|
|
- //TODO 将时间保存到数据库中
|
|
|
- Signin signin = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
|
|
|
- if (signin == null) return;
|
|
|
- if (signin.getUsigmin() == null) {
|
|
|
- signin.setUsigmin(TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
|
|
|
- Log.i("gongpengming", "signin.getUsigmin() == null");
|
|
|
- } else {
|
|
|
- Log.i("gongpengming", "signin.setDsigmin() == null");
|
|
|
- signin.setDsigmin(TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
|
|
|
+ //TODO 将数据提交到界面
|
|
|
+ if (adapter == null || adapter.getBeans() == null) return;
|
|
|
+ for (int i = 0; i < adapter.getBeans().size(); i++) {
|
|
|
+ if (adapter.getBeans().get(i).signin == null || adapter.getBeans().get(i).signin.length() <= 2) {
|
|
|
+ adapter.getBeans().get(i).signin = TimeUtils.long2str(System.currentTimeMillis(), "HH:mm");
|
|
|
+// adapter.getBeans().get(i).tag = -FormatUtil.getInsance().reckonHHMM(adapter.getBeans().get(i).signin, TimeUtils.f_long_2_str(System.currentTimeMillis()));
|
|
|
+ }
|
|
|
}
|
|
|
- SigninDao.getInstance(ct).updata(signin);
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
+ //TODO 将时间保存到数据库中
|
|
|
+// Signin signin = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
|
|
|
+// if (signin == null) return;
|
|
|
+// if (signin.getUsigmin() == null) {
|
|
|
+// signin.setUsigmin(TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
|
|
|
+// Log.i("gongpengming", "signin.getUsigmin() == null");
|
|
|
+// } else {
|
|
|
+// Log.i("gongpengming", "signin.setDsigmin() == null");
|
|
|
+// signin.setDsigmin(TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
|
|
|
+// }
|
|
|
+// SigninDao.getInstance(ct).updata(signin);
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
+ ToastUtil.showToast(ct, "网络连接失败,请稍后再试");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -177,14 +189,17 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
//TODO 1.考勤地点获取,并计算距离长度
|
|
|
double b1 = MyApplication.getInstance().getBdLocationHelper().getLatitude();
|
|
|
double b2 = MyApplication.getInstance().getBdLocationHelper().getLongitude();
|
|
|
- unoffice_mm.setText(getDistance(b1, b2));
|
|
|
+// unoffice_mm.setText(getDistance(b1, b2));
|
|
|
+ //TODO 2、获取网络数据
|
|
|
+ loadNetData(System.currentTimeMillis());//获取打卡班次信息
|
|
|
+
|
|
|
//TODO 2.获取当天数据库数据
|
|
|
- Signin dbBean = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
|
|
|
- if (dbBean == null) {//当获取数据库为空(表示当天没有打过卡)
|
|
|
- loadNetData(System.currentTimeMillis());//获取打卡班次信息
|
|
|
- } else {//已经签过了可以不获取签到时间
|
|
|
- loadByDB(dbBean);
|
|
|
- }
|
|
|
+// Signin dbBean = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
|
|
|
+// if (dbBean == null) {//当获取数据库为空(表示当天没有打过卡)
|
|
|
+// loadNetData(System.currentTimeMillis());//获取打卡班次信息
|
|
|
+// } else {//已经签过了可以不获取签到时间
|
|
|
+// loadByDB(dbBean);
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -200,7 +215,7 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
back.setOnClickListener(this);
|
|
|
signin_btn.setOnClickListener(this);
|
|
|
title.setOnClickListener(this);
|
|
|
- findViewById(R.id.oa_range_addr_rl).setOnClickListener(this);
|
|
|
+// findViewById(R.id.oa_range_addr_rl).setOnClickListener(this);
|
|
|
}
|
|
|
|
|
|
private AsyncTask<Void, String, Void> task = new AsyncTask<Void, String, Void>() {
|
|
|
@@ -226,12 +241,20 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- private void seccess() {
|
|
|
+ private void seccess(boolean is) {
|
|
|
if (oa_range_addr_rl.getVisibility() == View.GONE) {
|
|
|
- oa_range_addr_rl.setVisibility(View.VISIBLE);
|
|
|
+ if (is)
|
|
|
+ oa_range_addr_rl.setVisibility(View.VISIBLE);
|
|
|
+ } else {
|
|
|
+ if (!is)
|
|
|
+ oa_range_addr_rl.setVisibility(View.GONE);
|
|
|
}
|
|
|
if (signin_btn.getVisibility() == View.GONE) {
|
|
|
- signin_btn.setVisibility(View.VISIBLE);
|
|
|
+ if (is)
|
|
|
+ signin_btn.setVisibility(View.VISIBLE);
|
|
|
+ } else {
|
|
|
+ if (!is)
|
|
|
+ signin_btn.setVisibility(View.GONE);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -248,25 +271,30 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
return;//签到时间没有数据 无法使用
|
|
|
}
|
|
|
if (beans.size() <= logsJson.size()) setSigninAble(false);//当天签到次数已经达到要求
|
|
|
- for (int i = 0; i < Math.min(beans.size(), logsJson.size()); i++) {
|
|
|
- beans.get(i).signin = FormatUtil.getInsance().clearDay(logsJson.getJSONObject(i).getString("cl_time"));
|
|
|
- beans.get(i).tag = FormatUtil.getInsance().reckonHHMM(beans.get(i).time, logsJson.getJSONObject(i).getString("cl_time"));
|
|
|
- if (beans.get(i).type == 1 || beans.get(i).type == 0) {//上班
|
|
|
- beans.get(i).tag = -beans.get(i).tag;
|
|
|
- }
|
|
|
+ String[] time = new String[logsJson.size()];
|
|
|
+ for (int i = 0; i < logsJson.size(); i++) {
|
|
|
+ time[i] = FormatUtil.getInsance().clearDay(logsJson.getJSONObject(i).getString("cl_time")).trim();
|
|
|
+ }
|
|
|
+ Arrays.sort(time);
|
|
|
+ for (int i = 0; i < Math.min(beans.size(), time.length); i++) {
|
|
|
+ beans.get(i).signin = time[i];
|
|
|
+// beans.get(i).tag = FormatUtil.getInsance().reckonHHMM(beans.get(i).time, logsJson.getJSONObject(i).getString("cl_time"));
|
|
|
+// if (beans.get(i).type == 1 || beans.get(i).type == 0) {//上班
|
|
|
+// beans.get(i).tag = -beans.get(i).tag;
|
|
|
+// }
|
|
|
}
|
|
|
adapter.setBeens(beans);
|
|
|
- seccess();
|
|
|
+ seccess(true);
|
|
|
//TODO 保存成功后更新数据库
|
|
|
- Signin signin = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
|
|
|
- if (signin == null) return;
|
|
|
- Log.i("gongpengming", "数据库有数据");
|
|
|
- if (logsJson.size() > 0) {
|
|
|
- signin.setUsigmin(logsJson.getJSONObject(0).getString("cl_time"));
|
|
|
- if (logsJson.size() > 1)
|
|
|
- signin.setDsigmin(logsJson.getJSONObject(1).getString("cl_time"));
|
|
|
- }
|
|
|
- SigninDao.getInstance(ct).updata(signin);
|
|
|
+// Signin signin = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
|
|
|
+// if (signin == null) return;
|
|
|
+// Log.i("gongpengming", "数据库有数据");
|
|
|
+// if (logsJson.size() > 0) {
|
|
|
+// signin.setUsigmin(logsJson.getJSONObject(0).getString("cl_time"));
|
|
|
+// if (logsJson.size() > 1)
|
|
|
+// signin.setDsigmin(logsJson.getJSONObject(1).getString("cl_time"));
|
|
|
+// }
|
|
|
+// SigninDao.getInstance(ct).updata(signin);
|
|
|
}
|
|
|
|
|
|
private ArrayList<Bean> getBeanByAdapter() {
|
|
|
@@ -287,7 +315,6 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
chche.time = dbBean.getUtime();
|
|
|
if (dbBean.getUsigmin() != null) {
|
|
|
chche.signin = dbBean.getUsigmin();
|
|
|
- chche.tag = FormatUtil.getInsance().reckonHHMM(dbBean.getUtime(), TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + dbBean.getUsigmin() + ":00");
|
|
|
chche.tag = -chche.tag;
|
|
|
}
|
|
|
setSigninAble(true);
|
|
|
@@ -299,7 +326,6 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
chche.time = dbBean.getDtime();
|
|
|
if (dbBean.getDsigmin() != null) {
|
|
|
chche.signin = dbBean.getDsigmin();
|
|
|
- chche.tag = FormatUtil.getInsance().reckonHHMM(dbBean.getUtime(), TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + dbBean.getDsigmin() + ":00");
|
|
|
chche.tag = -chche.tag;
|
|
|
|
|
|
}
|
|
|
@@ -310,7 +336,7 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
adapter.setBeens(beans);
|
|
|
else
|
|
|
loadNetData(System.currentTimeMillis());
|
|
|
- seccess();
|
|
|
+ seccess(true);
|
|
|
}
|
|
|
|
|
|
private void signinSeccess(String message) {
|
|
|
@@ -327,16 +353,18 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
beans.add(chche);
|
|
|
adapter.setBeens(beans);
|
|
|
loadLog(TimeUtils.s_long_2_str(selectTime));//获取打卡时间
|
|
|
- seccess();
|
|
|
+ seccess(true);
|
|
|
+
|
|
|
+
|
|
|
//TODO 更新完界面后将数据保存到数据库中,只有当数据库没有的时候才会请求网络
|
|
|
- String u = JSON.parseObject(message).getString("ondutytime") == null ? "08:30" : JSON.parseObject(message).getString("ondutytime");
|
|
|
- String d = JSON.parseObject(message).getString("offdutytime") == null ? "18:00" : JSON.parseObject(message).getString("offdutytime");
|
|
|
- Signin signin = new Signin();
|
|
|
- signin.setCode(code);
|
|
|
- signin.setDate(TimeUtils.s_long_2_str(System.currentTimeMillis()));
|
|
|
- signin.setUtime(u);
|
|
|
- signin.setDtime(d);
|
|
|
- SigninDao.getInstance(ct).insert(signin);
|
|
|
+// String u = JSON.parseObject(message).getString("ondutytime") == null ? "08:30" : JSON.parseObject(message).getString("ondutytime");
|
|
|
+// String d = JSON.parseObject(message).getString("offdutytime") == null ? "18:00" : JSON.parseObject(message).getString("offdutytime");
|
|
|
+// Signin signin = new Signin();
|
|
|
+// signin.setCode(code);
|
|
|
+// signin.setDate(TimeUtils.s_long_2_str(System.currentTimeMillis()));
|
|
|
+// signin.setUtime(u);
|
|
|
+// signin.setDtime(d);
|
|
|
+// SigninDao.getInstance(ct).insert(signin);
|
|
|
}
|
|
|
|
|
|
//当位置信息长度超过8个字符,就会报错
|
|
|
@@ -528,7 +556,6 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
}
|
|
|
|
|
|
//临时变量
|
|
|
- Bean bean = null;
|
|
|
|
|
|
@Override
|
|
|
public View getView(int i, View view, ViewGroup viewGroup) {
|
|
|
@@ -545,11 +572,21 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
} else {
|
|
|
holder = (Holder) view.getTag();
|
|
|
}
|
|
|
- bean = beans.get(i);
|
|
|
+ chche = beans.get(i);
|
|
|
String textTimeTag = "";
|
|
|
String textSigninTag = "";
|
|
|
+ if (!StringUtils.isEmpty(chche.time) && !StringUtils.isEmpty(chche.signin)) {
|
|
|
+ //如果上班 当tag》0说明正常 反之迟到 如果下班 tag》0 说明早退 反之正常
|
|
|
+ chche.tag = FormatUtil.getInsance().reckonByhm(chche.time, chche.signin);//前面减去后面
|
|
|
+ Log.i("gongpengming", "chche.tag=" + chche.tag);
|
|
|
+ if ((chche.type == 1 && chche.tag > 0) || (chche.type == 2 && chche.tag < 0))
|
|
|
+ holder.tag.setVisibility(View.GONE);
|
|
|
+ else
|
|
|
+ holder.tag.setVisibility(View.VISIBLE);
|
|
|
+ } else
|
|
|
+ holder.tag.setVisibility(View.GONE);
|
|
|
String textTag = "";
|
|
|
- if (bean.type == 1) {
|
|
|
+ if (chche.type == 1) {
|
|
|
textTimeTag = "上班时间";
|
|
|
textSigninTag = "上班签到时间";
|
|
|
textTag = "迟到";
|
|
|
@@ -560,14 +597,9 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
|
|
|
}
|
|
|
holder.time_tag.setText(textTimeTag);
|
|
|
holder.signin_tag.setText(textSigninTag);
|
|
|
- holder.time.setText(bean.time);
|
|
|
- holder.signin.setText(bean.signin);
|
|
|
+ holder.time.setText(chche.time);
|
|
|
+ holder.signin.setText(chche.signin);
|
|
|
holder.tag.setText(textTag);
|
|
|
- if (bean.tag < 0) {
|
|
|
- holder.tag.setVisibility(View.VISIBLE);
|
|
|
- } else {
|
|
|
- holder.tag.setVisibility(View.GONE);
|
|
|
- }
|
|
|
return view;
|
|
|
}
|
|
|
|