diff --git a/README.md b/README.md index 6dfb292..ef4211e 100755 --- a/README.md +++ b/README.md @@ -32,19 +32,12 @@ 2.特殊人口添加方式 ``` -## 2022-9-23 +## 2022-9-23 2023-3-12 ``` > 1.4.5 1.境外人员 字段变更 - -``` - -## 2023-3-12 -``` -> 1.4.6 - -1.去除案件检查时相片必填选项 +2.去除案件检查时相片必填选项 ``` \ No newline at end of file diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json new file mode 100644 index 0000000..6f2aebb --- /dev/null +++ b/app/release/output-metadata.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.sucstepsoft.realtimelocation", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "versionCode": 45, + "versionName": "1.4.5", + "outputFile": "app-release.apk" + } + ] +} \ No newline at end of file diff --git a/app/release/output.json b/app/release/output.json deleted file mode 100755 index 2ab3ffe..0000000 --- a/app/release/output.json +++ /dev/null @@ -1 +0,0 @@ -[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":45,"versionName":"1.4.5","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release","dirName":""},"path":"app-release.apk","properties":{}}] \ No newline at end of file diff --git a/app/release/pz-1.3.1.apk b/app/release/pz-1.3.1.apk deleted file mode 100644 index aaad954..0000000 Binary files a/app/release/pz-1.3.1.apk and /dev/null differ diff --git a/app/release/pz-1.3.2.apk b/app/release/pz-1.3.2.apk deleted file mode 100644 index f4f6a9e..0000000 Binary files a/app/release/pz-1.3.2.apk and /dev/null differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f99d8fa..9e38e3c 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -50,6 +50,13 @@ android:usesCleartextTraffic="true" tools:ignore="GoogleAppIndexingWarning" tools:replace="android:appComponentFactory"> + + + doDisportIssue()); mBtnReturn.setOnClickListener(v -> doTrans()); + } /** diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/services/LocationService.java b/app/src/main/java/com/sucstepsoft/realtimelocation/services/LocationService.java index 551de81..8815274 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/services/LocationService.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/services/LocationService.java @@ -101,6 +101,22 @@ public class LocationService extends NotificationService { private String mSignOutEnd; private String mPositionRecordSrt; private String mPositionRecordEnd; + private static final int NOTIFY_TYPE_P_AM_SIGN_1 = 1221;//片长上午签到提前一分钟 + private static final int NOTIFY_TYPE_P_AM_SIGN_5 = 1222;//片长上午签到开始后五分钟 + private static final int NOTIFY_TYPE_P_AM_SIGN_OUT_1 = 1223;//片长上午签退提前一分钟 + private static final int NOTIFY_TYPE_P_AM_SIGN_OUT_5 = 1224;//片长上午签退开始后五分钟 + + private static final int NOTIFY_TYPE_P_PM_SIGN_1 = 1225;//片长下午签到提前一分钟 + private static final int NOTIFY_TYPE_P_PM_SIGN_5 = 1226;//片长下午签到开始后五分钟 + private static final int NOTIFY_TYPE_P_PM_SIGN_OUT_1 = 1227;//片长下午签退提前一分钟 + private static final int NOTIFY_TYPE_P_PM_SIGN_OUT_5 = 1228;//片长下午签退开始后五分钟 + + + private static final int NOTIFY_TYPE_N_SIGN_1 = 2321;//签到提前一分钟 + private static final int NOTIFY_TYPE_N_SIGN_5 = 2322;//签到开始后五分钟 + private static final int NOTIFY_TYPE_N_SIGN_OUT_1 = 2324;//签退开始前一分钟 + private static final int NOTIFY_TYPE_N_SIGN_OUT_5 = 2325;//签退开始后五分钟 + private Disposable mUploadDisposable; @Override public int onStartCommand(Intent intent, int flags, int startId) { @@ -132,30 +148,30 @@ public class LocationService extends NotificationService { private void registerSignStateListener() { Observable.interval(1, TimeUnit.MINUTES) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(Long aLong) { - int notifyType = getNotifyType(); - LogUtils.e(notifyType); - } + @Override + public void onNext(Long aLong) { + int notifyType = getNotifyType(); + LogUtils.e(notifyType); + } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } private void registerTimeReceiver() { @@ -172,78 +188,62 @@ public class LocationService extends NotificationService { private void registerGpsState() { Observable.interval(5, TimeUnit.SECONDS) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(Long aLong) { - checkGpsState(); - } + @Override + public void onNext(Long aLong) { + checkGpsState(); + } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } private void registerSi() { Observable.interval(50, TimeUnit.SECONDS) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(Long aLong) { - if (!mIsHolday) { - if (isWeek()) { - getIsSign(); + @Override + public void onNext(Long aLong) { + if (!mIsHolday) { + if (isWeek()) { + getIsSign(); + } } } - } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } - private static final int NOTIFY_TYPE_P_AM_SIGN_1 = 1221;//片长上午签到提前一分钟 - private static final int NOTIFY_TYPE_P_AM_SIGN_5 = 1222;//片长上午签到开始后五分钟 - private static final int NOTIFY_TYPE_P_AM_SIGN_OUT_1 = 1223;//片长上午签退提前一分钟 - private static final int NOTIFY_TYPE_P_AM_SIGN_OUT_5 = 1224;//片长上午签退开始后五分钟 - - private static final int NOTIFY_TYPE_P_PM_SIGN_1 = 1225;//片长下午签到提前一分钟 - private static final int NOTIFY_TYPE_P_PM_SIGN_5 = 1226;//片长下午签到开始后五分钟 - private static final int NOTIFY_TYPE_P_PM_SIGN_OUT_1 = 1227;//片长下午签退提前一分钟 - private static final int NOTIFY_TYPE_P_PM_SIGN_OUT_5 = 1228;//片长下午签退开始后五分钟 - - - private static final int NOTIFY_TYPE_N_SIGN_1 = 2321;//签到提前一分钟 - private static final int NOTIFY_TYPE_N_SIGN_5 = 2322;//签到开始后五分钟 - private static final int NOTIFY_TYPE_N_SIGN_OUT_1 = 2324;//签退开始前一分钟 - private static final int NOTIFY_TYPE_N_SIGN_OUT_5 = 2325;//签退开始后五分钟 - private int getNotifyType() { //判断当前时间是开始打开前一分钟还是后五分钟 @@ -320,64 +320,64 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token"); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .checkSign(token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .checkSign(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(CheckSignBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { - boolean b = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); - if (!b) { - String nowHourMM = TimeUtils.getNowHourMM(); - String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); - if ("N".equals(userType)) { - //N员 - if (!TextUtils.isEmpty(nowHourMM)) { - if (!TextUtils.isEmpty(mNStartPunchTime)) { - String currentTime = TimeUtils.getCurrentTime(mNStartPunchTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySignN(1); + @Override + public void onNext(CheckSignBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { + boolean b = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); + if (!b) { + String nowHourMM = TimeUtils.getNowHourMM(); + String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); + if ("N".equals(userType)) { + //N员 + if (!TextUtils.isEmpty(nowHourMM)) { + if (!TextUtils.isEmpty(mNStartPunchTime)) { + String currentTime = TimeUtils.getCurrentTime(mNStartPunchTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySignN(1); + } + } + } + } else { + if (!TextUtils.isEmpty(nowHourMM)) { + if (!TextUtils.isEmpty(mAmStartPunchTime)) { + String currentTime = TimeUtils.getCurrentTime(mAmStartPunchTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySign(1); + } + } + if (!TextUtils.isEmpty(mPmStartPunchTime)) { + String currentTime = TimeUtils.getCurrentTime(mPmStartPunchTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySign(3); + } } } } } else { - if (!TextUtils.isEmpty(nowHourMM)) { - if (!TextUtils.isEmpty(mAmStartPunchTime)) { - String currentTime = TimeUtils.getCurrentTime(mAmStartPunchTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySign(1); - } - } - if (!TextUtils.isEmpty(mPmStartPunchTime)) { - String currentTime = TimeUtils.getCurrentTime(mPmStartPunchTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySign(3); - } - } - } + getIsSignOff(); } - } else { - getIsSignOff(); } } - } - @Override - public void onError(Throwable e) { - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } } @@ -385,52 +385,89 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token"); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .checkSignOff(UserLgUtils.getToken()) + .create(LocationApiService.class) + .checkSignOff(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(CheckSignOffBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { + boolean b = Boolean.parseBoolean(checkSignBean.getData()); + if (!b) { + String nowHourMM = TimeUtils.getNowHourMM(); + String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); + if ("N".equals(userType)) { + //N员 + String currentTime = TimeUtils.getCurrentTime(mNEndWorkTime); + if (!TextUtils.isEmpty(nowHourMM)) { + if (nowHourMM.equals(currentTime)) { + sendNotifySignN(2); + } + } + } else { + //片长 + if (!TextUtils.isEmpty(mAmEndWorkTime)) { + String currentTime = TimeUtils.getCurrentTime(mAmEndWorkTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySign(2); + } + } + if (!TextUtils.isEmpty(mPmEndWorkTime)) { + String currentTime = TimeUtils.getCurrentTime(mPmEndWorkTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySign(4); + } + } + } + } + } + } + + @Override + public void onError(Throwable e) { + } + + @Override + public void onComplete() { + + } + }); + } + } + + private void registerIsSendNogify() { + Observable.interval(50, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { + .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { } @Override - public void onNext(CheckSignOffBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { - boolean b = Boolean.parseBoolean(checkSignBean.getData()); - if (!b) { - String nowHourMM = TimeUtils.getNowHourMM(); - String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); - if ("N".equals(userType)) { - //N员 - String currentTime = TimeUtils.getCurrentTime(mNEndWorkTime); - if (!TextUtils.isEmpty(nowHourMM)) { - if (nowHourMM.equals(currentTime)) { - sendNotifySignN(2); - } - } - } else { - //片长 - if (!TextUtils.isEmpty(mAmEndWorkTime)) { - String currentTime = TimeUtils.getCurrentTime(mAmEndWorkTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySign(2); - } - } - if (!TextUtils.isEmpty(mPmEndWorkTime)) { - String currentTime = TimeUtils.getCurrentTime(mPmEndWorkTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySign(4); - } - } - } + public void onNext(Long aLong) { + String isHolday = GlobalProvider.getString(LocationService.this, "isHolday", ""); + if (!TextUtils.isEmpty(isHolday)) { + if ("1".equals(isHolday)) { + mIsHolday = true; + } else { + mIsHolday = false; } + } else { + mIsHolday = false; } } @Override public void onError(Throwable e) { + } @Override @@ -438,43 +475,6 @@ public class LocationService extends NotificationService { } }); - } - } - - private void registerIsSendNogify() { - Observable.interval(50, TimeUnit.SECONDS) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(Long aLong) { - String isHolday = GlobalProvider.getString(LocationService.this, "isHolday", ""); - if (!TextUtils.isEmpty(isHolday)) { - if ("1".equals(isHolday)) { - mIsHolday = true; - } else { - mIsHolday = false; - } - } else { - mIsHolday = false; - } - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onComplete() { - - } - }); } @@ -527,46 +527,46 @@ public class LocationService extends NotificationService { private void registerUploadPointListener() { Observable.interval(1, 1, TimeUnit.MINUTES) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(Long aLong) { - if (mUploadPointTime != 0) { - long timeSpan = TimeUtils.getTimeSpan(System.currentTimeMillis(), mUploadPointTime, TimeConstants.MIN); - if (timeSpan >= 9) { - if (!mIsHolday) { - if (isWeek()) { - mUploadPointTime = System.currentTimeMillis(); - String nowHour = TimeUtils.getNowHour(); - if (TimeUtils.isInTime("08:30-12:00", nowHour) || TimeUtils.isInTime("14:00-17:00", nowHour)) { - if (canUpload()) { - startLocation(); + @Override + public void onNext(Long aLong) { + if (mUploadPointTime != 0) { + long timeSpan = TimeUtils.getTimeSpan(System.currentTimeMillis(), mUploadPointTime, TimeConstants.MIN); + if (timeSpan >= 9) { + if (!mIsHolday) { + if (isWeek()) { + mUploadPointTime = System.currentTimeMillis(); + String nowHour = TimeUtils.getNowHour(); + if (TimeUtils.isInTime("08:30-12:00", nowHour) || TimeUtils.isInTime("14:00-17:00", nowHour)) { + if (canUpload()) { + startLocation(); + } + NotificationUtils utils = new NotificationUtils(LocationService.this); + utils.sendNotification(45, "片长工作", "您已较长时间未上传定位信息,可能当前位置信号弱,请检查GPS和数据开关设置或者移动到开阔位置."); } - NotificationUtils utils = new NotificationUtils(LocationService.this); - utils.sendNotification(45, "片长工作", "您已较长时间未上传定位信息,可能当前位置信号弱,请检查GPS和数据开关设置或者移动到开阔位置."); } } } } } - } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } //保存 @@ -585,31 +585,31 @@ public class LocationService extends NotificationService { */ private void checkSign() { Observable.interval(0, 5, TimeUnit.MINUTES) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - mMTimeDis = d; - } - - @Override - public void onNext(Long aLong) { - if (!TextUtils.isEmpty(mSignInStr)) { - checkIsSign(); - } else { - getSignTime(); + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + mMTimeDis = d; } - } - @Override - public void onError(Throwable e) { + @Override + public void onNext(Long aLong) { + if (!TextUtils.isEmpty(mSignInStr)) { + checkIsSign(); + } else { + getSignTime(); + } + } - } + @Override + public void onError(Throwable e) { - @Override - public void onComplete() { + } - } - }); + @Override + public void onComplete() { + + } + }); } /** @@ -617,44 +617,44 @@ public class LocationService extends NotificationService { */ private void getSignTime() { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getpunchTime(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getpunchTime(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(SignTimeBean signTimeBean) { - if (signTimeBean != null) { - mNSignInStr = signTimeBean.getNSignInStr(); - mNSignInEnd = signTimeBean.getNSignInEnd(); - mNSignOutStr = signTimeBean.getNSignOutStr(); - mNSignOutEnd = signTimeBean.getNSignOutEnd(); - mNPositionRecordStr = signTimeBean.getNPositionRecordStr(); - mNPositionRecordEnd = signTimeBean.getNPositionRecordEnd(); - mSignInStr = signTimeBean.getSignInStr(); - mSignInEnd = signTimeBean.getSignInEnd(); - mSignOutStr = signTimeBean.getSignOutStr(); - mSignOutEnd = signTimeBean.getSignOutEnd(); - mPositionRecordSrt = signTimeBean.getPositionRecordSrt(); - mPositionRecordEnd = signTimeBean.getPositionRecordEnd(); } - } - @Override - public void onError(Throwable e) { - e.printStackTrace(); - } + @Override + public void onNext(SignTimeBean signTimeBean) { + if (signTimeBean != null) { + mNSignInStr = signTimeBean.getNSignInStr(); + mNSignInEnd = signTimeBean.getNSignInEnd(); + mNSignOutStr = signTimeBean.getNSignOutStr(); + mNSignOutEnd = signTimeBean.getNSignOutEnd(); + mNPositionRecordStr = signTimeBean.getNPositionRecordStr(); + mNPositionRecordEnd = signTimeBean.getNPositionRecordEnd(); + mSignInStr = signTimeBean.getSignInStr(); + mSignInEnd = signTimeBean.getSignInEnd(); + mSignOutStr = signTimeBean.getSignOutStr(); + mSignOutEnd = signTimeBean.getSignOutEnd(); + mPositionRecordSrt = signTimeBean.getPositionRecordSrt(); + mPositionRecordEnd = signTimeBean.getPositionRecordEnd(); + } + } - @Override - public void onComplete() { + @Override + public void onError(Throwable e) { + e.printStackTrace(); + } - } - }); + @Override + public void onComplete() { + + } + }); } /** @@ -664,60 +664,60 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token"); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .checkSign(token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .checkSign(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(CheckSignBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { - isSignIn = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); - if (isSignIn) { - //已经签到 - checkSignOff(); - } else { - //未签到 - if (!mIsHolday) { - boolean isWeek = isWeek(); - if (isWeek) { - String nowHourMM = TimeUtils.getNowHourMM(); - String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); - if ("N".equals(userType)) { - //N员 - //签到提醒 - //提前10分钟提醒 - String timeSpan = TimeUtils.getCurrentTimeSpan(mNSignInStr, -10); - if (TimeUtils.isInTime(timeSpan + "-" + mNSignInEnd, nowHourMM)) { - sendNotif(1); - } - } else { - //签到提醒 - String timeSpan = TimeUtils.getCurrentTimeSpan(mSignInStr, -10); - if (TimeUtils.isInTime(timeSpan + "-" + mSignInEnd, nowHourMM)) { - sendNotif(1); + @Override + public void onNext(CheckSignBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { + isSignIn = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); + if (isSignIn) { + //已经签到 + checkSignOff(); + } else { + //未签到 + if (!mIsHolday) { + boolean isWeek = isWeek(); + if (isWeek) { + String nowHourMM = TimeUtils.getNowHourMM(); + String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); + if ("N".equals(userType)) { + //N员 + //签到提醒 + //提前10分钟提醒 + String timeSpan = TimeUtils.getCurrentTimeSpan(mNSignInStr, -10); + if (TimeUtils.isInTime(timeSpan + "-" + mNSignInEnd, nowHourMM)) { + sendNotif(1); + } + } else { + //签到提醒 + String timeSpan = TimeUtils.getCurrentTimeSpan(mSignInStr, -10); + if (TimeUtils.isInTime(timeSpan + "-" + mSignInEnd, nowHourMM)) { + sendNotif(1); + } } } } } } } - } - @Override - public void onError(Throwable e) { - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } } @@ -772,55 +772,55 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token", ""); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .checkSignOff(token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .checkSignOff(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(CheckSignOffBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { - isSignUp = Boolean.parseBoolean(checkSignBean.getData()); - if (!isSignUp) { - //没有签退 - if (!mIsHolday) { - String nowHourMM = TimeUtils.getNowHour(); - boolean isWeek = isWeek(); - if (isWeek) { - String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); - if ("N".equals(userType)) { - //N员 - String timeSpan = TimeUtils.getCurrentTimeSpan(mNSignOutStr, -10); - if (TimeUtils.isInTime(timeSpan + "-" + mNSignOutEnd, nowHourMM)) { - sendNotif(23); - } - } else { - //片长 - String timeSpan = TimeUtils.getCurrentTimeSpan(mSignOutStr, -10); - if (TimeUtils.isInTime(timeSpan + "-" + mSignOutEnd, nowHourMM)) { - sendNotif(23); + @Override + public void onNext(CheckSignOffBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { + isSignUp = Boolean.parseBoolean(checkSignBean.getData()); + if (!isSignUp) { + //没有签退 + if (!mIsHolday) { + String nowHourMM = TimeUtils.getNowHour(); + boolean isWeek = isWeek(); + if (isWeek) { + String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); + if ("N".equals(userType)) { + //N员 + String timeSpan = TimeUtils.getCurrentTimeSpan(mNSignOutStr, -10); + if (TimeUtils.isInTime(timeSpan + "-" + mNSignOutEnd, nowHourMM)) { + sendNotif(23); + } + } else { + //片长 + String timeSpan = TimeUtils.getCurrentTimeSpan(mSignOutStr, -10); + if (TimeUtils.isInTime(timeSpan + "-" + mSignOutEnd, nowHourMM)) { + sendNotif(23); + } } } } } } } - } - @Override - public void onError(Throwable e) { - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } } @@ -833,33 +833,33 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token"); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getUserNewPenList(token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getUserNewPenList(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(List penLineBeans) { - if (penLineBeans != null && penLineBeans.size() > 0) { - buildPenList(penLineBeans); } - } - @Override - public void onError(Throwable e) { + @Override + public void onNext(List penLineBeans) { + if (penLineBeans != null && penLineBeans.size() > 0) { + buildPenList(penLineBeans); + } + } + + @Override + public void onError(Throwable e) { // ToastUtils.showShort("获取围栏数据失败,请稍后重试"); - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } } @@ -911,6 +911,9 @@ public class LocationService extends NotificationService { stopLocation(); stopPlaySong(); unregisterReceiver(mReceiver); + if (mUploadDisposable != null && !mUploadDisposable.isDisposed()) { + mUploadDisposable.dispose(); + } if (mMTimeDis != null && !mMTimeDis.isDisposed()) { mMTimeDis.dispose(); } @@ -939,10 +942,12 @@ public class LocationService extends NotificationService { if (bdLocation.getLongitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { checkPointIs(bdLocation); sendLocationBroadcast(bdLocation); - mWifiAutoCloseDelegate.onLocateSuccess(getApplicationContext(), PowerManagerUtil.getInstance().isScreenOn(getApplicationContext()), NetUtil.getInstance().isMobileAva(getApplicationContext())); + mWifiAutoCloseDelegate.onLocateSuccess(getApplicationContext(), PowerManagerUtil.getInstance().isScreenOn(getApplicationContext()), + NetUtil.getInstance().isMobileAva(getApplicationContext())); } } else { - mWifiAutoCloseDelegate.onLocateFail(getApplicationContext(), 10, PowerManagerUtil.getInstance().isScreenOn(getApplicationContext()), NetUtil.getInstance().isWifiCon(getApplicationContext())); + mWifiAutoCloseDelegate.onLocateFail(getApplicationContext(), 10, PowerManagerUtil.getInstance().isScreenOn(getApplicationContext()), + NetUtil.getInstance().isWifiCon(getApplicationContext())); } } @@ -960,6 +965,36 @@ public class LocationService extends NotificationService { } } + /** + * 定时上传定位 + */ + private void startUploadLocation() { + Observable.interval(20, 20, TimeUnit.SECONDS) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + mUploadDisposable = d; + } + + @Override + public void onNext(Long aLong) { + checkPoints(); + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + private void checkPointIs(BDLocation bdLocation) { if (PathConfig.IS_LIMIT) { if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode()) && bdLocation.getRadius() <= 300) { @@ -1073,7 +1108,8 @@ public class LocationService extends NotificationService { } else { //TODO 无网络状态下是否保存 if (isSaveLocal) { - String textPoint = "{\"userLongitude\":" + mTempList.get(0).getLongitude() + ",\"userLatitude\":" + mTempList.get(0).getLatitude() + ",\"userLocation\":\"" + mTempList.get(0).getAddrStr() + "\",\"createTime\":\"" + Utils.formatUTC(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss") + "\"}"; + String textPoint = + "{\"userLongitude\":" + mTempList.get(0).getLongitude() + ",\"userLatitude\":" + mTempList.get(0).getLatitude() + ",\"userLocation\":\"" + mTempList.get(0).getAddrStr() + "\",\"createTime\":\"" + Utils.formatUTC(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss") + "\"}"; Utils.saveFile(textPoint, "testLocation.txt", true); } } @@ -1185,41 +1221,41 @@ public class LocationService extends NotificationService { isUpload = true; RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), points); RetrofitManager.getInstance() - .create(LocationApiService.class) - .saveLocationData(body, token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .saveLocationData(body, token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(SuccessBean successBean) { - isUpload = false; - mCurrentLocation = null; - mTempList.clear(); - mUploadPointTime = System.currentTimeMillis(); - Intent intent = new Intent(); - intent.setAction("com.sucstepsoft.realtimelocation.isonlone"); - intent.putExtra("uploadTime", mUploadPointTime + ""); - sendBroadcast(intent); - } + @Override + public void onNext(SuccessBean successBean) { + isUpload = false; + mCurrentLocation = null; + mTempList.clear(); + mUploadPointTime = System.currentTimeMillis(); + Intent intent = new Intent(); + intent.setAction("com.sucstepsoft.realtimelocation.isonlone"); + intent.putExtra("uploadTime", mUploadPointTime + ""); + sendBroadcast(intent); + } - @Override - public void onError(Throwable e) { - isUpload = false; - mCurrentLocation = null; - mTempList.clear(); - e.printStackTrace(); - } + @Override + public void onError(Throwable e) { + isUpload = false; + mCurrentLocation = null; + mTempList.clear(); + e.printStackTrace(); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } else { mTempList.clear(); } @@ -1288,10 +1324,10 @@ public class LocationService extends NotificationService { private void startSocketService() { if (mWsManager == null) { mWsManager = new WsManager - .Builder(getApplication()) - .wsUrl(BaseUrlApi.SOCKET_IP) - .needReconnect(true) - .build(); + .Builder(getApplication()) + .wsUrl(BaseUrlApi.SOCKET_IP) + .needReconnect(true) + .build(); } if (!mWsManager.isWsConnected()) { diff --git a/app/src/main/res/layout/activity_work_sign.xml b/app/src/main/res/layout/activity_work_sign.xml new file mode 100644 index 0000000..4c8af50 --- /dev/null +++ b/app/src/main/res/layout/activity_work_sign.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 55d6085..299a317 100755 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.6.4' + classpath 'com.android.tools.build:gradle:4.2.2' classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' // NOTE: Do not place your application dependencies here; they belong diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java index 63f4805..fdeb68b 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java @@ -10,7 +10,7 @@ import com.sucstepsoft.cm_utils.constant.PathConfig; public class BaseUrlApi { public static final String IP = "http://219.147.99.164:8082/usercenter/"; /*正式统一用户*/ -// public static final String IP = "http://192.168.31.14:7001/usercenter/"; /*测试统一用户*/ + // public static final String IP = "http://192.168.0.15:7021/usercenter/"; /*测试统一用户*/ // public static final String IP = "http://175.24.42.217:7000/usercenter/"; /*测试统一用户*/ public static final String BASE_URL = IP; public static final String APP_VERSION = BASE_URL + "appCmVersionManagement/getAppVersion"; @@ -20,7 +20,7 @@ public class BaseUrlApi { public static final int CAMERA_REQUEST = 123; public static final String BASE_IP_P = "http://219.147.99.164:8082/"; /*正式IP*/ // public static final String BASE_IP_P = "http://175.24.42.217"; /*演示IP*/ -// public static final String BASE_IP_P = "http://192.168.31.14:8083/"; /*测试IP*/ +// public static final String BASE_IP_P = "http://192.168.0.15:7022/"; /*测试IP*/ public static final String BASE_IP = BASE_IP_P + "servicecity/";/*网格系统*/ // public static final String BASE_IP = "http://192.168.0.109:8083/servicecity/";/*测试网格系统*/ public static final String BASE_POPULATION_IP = BASE_IP_P + "population/";/*人口系统*/ diff --git a/cm_utils/src/main/res/layout/dialog_choose_func.xml b/cm_utils/src/main/res/layout/dialog_choose_func.xml index c36b036..60f1a69 100755 --- a/cm_utils/src/main/res/layout/dialog_choose_func.xml +++ b/cm_utils/src/main/res/layout/dialog_choose_func.xml @@ -99,6 +99,40 @@ + + + + + + + + + + + + - - - - - - - - - - -