Bitliker il y a 9 ans
Parent
commit
54e52b259d

+ 5 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java

@@ -8,8 +8,10 @@ import com.baidu.location.BDLocation;
 import com.baidu.location.BDLocationListener;
 import com.baidu.location.LocationClient;
 import com.baidu.location.LocationClientOption;
+import com.baidu.location.LocationClientOption.LocationMode;
 import com.baidu.location.Poi;
 import com.xzjmyk.pm.activity.sp.LocationSp;
+import com.xzjmyk.pm.activity.util.StringUtils;
 
 import java.util.List;
 
@@ -21,7 +23,6 @@ public class BdLocationHelper {
     private String mAddress;
 
     private String name;
-    private List<Poi> pois;
     private String mProvinceName;// 省份
     private String mCityName;// 城市
     private String mDistrictName;// 街道
@@ -29,6 +30,7 @@ public class BdLocationHelper {
 
     private LocationClient mLocationClient = null;
     private int mFaildCount = 0;
+    private List<Poi> pois;
 
     BdLocationHelper(Context context) {
         mContext = context;
@@ -56,6 +58,8 @@ public class BdLocationHelper {
         option.setNeedDeviceDirect(false);
         mLocationClient.setLocOption(option);
         requestLocation();//重新定位
+
+
     }
 
 

+ 74 - 32
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/SigninAdapter.java

@@ -8,9 +8,10 @@ import android.view.ViewGroup;
 import android.widget.TextView;
 
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.oa.Signin;
+import com.xzjmyk.pm.activity.db.dao.SigninDao;
 import com.xzjmyk.pm.activity.ui.erp.fragment.SigninFragment;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
-import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 
 import java.util.ArrayList;
@@ -34,9 +35,18 @@ public class SigninAdapter extends RecyclerView.Adapter<SigninAdapter.ViewHoler>
 
     public void setBeans(ArrayList<SigninFragment.Bean> beans) {
         this.beans = beans;
+        saveDB(beans);
         time = TimeUtils.long2str(System.currentTimeMillis(), "HH:mm");
     }
 
+    private void saveDB(ArrayList<SigninFragment.Bean> beans) {
+        ArrayList<Signin> signins = new ArrayList<>();
+        for (SigninFragment.Bean e : beans) {
+            signins.add(new Signin(e.getStartTime(), e.getEndTime(), e.getStartSignin(), e.getEndSignnin()));
+        }
+        SigninDao.getInstance(ct).updata(signins);
+    }
+
     @Override
     public ViewHoler onCreateViewHolder(ViewGroup parent, int viewType) {
         ViewHoler holer = new ViewHoler(LayoutInflater.from(ct).inflate(R.layout.item_signin_list, parent, false));
@@ -49,40 +59,51 @@ public class SigninAdapter extends RecyclerView.Adapter<SigninAdapter.ViewHoler>
         holder.time.setText(b.getStartTime() == null ? "" : b.getStartTime());
         holder.time2.setText(b.getEndTime() == null ? "" : b.getEndTime());
         //处理签到时间
-        String start = "", end = "";
-
-        if (!ListUtils.isEmpty(b.getSigninList()) && b.getSigninList().size() > 0) {
-            String starSignin = b.getSigninList().get(0) == null ? "" : b.getSigninList().get(0);//获取到显示在签到时间的时间
-            holder.signin.setText(starSignin);//填充时间
-
-            //判断正常打卡 1.打卡时间在允许打卡时间b.getStartSignin() 到上班时间范围内b.getStartTime()
-            if (!StringUtils.isEmpty(b.getStartTime()) && !StringUtils.isEmpty(b.getStartSignin()) && starSignin.compareTo(b.getStartTime()) < 0 && starSignin.compareTo(b.getStartSignin()) > 0) {
-                start = "-1";
-            }
-            //判断迟到  1.打卡时间在上班时间getStartTime和往后的90分钟内
-            else if (!StringUtils.isEmpty(b.getStartTime()) && starSignin.compareTo(getNext90(b.getStartTime(), true)) < 0 && starSignin.compareTo(b.getStartTime()) > 0) {
-                start = "迟到";
-            } else {
-                start = "缺勤";
-            }
-        } else {
-            start = "缺勤";
-        }
-        if (!ListUtils.isEmpty(b.getSigninList()) && b.getSigninList().size() > 1) {
-            String endSignin = b.getSigninList().get(b.getSigninList().size() - 1) == null ? "" : b.getSigninList().get(b.getSigninList().size() - 1);
-            holder.signin2.setText(endSignin);
-            if (!StringUtils.isEmpty(b.getEndTime()) && getNext90(b.getEndTime(), false).compareTo(endSignin) < 0 && endSignin.compareTo(b.getEndSignnin()) > 0) {
-                end = "早退";
-            } else if (!StringUtils.isEmpty(b.getEndTime()) && !StringUtils.isEmpty(b.getEndSignnin()) && endSignin.compareTo(b.getEndTime()) > 0 && endSignin.compareTo(b.getEndSignnin()) < 0) {
-                end = "-1";
-            } else {
-                end = "缺勤";
-            }
+        String start = "",
+                end = "";
+        if (ListUtils.isEmpty(b.getSigninList()) && b.getSigninList().size() > 0) {
+            start = getTag(b.getStartTime(), b.getStartSignin(), getNext90(b.getStartTime(), true), b.getSigninList().get(0), true);
+            end = getTag(b.getEndTime(), getNext90(b.getEndTime(), false), b.getEndSignnin(), b.getSigninList().get(b.getSigninList().size() - 1), false);
         } else {
-            end = "缺勤";
+            start = end = "-1";
         }
+//        if (!ListUtils.isEmpty(b.getSigninList()) && b.getSigninList().size() > 0) {
+//            String starSignin = b.getSigninList().get(0) == null ? "" : b.getSigninList().get(0);//获取到显示在签到时间的时间
+//            holder.signin.setText(starSignin);//填充时间
+//            //判断正常打卡 1.打卡时间在允许打卡时间b.getStartSignin() 到上班时间范围内b.getStartTime()
+//            if (!StringUtils.isEmpty(b.getStartTime())
+//                    && !StringUtils.isEmpty(b.getStartSignin())
+//                    && starSignin.compareTo(b.getStartTime()) < 0//签到时间小于上班时间
+//                    && starSignin.compareTo(b.getStartSignin()) > 0//签到时间大于允许签到时间
+//                    ) {//当前时间小上班时间
+//                start = "-1";
+//            }
+//            //判断迟到  1.打卡时间在上班时间getStartTime和往后的90分钟内
+//            else if (!StringUtils.isEmpty(b.getStartTime())
+//                    && starSignin.compareTo(getNext90(b.getStartTime(), true)) < 0
+//                    && starSignin.compareTo(b.getStartTime()) > 0) {
+//                start = "迟到";
+//            } else {
+//                start = "缺勤";
+//            }
+//        } else {
+//            start = "缺勤";
+//        }
+//        if (!ListUtils.isEmpty(b.getSigninList()) && b.getSigninList().size() > 1) {
+//            String endSignin = b.getSigninList().get(b.getSigninList().size() - 1) == null ? "" : b.getSigninList().get(b.getSigninList().size() - 1);
+//            holder.signin2.setText(endSignin);
+//            if (!StringUtils.isEmpty(b.getEndTime()) && getNext90(b.getEndTime(), false).compareTo(endSignin) < 0 && endSignin.compareTo(b.getEndSignnin()) > 0) {
+//                end = "早退";
+//            } else if (!StringUtils.isEmpty(b.getEndTime()) && !StringUtils.isEmpty(b.getEndSignnin()) && endSignin.compareTo(b.getEndTime()) > 0 && endSignin.compareTo(b.getEndSignnin()) < 0) {
+//                end = "-1";
+//            } else {
+//                end = "缺勤";
+//            }
+//        } else {
+//            end = "缺勤";
+//        }
         //处理标识
-        if ("-1".equals(start) || time.compareTo(b.getStartTime()) < 0) {//当前时间还没有到达上班时间,不能显示缺勤
+        if ("-1".equals(start)) {//当前时间还没有到达上班时间,不能显示缺勤
             holder.tag.setVisibility(View.GONE);
         } else {
             holder.tag.setText(start);
@@ -105,6 +126,27 @@ public class SigninAdapter extends RecyclerView.Adapter<SigninAdapter.ViewHoler>
         return TimeUtils.long2str(TimeUtils.f_str_2_long(chche) + chchelong, "HHmm");
     }
 
+    /**
+     * @param workTime    上班时间
+     * @param startSignin 允许签到开始时间
+     * @param endSignin   允许签到结束时间
+     * @param proit       签到时间
+     * @return
+     */
+    private String getTag(String workTime, String startSignin, String endSignin, String proit, boolean isU) {
+        String tag = "";
+        if (proit.compareTo(workTime) < 0 && proit.compareTo(startSignin) > 0 || (isU && time.compareTo(workTime) < 0)) { //判断正常签到 在startSignin到workTime之间
+            tag = isU ? "-1" : "早退";
+        } else if (proit.compareTo(workTime) > 0 && proit.compareTo(endSignin) < 0 || (!isU && time.compareTo(workTime) < 0)) { //判断迟到签到 在workTime到endSignin
+            tag = isU ? "迟到" : "-1";
+        } else if (isU && proit.compareTo(endSignin) > 0) {//当签到时间大于endSignin,为缺勤
+            tag = "缺勤";
+        } else if (!isU && (proit.compareTo(startSignin) < 0 || proit.compareTo(endSignin) > 0)) {
+            tag = "缺勤";
+        }
+        return tag;
+    }
+
     @Override
     public int getItemCount() {
         return beans == null ? 0 : beans.size();

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

@@ -323,6 +323,8 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
         return TimeUtils.long2str(TimeUtils.f_str_2_long(time), "HH:mm");
     }
 
+
+
     //处理数据,用户无排班时候
     public void setDataByNoDegree(JSONObject object) {
         ArrayList<Bean> beans = new ArrayList<>();