请假修改

This commit is contained in:
itgaojian 2023-07-07 16:58:53 +08:00
parent b67589ca54
commit c95e9c6dd1
31 changed files with 1489 additions and 471 deletions

View File

@ -16,6 +16,7 @@ android {
JPUSH_CHANNEL: "developer-default", //.
]
}
buildTypes {
release {
minifyEnabled false
@ -37,6 +38,21 @@ android {
defaultConfig {
multiDexEnabled true
}
signingConfigs {
release {
storeFile file('/Users/adam/Documents/work/keystore/xukai.jks')
storePassword '123456'
keyAlias = 'xukai'
keyPassword '123456'
}
debug {
storeFile file('/Users/adam/Documents/work/keystore/xukai.jks')
storePassword '123456'
keyAlias = 'xukai'
keyPassword '123456'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

View File

@ -10,8 +10,8 @@
{
"type": "SINGLE",
"filters": [],
"versionCode": 46,
"versionName": "1.4.6",
"versionCode": 48,
"versionName": "1.4.8",
"outputFile": "app-release.apk"
}
]

View File

@ -51,7 +51,7 @@
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:appComponentFactory">
<activity
android:name=".WorkSignActivity"
android:name=".activitys.common.WorkSignActivity"
android:exported="false">
<meta-data
android:name="android.app.lib_name"

View File

@ -6,6 +6,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.Settings;
@ -593,8 +594,14 @@ public class MainActivity extends BaseActivity {
private void showNRuleDialog() {
if (mSignTimeBean != null) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String msg = "签到时间区间: " + mSignTimeBean.getNSignInStr() + " - " + mSignTimeBean.getNSignInEnd()
String msg = "";
if (mSignTimeBean.isGa()) {
msg = "签到时间区间: " + mSignTimeBean.getGaSignInStr() + " - " + mSignTimeBean.getGaSignInEnd()
+ "\n签退时间区间:" + mSignTimeBean.getGaSignOutStr() + "-" + mSignTimeBean.getGaSignOutEnd();
} else {
msg = "签到时间区间: " + mSignTimeBean.getNSignInStr() + " - " + mSignTimeBean.getNSignInEnd()
+ "\n签退时间区间:" + mSignTimeBean.getNSignOutStr() + "-" + mSignTimeBean.getNSignOutEnd();
}
builder.setTitle("签到规则")
.setMessage(msg)
.setPositiveButton("确定", (dialog, which) -> dialog.dismiss());
@ -611,7 +618,8 @@ public class MainActivity extends BaseActivity {
checkAppVersion();
} else {
ToastUtils.showLong("软件升级需要使用安装未知来源的权限,请授权.");
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
Uri packageURI = Uri.parse("package:" + mActivity.getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 10086);
}
} else {
@ -880,14 +888,19 @@ public class MainActivity extends BaseActivity {
* 显示N员签到签退
*/
private void showN() {
String nowHour = TimeUtils.getNowHour();
String nowHour = TimeUtils.getNowHourHHmmSS();
if (mSignTimeBean != null) {
if (isSgin) {
//已经签到,显示签退
if (isSignOff) {
ToastUtils.showShort("今日打卡已完成");
} else {
boolean isTimeLegal = TimeUtils.isInTime(mSignTimeBean.getNSignOutStr() + "-" + mSignTimeBean.getNSignOutEnd(), nowHour);
boolean isTimeLegal = false;
if (mSignTimeBean.isGa()) {
isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getGaSignOutStr() + "-" + mSignTimeBean.getGaSignOutEnd(), nowHour);
} else {
isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getNSignOutStr() + "-" + mSignTimeBean.getNSignOutEnd(), nowHour);
}
if (isTimeLegal) {
if (mPenLineList != null && mPenLineList.size() > 0) {
if (checkCurrenPointIsBeyond(mCurrentLocation)) {
@ -905,7 +918,12 @@ public class MainActivity extends BaseActivity {
}
} else {
//未签到
boolean isLegalTime = TimeUtils.isInTime(mSignTimeBean.getNSignInStr() + "-" + mSignTimeBean.getNSignOutStr(), nowHour);
boolean isLegalTime = false;
if (mSignTimeBean.isGa()) {
isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getGaSignInStr() + "-" + mSignTimeBean.getGaSignOutStr(), nowHour);
} else {
isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getNSignInStr() + "-" + mSignTimeBean.getNSignOutStr(), nowHour);
}
if (isLegalTime) {
if (mPenLineList != null && mPenLineList.size() > 0) {
if (checkCurrenPointIsBeyond(mCurrentLocation)) {
@ -929,14 +947,14 @@ public class MainActivity extends BaseActivity {
* 显示片长签到签退
*/
private void show() {
String nowHour = TimeUtils.getNowHour();
String nowHour = TimeUtils.getNowHourHHmmSS();
if (mSignTimeBean != null) {
if (isSgin) {
//已经签到,显示签退
if (isSignOff) {
ToastUtils.showShort("今日打卡已完成");
} else {
boolean isTimeLegal = TimeUtils.isInTime(mSignTimeBean.getSignOutStr() + "-" + mSignTimeBean.getSignOutEnd(), nowHour);
boolean isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getSignOutStr() + "-" + mSignTimeBean.getSignOutEnd(), nowHour);
if (isTimeLegal) {
if (mPenLineList != null && mPenLineList.size() > 0) {
if (checkCurrenPointIsBeyond(mCurrentLocation)) {
@ -954,7 +972,7 @@ public class MainActivity extends BaseActivity {
}
} else {
//未签到
boolean isLegalTime = TimeUtils.isInTime(mSignTimeBean.getSignInStr() + "-" + mSignTimeBean.getSignOutStr(), nowHour);
boolean isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getSignInStr() + "-" + mSignTimeBean.getSignOutStr(), nowHour);
if (isLegalTime) {
if (mPenLineList != null && mPenLineList.size() > 0) {
if (checkCurrenPointIsBeyond(mCurrentLocation)) {

View File

@ -12,11 +12,8 @@ import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.Target;
import com.sucstepsoft.cm_utils.constant.PathConfig;
import com.sucstepsoft.cm_utils.core.retrofit_net.download.DownloadUtils;
import com.sucstepsoft.cm_utils.core.retrofit_net.listener.DownloadListener;
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
import com.sucstepsoft.cm_utils.core.widget.photoview.adapter.ImageAdapter;
import com.sucstepsoft.cm_utils.utils.LogUtils;
import com.sucstepsoft.cm_utils.utils.ToastUtils;
import com.sucstepsoft.cm_utils.utils.UIUtil;
import com.sucstepsoft.realtimelocation.R;
@ -31,11 +28,9 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
/**
@ -72,7 +67,9 @@ public class PhotoActivity extends BaseActivity {
ToastUtils.showShort(R.string.check_imgurl);
finish();
} else {
mVpImages.setAdapter(new ImageAdapter(this, mImgUrls));
ImageAdapter imageAdapter = new ImageAdapter(this, mImgUrls);
imageAdapter.addImgClick(() -> finish());
mVpImages.setAdapter(imageAdapter);
mTvCount.setText(String.format(getResources().getString(R.string.img_position), 1, mImgUrls.size()));
mVpImages.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override

View File

@ -3,7 +3,6 @@ package com.sucstepsoft.realtimelocation.activitys.issue;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
@ -37,9 +36,9 @@ import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
import com.sucstepsoft.cm_utils.constant.PathConfig;
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
import com.sucstepsoft.cm_utils.utils.LogUtils;
import com.sucstepsoft.cm_utils.utils.ToastUtils;
import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.activitys.locus.LocusMapActivity;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -223,6 +222,7 @@ public class TakePointActivity extends BaseActivity {
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
LogUtils.e(result.toString());
if (result == null
|| result.error != SearchResult.ERRORNO.NO_ERROR) {
// 没有检测到结果
@ -297,7 +297,7 @@ public class TakePointActivity extends BaseActivity {
}
private void checkPointIsLegal(BDLocation bdLocation) {
if(PathConfig.IS_LIMIT){
if (PathConfig.IS_LIMIT) {
if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) {
if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) {
if (bdLocation.getRadius() <= 150) {
@ -316,7 +316,7 @@ public class TakePointActivity extends BaseActivity {
}
}
}
}else{
} else {
if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) {
if (bdLocation.getRadius() <= 150) {
if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) {

View File

@ -17,9 +17,21 @@ import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.ZoomControls;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.TextureMapView;
import com.baidu.mapapi.model.LatLng;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.google.gson.Gson;
@ -38,6 +50,7 @@ import com.sucstepsoft.cm_utils.utils.UIUtil;
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.activitys.common.PhotoActivity;
import com.sucstepsoft.realtimelocation.activitys.issue.TakePointActivity;
import com.sucstepsoft.realtimelocation.beans.BaseUserBean;
import com.sucstepsoft.realtimelocation.beans.LeavePostBean;
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
@ -101,12 +114,25 @@ public class LeaveActivity extends BaseActivity {
TextView mTvProof;
@BindView(R.id.rlv_photo)
RecyclerView mRlvPhoto;
@BindView(R.id.rg_is_self)
RadioGroup mRgIsSelf;
@BindView(R.id.tv_le_type_1)
TextView mTvLeType1;
@BindView(R.id.ll_point)
LinearLayout mLlPoint;
@BindView(R.id.tv_choose_point)
TextView mTvChoosePoint;
@BindView(R.id.tmv_map)
TextureMapView mMapView;
@BindView(R.id.et_address)
EditText mEtAddress;
private Unbinder mBind;
private String mStartTime = "";
private float mStart = 0;
private String amOrPm = "am";
private float mEnd = 0;
private String mEndTime = "";
private int mIsSelf = 1;//默认私
private float mCount = 0.0f;
private int startTimeAmOrPm = 0;
private List<AddPhotoBean> mPhotos = new ArrayList<>();
@ -117,6 +143,9 @@ public class LeaveActivity extends BaseActivity {
private List<TypeListBean> mTypeList;
private OptionsPickerView<TypeListBean> mTypePicker;
private TypeListBean mSelType;
private String mLng;
private String mLat;
private List<TypeListBean> mTypeListBeans1;
@Override
protected int setLayoutId() {
@ -125,6 +154,7 @@ public class LeaveActivity extends BaseActivity {
@Override
public void initData() {
// 公出请假和因私请假
mBind = ButterKnife.bind(this);
mTvBaseTitle.setText("请假");
refreshView(STATE_LOAD_SUCCESS);
@ -132,15 +162,26 @@ public class LeaveActivity extends BaseActivity {
mTvPublish.setText("历史");
mTvPublish.setOnClickListener(v -> startActivity(new Intent(LeaveActivity.this, LeaveHistoryActivity.class)));
mTvLeTypeTitle.setText(Html.fromHtml(getResources().getString(R.string.leave_type)));
mTvLeType1.setText(Html.fromHtml(getResources().getString(R.string.leave_type_1)));
mTvLeStartTitle.setText(Html.fromHtml(getResources().getString(R.string.leave_start)));
mTvLeEndTitle.setText(Html.fromHtml(getResources().getString(R.string.leave_end)));
mTvLeCountTitle.setText(Html.fromHtml(getResources().getString(R.string.leave_count)));
mTvLeCause.setText(Html.fromHtml(getResources().getString(R.string.leave_cause)));
mTvProof.setText(Html.fromHtml(getResources().getString(R.string.leave_proof)));
mRlLeType.setOnClickListener(v -> choosePage(1));
mRlLeType.setOnClickListener(v -> {
if (mIsSelf == 0) {
showTypePicker1();
} else {
showTypePicker();
}
});
mRlLeStart.setOnClickListener(v -> choosePage(2));
mRlLeEnd.setOnClickListener(v -> choosePage(3));
mBtnSubmit.setOnClickListener(v -> doSubmit());
mTvChoosePoint.setOnClickListener(v -> {
Intent intent = new Intent(mActivity, TakePointActivity.class);
startActivityForResult(intent, 2322);
});
mPhotos.add(new AddPhotoBean());
mPhotoAdapter = new AddPhotoAdapter(LeaveActivity.this, mPhotos);
@ -165,21 +206,60 @@ public class LeaveActivity extends BaseActivity {
startActivity(intent);
}
});
mRgIsSelf.setOnCheckedChangeListener((group, checkedId) -> {
mSelType = null;
mTvLeTypeContent.setText("");
mLat = "";
mLng = "";
mEtAddress.setText("");
//移动到中心
moveMapToDefault();
if (checkedId == R.id.rb_1) {
//
mIsSelf = 0;
mTvLeTypeTitle.setText(Html.fromHtml(getResources().getString(R.string.leave_type_2)));
} else {
//
mTvLeTypeTitle.setText(Html.fromHtml(getResources().getString(R.string.leave_type)));
mIsSelf = 1;
mLlPoint.setVisibility(View.GONE);
}
});
View child = mMapView.getChildAt(1);
if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) {
child.setVisibility(View.GONE);
}
mMapView.showZoomControls(false);
moveMapToDefault();
setEditTextInhibitInputSpeChat(mEtLeCause);
}
private void moveMapToDefault() {
mMapView.getMap().clear();
LatLng point = new LatLng(PathConfig.LA, PathConfig.LO);
MapStatus.Builder builder = new MapStatus.Builder();
builder.target(point).zoom(18.0f);
mMapView.getMap().animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
}
private void doSubmit() {
if (checkParams()) {
ProgressDialog progressDialog = UIUtil.initDialog(LeaveActivity.this, "上报中...");
progressDialog.show();
String cause = mEtLeCause.getText().toString().trim();
LeavePostBean body = new LeavePostBean();
body.setIsSelf(mIsSelf);
body.setLeaveSummary(cause);
body.setLeaveType(mSelType.getDictId());
body.setLeaveTypeName(mSelType.getDictName());
body.setLeaveTimeLong(mCount + "");
body.setLeaveTime(mStartTime);
body.setLeaveTimeApm(amOrPm);
if (mIsSelf == 0 && PathConfig.LEAVE_OUTGOING_CITY5_OUTER.equals(mSelType.getDictId())) {
body.setOutgoingLat(mLat);
body.setOutgoingLng(mLng);
body.setOutgoingLocation(mEtAddress.getText().toString().trim());
}
if (mPhotoAdapter.getData().size() >= 2) {
String ids = "";
for (int i = 0; i < mPhotoAdapter.getData().size(); i++) {
@ -312,6 +392,13 @@ public class LeaveActivity extends BaseActivity {
e.printStackTrace();
}
break;
case 2322:
mLng = data.getStringExtra("lo");
mLat = data.getStringExtra("la");
String address = data.getStringExtra("address");
mEtAddress.setText(address);
moveMapToCenter();
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
@ -402,11 +489,33 @@ public class LeaveActivity extends BaseActivity {
.launch();
}
private void moveMapToCenter() {
mMapView.getMap().clear();
Double l = Double.parseDouble(mLng);
Double a = Double.parseDouble(mLat);
BaiduMap map = mMapView.getMap();
BitmapDescriptor mapIcon = BitmapDescriptorFactory.fromResource(R.drawable.ic_level_location_on);
MapStatus ms = new MapStatus.Builder().zoom(14).target(new LatLng(a, l)).build();
map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(ms));
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(a, l))//mark出现的位置
.icon(mapIcon) //mark图标
.draggable(false)//mark可拖拽
.animateType(MarkerOptions.MarkerAnimateType.none);
map.addOverlay(markerOptions);
}
private boolean checkParams() {
if (mSelType == null) {
ToastUtils.showShort("请选择请假类型");
ToastUtils.showShort(mIsSelf == 0 ? "请选择外出地点" : "请选择请假类别");
return false;
}
if (PathConfig.LEAVE_OUTGOING_CITY5_OUTER.equals(mSelType.getDictId())) {
if (TextUtils.isEmpty(mLat) || TextUtils.isEmpty(mLng)) {
ToastUtils.showShort("请在地图选点中选择外出地点的经纬度");
return false;
}
}
if (TextUtils.isEmpty(mStartTime)) {
ToastUtils.showShort("请选择开始时间");
return false;
@ -415,6 +524,7 @@ public class LeaveActivity extends BaseActivity {
ToastUtils.showShort("请选择结束时间");
return false;
}
String trim = mEtLeCause.getText().toString().trim();
if (TextUtils.isEmpty(trim)) {
ToastUtils.showShort("请输入请假事由");
@ -468,6 +578,9 @@ public class LeaveActivity extends BaseActivity {
mTypeList = typeListBeans;
showTypePicker();
break;
case 4://
mTypeListBeans1 = typeListBeans;
showTypePicker1();
}
} else {
ToastUtils.showShort("暂无数据");
@ -643,7 +756,42 @@ public class LeaveActivity extends BaseActivity {
}
/**
* 请假类型
*
*/
private void showTypePicker1() {
hideSoftKeyboard();
if (mTypeListBeans1 != null && mTypeListBeans1.size() > 0) {
OptionsPickerView typePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> {
mSelType = mTypeListBeans1.get(o1);
mTvLeTypeContent.setText(mSelType.getDictName());
//重置
mLat = "";
mLng = "";
mEtAddress.setText("");
//移动到中心
moveMapToDefault();
if (PathConfig.LEAVE_OUTGOING_CITY5_INNER.equals(mSelType.getDictId())) {
//-不需要经纬度
mLlPoint.setVisibility(View.GONE);
} else {
//-需要经纬度
mLlPoint.setVisibility(View.VISIBLE);
}
})
.setTitleText("请选择外出地点")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setTitleColor(Color.parseColor("#1189FF"))
.build();
typePicker.setPicker(mTypeListBeans1);
typePicker.show();
} else {
getDicListByType(PathConfig.DIC_LEAVE_2, 4);
}
}
/**
* -请假类型
*/
private void showTypePicker() {
hideSoftKeyboard();
@ -653,7 +801,7 @@ public class LeaveActivity extends BaseActivity {
mSelType = mTypeList.get(o1);
mTvLeTypeContent.setText(mSelType.getDictName());
})
.setTitleText("请选择请假类")
.setTitleText("请选择请假类")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setTitleColor(Color.parseColor("#1189FF"))
@ -664,6 +812,7 @@ public class LeaveActivity extends BaseActivity {
} else {
getDicListByType(PathConfig.DIC_LEAVE, 3);
}
}
@Override

View File

@ -8,11 +8,23 @@ import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.ZoomControls;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.TextureMapView;
import com.baidu.mapapi.model.LatLng;
import com.google.gson.Gson;
import com.sucstepsoft.cm_utils.constant.PathConfig;
import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi;
import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
@ -91,6 +103,20 @@ public class LeaveDetailActivity extends BaseActivity {
RecyclerView mRlvPhoto;
@BindView(R.id.tv_hint)
TextView mTvHint;
@BindView(R.id.rb_1)
RadioButton mRb1;
@BindView(R.id.rb_2)
RadioButton mRb2;
@BindView(R.id.ll_neirong_2)
LinearLayout mLlNeiRong2;
@BindView(R.id.neirong_2)
TextView mTvNeiRong2;
@BindView(R.id.ll_point)
LinearLayout mLlPoint;
@BindView(R.id.tv_address)
TextView mTvAddress;
@BindView(R.id.tmv_map)
TextureMapView mMapView;
private Unbinder mBind;
private String mType;
private LeaveDetailBean mDetailBean;
@ -107,6 +133,11 @@ public class LeaveDetailActivity extends BaseActivity {
mTvBaseTitle.setText("详情");
refreshView(STATE_LOAD_LOADING);
mType = getIntent().getStringExtra("type");
View child = mMapView.getChildAt(1);
if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) {
child.setVisibility(View.GONE);
}
mMapView.showZoomControls(false);
if (TextUtils.isEmpty(mType)) {
ToastUtils.showShort("数据有误");
finish();
@ -119,6 +150,7 @@ public class LeaveDetailActivity extends BaseActivity {
finish();
}
}
mBtnSubmit.setOnClickListener(v -> submit(1));
mBtnTurm.setOnClickListener(v -> submit(2));
}
@ -140,8 +172,8 @@ public class LeaveDetailActivity extends BaseActivity {
Gson gson = new Gson();
LeaveCheckBean bean = new LeaveCheckBean();
String trim = mEtCase.getText().toString().trim();
bean.setLeaveRefuseSummary(trim);
bean.setLeaveState(i);
bean.setApproverRefuseSummary(trim);
bean.setApproverState(i);
String obj = gson.toJson(bean);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
RetrofitManager.getInstance()
@ -200,33 +232,62 @@ public class LeaveDetailActivity extends BaseActivity {
mDetailBean = leaveDetailBean;
refreshView(STATE_LOAD_SUCCESS);
mEtLeCause.setText(leaveDetailBean.getLeaveSummary());
if (PathConfig.LEAVE_OUTGOING_CITY5_OUTER.equals(mDetailBean.getLeaveType())) {
mLlPoint.setVisibility(View.VISIBLE);
mTvAddress.setText(mDetailBean.getOutgoingLocation());
moveMapToCenter(mDetailBean.getOutgoingLat(), mDetailBean.getOutgoingLng());
} else {
mLlPoint.setVisibility(View.GONE);
}
mTvLeStartContent.setText(leaveDetailBean.getLeaveTime() + " " + leaveDetailBean.getLeaveTimeApm());
mTvLeCountContent.setText(leaveDetailBean.getLeaveTimeLong() + "");
mTvQingRen.setText(leaveDetailBean.getLeaveUserName());
mRb1.setChecked(leaveDetailBean.getIsSelf() == 0);
mRb2.setChecked(leaveDetailBean.getIsSelf() == 1);
switch (leaveDetailBean.getLeaveState()) {
case 0:
mTvLeState.setText("待审批");
if (leaveDetailBean.getApproverState() == 0) {
if (mType.equals("show")) {
mLlBtns.setVisibility(View.GONE);
mllNeirong.setVisibility(View.GONE);
mLlNeiRong2.setVisibility(View.GONE);
} else {
mLlBtns.setVisibility(View.VISIBLE);
mllNeirong.setVisibility(View.GONE);
mLlNeiRong2.setVisibility(View.GONE);
}
} else if (leaveDetailBean.getApproverState() == 1) {
mLlBtns.setVisibility(View.GONE);
mllNeirong.setVisibility(View.VISIBLE);
mTvNeiron.setText(leaveDetailBean.getApproverRefuseSummary());
mTvLeState.setText("待审批(二级)");
}
break;
case 1:
mTvLeState.setText("已通过");
mLlBtns.setVisibility(View.GONE);
mllNeirong.setVisibility(View.VISIBLE);
mTvNeiron.setText(leaveDetailBean.getLeaveRefuseSummary());
mTvNeiron.setText(leaveDetailBean.getApproverRefuseSummary());
break;
case 2:
mTvLeState.setText("拒绝");
mTvLeState.setText("未批准");
mllNeirong.setVisibility(View.VISIBLE);
mLlBtns.setVisibility(View.GONE);
mTvNeiron.setText(leaveDetailBean.getLeaveRefuseSummary());
mTvNeiron.setText(leaveDetailBean.getApproverRefuseSummary());
break;
}
if (leaveDetailBean.getApprover2State() == 0) {
mLlNeiRong2.setVisibility(View.GONE);
} else if (leaveDetailBean.getApprover2State() == 1) {
mLlNeiRong2.setVisibility(View.VISIBLE);
mTvNeiRong2.setText(leaveDetailBean.getApprover2RefuseSummary());
} else if (leaveDetailBean.getApprover2State() == 2) {
mLlNeiRong2.setVisibility(View.VISIBLE);
mTvNeiRong2.setText(leaveDetailBean.getApprover2RefuseSummary());
} else {
mLlNeiRong2.setVisibility(View.GONE);
}
if (!TextUtils.isEmpty(leaveDetailBean.getLeaveType())) {
mTvLeTypeContent.setText(leaveDetailBean.getLeaveTypeName());
}
@ -257,6 +318,8 @@ public class LeaveDetailActivity extends BaseActivity {
startActivity(intent);
});
}
} else {
refreshView(STATE_LOAD_EMPTY);
}
@ -275,6 +338,22 @@ public class LeaveDetailActivity extends BaseActivity {
});
}
private void moveMapToCenter(String mLat, String mLng) {
Double l = Double.parseDouble(mLng);
Double a = Double.parseDouble(mLat);
BaiduMap map = mMapView.getMap();
BitmapDescriptor mapIcon = BitmapDescriptorFactory.fromResource(R.drawable.ic_level_location_on);
MapStatus ms = new MapStatus.Builder().zoom(14).target(new LatLng(a, l)).build();
map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(ms));
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(a, l))//mark出现的位置
.icon(mapIcon) //mark图标
.draggable(false)//mark可拖拽
.animateType(MarkerOptions.MarkerAnimateType.none);
map.addOverlay(markerOptions);
}
@Override
protected void onDestroy() {
super.onDestroy();

View File

@ -1,11 +1,7 @@
package com.sucstepsoft.realtimelocation.activitys.mine;
import android.Manifest;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@ -14,16 +10,13 @@ import android.os.Build;
import android.os.Environment;
import android.provider.MediaStore;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.FileProvider;
import android.support.v7.app.AlertDialog;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Base64;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
@ -46,8 +39,6 @@ import com.sucstepsoft.cm_utils.utils.FileIOUtils;
import com.sucstepsoft.cm_utils.utils.FileUtils;
import com.sucstepsoft.cm_utils.utils.LogUtils;
import com.sucstepsoft.cm_utils.utils.ProiderUtil;
import com.sucstepsoft.cm_utils.utils.SPUtils;
import com.sucstepsoft.cm_utils.utils.TimeUtils;
import com.sucstepsoft.cm_utils.utils.ToastUtils;
import com.sucstepsoft.cm_utils.utils.UIUtil;
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
@ -65,8 +56,6 @@ import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import butterknife.BindView;
@ -115,6 +104,8 @@ public class UserActivity extends BaseActivity {
RelativeLayout mRlLeaveCheck;
@BindView(R.id.btn_back)
Button mBtnBack;
@BindView(R.id.rl_leave_history)
RelativeLayout mRlLeaveHistory;
private String mPicPath;
private Unbinder mBind;
@ -139,6 +130,7 @@ public class UserActivity extends BaseActivity {
mIvUserIcon.setOnClickListener(v -> changeUserIcon());
mRlLeave.setOnClickListener(v -> choosePage(3));
mRlLeaveCheck.setOnClickListener(v -> choosePage(4));
mRlLeaveHistory.setOnClickListener(v -> startActivity(new Intent(UserActivity.this, LeaveHistoryActivity.class)));
String pathStr = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + PathConfig.CATCH_PATH;
String dirSize = FileUtils.getDirSize(pathStr);
LogUtils.e(dirSize);

View File

@ -4,19 +4,12 @@ import android.content.Context;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.request.RequestOptions;
import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi;
import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.adapters.holders.IssueSubHolder;
import com.sucstepsoft.realtimelocation.adapters.holders.LeaveHistoryHolder;
import com.sucstepsoft.realtimelocation.beans.IssueSubBean;
import com.sucstepsoft.realtimelocation.beans.LeaveListBean;
import java.util.List;
@ -47,6 +40,7 @@ public class LeaveHistoryAdapter extends BaseRecyclerAdapter<LeaveListBean.RowsB
holder.mTvCount.setText(rowsBean.getLeaveTimeLong() + "");
holder.mTvPerson.setText(rowsBean.getLeaveUserName());
holder.mTvType1.setText(rowsBean.getIsSelf() == 0 ? "公出请假" : "因私请假");
if (!TextUtils.isEmpty(rowsBean.getLeaveType())) {
holder.mTvType.setText(rowsBean.getLeaveTypeName());
}
@ -56,11 +50,19 @@ public class LeaveHistoryAdapter extends BaseRecyclerAdapter<LeaveListBean.RowsB
holder.mTvState.setText("待审批");
holder.mTvState.setTextColor(Color.parseColor("#DE0E0E"));
holder.mTvState.setBackgroundResource(R.drawable.shp_status_red);
if (mType == 1) {
holder.mIvState.setVisibility(View.GONE);
} else {
holder.mIvState.setVisibility(View.VISIBLE);
}
if (rowsBean.getApproverState() == 1) {
//一级通过
holder.mIvState.setVisibility(View.GONE);
holder.mTvState.setText("待审批(二级)");
} else {
holder.mIvState.setVisibility(View.VISIBLE);
}
break;
case 1:
holder.mTvState.setText("通过");
@ -70,12 +72,50 @@ public class LeaveHistoryAdapter extends BaseRecyclerAdapter<LeaveListBean.RowsB
break;
case 2:
holder.mIvState.setVisibility(View.GONE);
holder.mTvState.setText("拒绝");
holder.mTvState.setText("未批准");
holder.mTvState.setTextColor(Color.parseColor("#DE0E0E"));
holder.mTvState.setBackgroundResource(R.drawable.shp_status_red);
break;
default:
break;
}
if (rowsBean.getApproverState() == 0) {
//待审批
holder.mLlExamineOne.setVisibility(View.VISIBLE);
holder.mTvExamineOne.setText("待审批(" + rowsBean.getApproverName() + ")");
} else if (rowsBean.getApproverState() == 1) {
//通过
holder.mLlExamineOne.setVisibility(View.VISIBLE);
holder.mTvExamineOne.setText("通过(" + rowsBean.getApproverName() + ")");
//二级审批
if (rowsBean.getApprover2State() == 0) {
//待审批
holder.mLlExamineTwo.setVisibility(View.VISIBLE);
holder.mTvExamineTwo.setText("待审批(" + rowsBean.getApprover2Name() + ")");
} else if (rowsBean.getApprover2State() == 1) {
//通过
holder.mLlExamineTwo.setVisibility(View.VISIBLE);
holder.mTvExamineTwo.setText("通过(" + rowsBean.getApprover2Name() + ")");
} else if (rowsBean.getApprover2State() == 2) {
//未通过
holder.mLlExamineTwo.setVisibility(View.VISIBLE);
holder.mTvExamineTwo.setText("未批准(" + rowsBean.getApprover2Name() + ")");
} else {
//错误
holder.mLlExamineTwo.setVisibility(View.GONE);
}
} else if (rowsBean.getApproverState() == 2) {
//未通过
holder.mLlExamineOne.setVisibility(View.VISIBLE);
holder.mTvExamineOne.setText("未批准(" + rowsBean.getApproverName() + ")");
holder.mLlExamineTwo.setVisibility(View.GONE);
} else {
//错误
holder.mLlExamineTwo.setVisibility(View.GONE);
holder.mLlExamineOne.setVisibility(View.GONE);
}
}
}

View File

@ -4,6 +4,7 @@ import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.sucstepsoft.realtimelocation.R;
@ -21,6 +22,11 @@ public class LeaveHistoryHolder extends RecyclerView.ViewHolder {
public TextView mTvTime;
public TextView mTvPerson;
public ImageView mIvState;
public TextView mTvExamineOne;
public TextView mTvExamineTwo;
public LinearLayout mLlExamineTwo;
public LinearLayout mLlExamineOne;
public TextView mTvType1;
public LeaveHistoryHolder(@NonNull View itemView) {
super(itemView);
@ -30,5 +36,10 @@ public class LeaveHistoryHolder extends RecyclerView.ViewHolder {
mTvTime = itemView.findViewById(R.id.tv_time);
mTvPerson = itemView.findViewById(R.id.tv_person);
mIvState = itemView.findViewById(R.id.iv_state);
mTvExamineOne = itemView.findViewById(R.id.tv_examine_1);
mTvExamineTwo = itemView.findViewById(R.id.tv_examine_2);
mLlExamineTwo = itemView.findViewById(R.id.ll_examine_2);
mLlExamineOne = itemView.findViewById(R.id.ll_examine_1);
mTvType1 = itemView.findViewById(R.id.tv_le_type_1);
}
}

View File

@ -13,22 +13,22 @@ public class LeaveCheckBean {
* leaveState : 0
*/
private String leaveRefuseSummary;
private int leaveState;
private String approverRefuseSummary;
private int approverState;
public String getLeaveRefuseSummary() {
return leaveRefuseSummary;
public String getApproverRefuseSummary() {
return approverRefuseSummary;
}
public void setLeaveRefuseSummary(String leaveRefuseSummary) {
this.leaveRefuseSummary = leaveRefuseSummary;
public void setApproverRefuseSummary(String approverRefuseSummary) {
this.approverRefuseSummary = approverRefuseSummary;
}
public int getLeaveState() {
return leaveState;
public int getApproverState() {
return approverState;
}
public void setLeaveState(int leaveState) {
this.leaveState = leaveState;
public void setApproverState(int approverState) {
this.approverState = approverState;
}
}

View File

@ -8,69 +8,64 @@ package com.sucstepsoft.realtimelocation.beans;
*/
public class LeaveDetailBean {
/**
* approverId : string
* approverName : string
* leaveId : string
* leaveState : 0
* leaveSummary : string
* leaveTime : string
* leaveTimeLong : string
* leaveType : string
*/
private String approver2Id;
private String approver2Name;
private String approver2RefuseSummary;
private int approver2State;
private String approverId;
private String approverName;
private String approverRefuseSummary;
private int approverState;
private int isSelf;
private String leaveId;
private String leaveImg;
private String leaveRefuseSummary;
private int leaveState;
private String leaveSummary;
private String leaveTime;
private String leaveTimeApm;
private String leaveTimeEnd;
private String leaveTimeLong;
private String leaveType;
private String leaveTypeName;
private String leaveTimeApm;
private String leaveRefuseSummary;
private String leaveUserId;
private String leaveUserName;
private String leaveImg;
private String outgoingLat;
private String outgoingLng;
private String outgoingLocation;
private String userAvatar;
private String userPhone;
public String getLeaveTypeName() {
return leaveTypeName;
public String getApprover2Id() {
return approver2Id;
}
public void setLeaveTypeName(String leaveTypeName) {
this.leaveTypeName = leaveTypeName;
public void setApprover2Id(String approver2Id) {
this.approver2Id = approver2Id;
}
public String getLeaveImg() {
return leaveImg;
public String getApprover2Name() {
return approver2Name;
}
public void setLeaveImg(String leaveImg) {
this.leaveImg = leaveImg;
public void setApprover2Name(String approver2Name) {
this.approver2Name = approver2Name;
}
public String getLeaveUserName() {
return leaveUserName;
public String getApprover2RefuseSummary() {
return approver2RefuseSummary;
}
public void setLeaveUserName(String leaveUserName) {
this.leaveUserName = leaveUserName;
public void setApprover2RefuseSummary(String approver2RefuseSummary) {
this.approver2RefuseSummary = approver2RefuseSummary;
}
public String getLeaveRefuseSummary() {
return leaveRefuseSummary;
public int getApprover2State() {
return approver2State;
}
public void setLeaveRefuseSummary(String leaveRefuseSummary) {
this.leaveRefuseSummary = leaveRefuseSummary;
}
public String getLeaveTimeApm() {
return leaveTimeApm;
}
public void setLeaveTimeApm(String leaveTimeApm) {
this.leaveTimeApm = leaveTimeApm;
public void setApprover2State(int approver2State) {
this.approver2State = approver2State;
}
public String getApproverId() {
@ -89,6 +84,30 @@ public class LeaveDetailBean {
this.approverName = approverName;
}
public String getApproverRefuseSummary() {
return approverRefuseSummary;
}
public void setApproverRefuseSummary(String approverRefuseSummary) {
this.approverRefuseSummary = approverRefuseSummary;
}
public int getApproverState() {
return approverState;
}
public void setApproverState(int approverState) {
this.approverState = approverState;
}
public int getIsSelf() {
return isSelf;
}
public void setIsSelf(int isSelf) {
this.isSelf = isSelf;
}
public String getLeaveId() {
return leaveId;
}
@ -97,6 +116,22 @@ public class LeaveDetailBean {
this.leaveId = leaveId;
}
public String getLeaveImg() {
return leaveImg;
}
public void setLeaveImg(String leaveImg) {
this.leaveImg = leaveImg;
}
public String getLeaveRefuseSummary() {
return leaveRefuseSummary;
}
public void setLeaveRefuseSummary(String leaveRefuseSummary) {
this.leaveRefuseSummary = leaveRefuseSummary;
}
public int getLeaveState() {
return leaveState;
}
@ -121,6 +156,22 @@ public class LeaveDetailBean {
this.leaveTime = leaveTime;
}
public String getLeaveTimeApm() {
return leaveTimeApm;
}
public void setLeaveTimeApm(String leaveTimeApm) {
this.leaveTimeApm = leaveTimeApm;
}
public String getLeaveTimeEnd() {
return leaveTimeEnd;
}
public void setLeaveTimeEnd(String leaveTimeEnd) {
this.leaveTimeEnd = leaveTimeEnd;
}
public String getLeaveTimeLong() {
return leaveTimeLong;
}
@ -136,4 +187,68 @@ public class LeaveDetailBean {
public void setLeaveType(String leaveType) {
this.leaveType = leaveType;
}
public String getLeaveTypeName() {
return leaveTypeName;
}
public void setLeaveTypeName(String leaveTypeName) {
this.leaveTypeName = leaveTypeName;
}
public String getLeaveUserId() {
return leaveUserId;
}
public void setLeaveUserId(String leaveUserId) {
this.leaveUserId = leaveUserId;
}
public String getLeaveUserName() {
return leaveUserName;
}
public void setLeaveUserName(String leaveUserName) {
this.leaveUserName = leaveUserName;
}
public String getOutgoingLat() {
return outgoingLat;
}
public void setOutgoingLat(String outgoingLat) {
this.outgoingLat = outgoingLat;
}
public String getOutgoingLng() {
return outgoingLng;
}
public void setOutgoingLng(String outgoingLng) {
this.outgoingLng = outgoingLng;
}
public String getOutgoingLocation() {
return outgoingLocation;
}
public void setOutgoingLocation(String outgoingLocation) {
this.outgoingLocation = outgoingLocation;
}
public String getUserAvatar() {
return userAvatar;
}
public void setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
}
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
}

View File

@ -11,15 +11,9 @@ import java.util.List;
*/
public class LeaveListBean {
/**
* rows : [{"leaveId":"195ed765-f5fd-4bc6-a24f-175c081b6ac6","leaveTime":"2019-10-13","leaveType":"busy","leaveSummary":"hdhdhdhdj","leaveTimeLong":"0.5","leaveState":0,"approverId":"3d43a28e-d274-41d1-a87e-82056c5b8e4b","approverName":"刘婷"},{"leaveId":"68ddb101-f20c-4182-9b49-a2c29acea2cf","leaveTime":"0.5","leaveType":"ill","leaveSummary":"测试测试测试2","leaveTimeLong":"0.5","leaveState":0,"approverId":"3d43a28e-d274-41d1-a87e-82056c5b8e4b","approverName":"刘婷"},{"leaveId":"ecfed62c-3470-4455-a7dc-1de935169e1d","leaveTime":"3.0","leaveType":"ill","leaveSummary":"测试测试","leaveTimeLong":"3.0","leaveState":0,"approverId":"3d43a28e-d274-41d1-a87e-82056c5b8e4b","approverName":"刘婷"}]
* page : 1
* total : 3
*/
private int page;
private int total;
private List<RowsBean> rows;
private int total;
public int getPage() {
return page;
@ -29,14 +23,6 @@ public class LeaveListBean {
this.page = page;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public List<RowsBean> getRows() {
return rows;
}
@ -45,92 +31,70 @@ public class LeaveListBean {
this.rows = rows;
}
public static class RowsBean implements Serializable {
/**
* leaveId : 195ed765-f5fd-4bc6-a24f-175c081b6ac6
* leaveTime : 2019-10-13
* leaveType : busy
* leaveSummary : hdhdhdhdj
* leaveTimeLong : 0.5
* leaveState : 0
* approverId : 3d43a28e-d274-41d1-a87e-82056c5b8e4b
* approverName : 刘婷
*/
public int getTotal() {
return total;
}
private String leaveId;
private String leaveTime;
private String leaveType;
private String leaveTypeName;
private String leaveSummary;
private String leaveTimeLong;
private int leaveState;
public void setTotal(int total) {
this.total = total;
}
public static class RowsBean implements Serializable {
private String approver2Id;
private String approver2Name;
private String approver2RefuseSummary;
private int approver2State;
private String approverId;
private String approverName;
private String approverRefuseSummary;
private int approverState;
private int isSelf;
private String leaveId;
private String leaveImg;
private String leaveRefuseSummary;
private int leaveState;
private String leaveSummary;
private String leaveTime;
private String leaveTimeApm;
private String leaveTimeEnd;
private String leaveTimeLong;
private String leaveType;
private String leaveTypeName;
private String leaveUserId;
private String leaveUserName;
private String userAvatar;
private String userPhone;
public String getLeaveTypeName() {
return leaveTypeName;
public String getApprover2Id() {
return approver2Id;
}
public void setLeaveTypeName(String leaveTypeName) {
this.leaveTypeName = leaveTypeName;
public void setApprover2Id(String approver2Id) {
this.approver2Id = approver2Id;
}
public String getLeaveUserName() {
return leaveUserName;
public String getApprover2Name() {
return approver2Name;
}
public void setLeaveUserName(String leaveUserName) {
this.leaveUserName = leaveUserName;
public void setApprover2Name(String approver2Name) {
this.approver2Name = approver2Name;
}
public String getLeaveId() {
return leaveId;
public String getApprover2RefuseSummary() {
return approver2RefuseSummary;
}
public void setLeaveId(String leaveId) {
this.leaveId = leaveId;
public void setApprover2RefuseSummary(String approver2RefuseSummary) {
this.approver2RefuseSummary = approver2RefuseSummary;
}
public String getLeaveTime() {
return leaveTime;
public int getApprover2State() {
return approver2State;
}
public void setLeaveTime(String leaveTime) {
this.leaveTime = leaveTime;
}
public String getLeaveType() {
return leaveType;
}
public void setLeaveType(String leaveType) {
this.leaveType = leaveType;
}
public String getLeaveSummary() {
return leaveSummary;
}
public void setLeaveSummary(String leaveSummary) {
this.leaveSummary = leaveSummary;
}
public String getLeaveTimeLong() {
return leaveTimeLong;
}
public void setLeaveTimeLong(String leaveTimeLong) {
this.leaveTimeLong = leaveTimeLong;
}
public int getLeaveState() {
return leaveState;
}
public void setLeaveState(int leaveState) {
this.leaveState = leaveState;
public void setApprover2State(int approver2State) {
this.approver2State = approver2State;
}
public String getApproverId() {
@ -148,5 +112,149 @@ public class LeaveListBean {
public void setApproverName(String approverName) {
this.approverName = approverName;
}
public String getApproverRefuseSummary() {
return approverRefuseSummary;
}
public void setApproverRefuseSummary(String approverRefuseSummary) {
this.approverRefuseSummary = approverRefuseSummary;
}
public int getApproverState() {
return approverState;
}
public void setApproverState(int approverState) {
this.approverState = approverState;
}
public int getIsSelf() {
return isSelf;
}
public void setIsSelf(int isSelf) {
this.isSelf = isSelf;
}
public String getLeaveId() {
return leaveId;
}
public void setLeaveId(String leaveId) {
this.leaveId = leaveId;
}
public String getLeaveImg() {
return leaveImg;
}
public void setLeaveImg(String leaveImg) {
this.leaveImg = leaveImg;
}
public String getLeaveRefuseSummary() {
return leaveRefuseSummary;
}
public void setLeaveRefuseSummary(String leaveRefuseSummary) {
this.leaveRefuseSummary = leaveRefuseSummary;
}
public int getLeaveState() {
return leaveState;
}
public void setLeaveState(int leaveState) {
this.leaveState = leaveState;
}
public String getLeaveSummary() {
return leaveSummary;
}
public void setLeaveSummary(String leaveSummary) {
this.leaveSummary = leaveSummary;
}
public String getLeaveTime() {
return leaveTime;
}
public void setLeaveTime(String leaveTime) {
this.leaveTime = leaveTime;
}
public String getLeaveTimeApm() {
return leaveTimeApm;
}
public void setLeaveTimeApm(String leaveTimeApm) {
this.leaveTimeApm = leaveTimeApm;
}
public String getLeaveTimeEnd() {
return leaveTimeEnd;
}
public void setLeaveTimeEnd(String leaveTimeEnd) {
this.leaveTimeEnd = leaveTimeEnd;
}
public String getLeaveTimeLong() {
return leaveTimeLong;
}
public void setLeaveTimeLong(String leaveTimeLong) {
this.leaveTimeLong = leaveTimeLong;
}
public String getLeaveType() {
return leaveType;
}
public void setLeaveType(String leaveType) {
this.leaveType = leaveType;
}
public String getLeaveTypeName() {
return leaveTypeName;
}
public void setLeaveTypeName(String leaveTypeName) {
this.leaveTypeName = leaveTypeName;
}
public String getLeaveUserId() {
return leaveUserId;
}
public void setLeaveUserId(String leaveUserId) {
this.leaveUserId = leaveUserId;
}
public String getLeaveUserName() {
return leaveUserName;
}
public void setLeaveUserName(String leaveUserName) {
this.leaveUserName = leaveUserName;
}
public String getUserAvatar() {
return userAvatar;
}
public void setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
}
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
}
}

View File

@ -22,6 +22,44 @@ public class LeavePostBean {
private String leaveTypeName;
private String leaveTimeApm;
private String leaveImg;
private int isSelf;
private String outgoingLocation;
private String outgoingLng;
private String outgoingLat;
public String getOutgoingLocation() {
return outgoingLocation;
}
public void setOutgoingLocation(String outgoingLocation) {
this.outgoingLocation = outgoingLocation;
}
public String getOutgoingLng() {
return outgoingLng;
}
public void setOutgoingLng(String outgoingLng) {
this.outgoingLng = outgoingLng;
}
public String getOutgoingLat() {
return outgoingLat;
}
public void setOutgoingLat(String outgoingLat) {
this.outgoingLat = outgoingLat;
}
public int getIsSelf() {
return isSelf;
}
public void setIsSelf(int isSelf) {
this.isSelf = isSelf;
}
public String getLeaveTypeName() {
return leaveTypeName;

View File

@ -24,6 +24,53 @@ public class SignTimeBean implements Serializable {
private String signOutEnd;//网格员签退结束时间
private String signOutStr;//网格员签退开始时间
private boolean ga;//是否是公安
private String gaSignInEnd;//公安签到结束时间
private String gaSignInStr;//公安签到开始时间
private String gaSignOutEnd;//公安签退结束时间
private String gaSignOutStr;//公安签退开始时间
public boolean isGa() {
return ga;
}
public void setGa(boolean ga) {
this.ga = ga;
}
public String getGaSignInEnd() {
return gaSignInEnd;
}
public void setGaSignInEnd(String gaSignInEnd) {
this.gaSignInEnd = gaSignInEnd;
}
public String getGaSignInStr() {
return gaSignInStr;
}
public void setGaSignInStr(String gaSignInStr) {
this.gaSignInStr = gaSignInStr;
}
public String getGaSignOutEnd() {
return gaSignOutEnd;
}
public void setGaSignOutEnd(String gaSignOutEnd) {
this.gaSignOutEnd = gaSignOutEnd;
}
public String getGaSignOutStr() {
return gaSignOutStr;
}
public void setGaSignOutStr(String gaSignOutStr) {
this.gaSignOutStr = gaSignOutStr;
}
public String getNPositionRecordEnd() {
return nPositionRecordEnd;
}
@ -119,4 +166,6 @@ public class SignTimeBean implements Serializable {
public void setSignOutStr(String signOutStr) {
this.signOutStr = signOutStr;
}
}

View File

@ -454,6 +454,7 @@ public class LocationService extends NotificationService {
@Override
public void onNext(Long aLong) {
String isHolday = GlobalProvider.getString(LocationService.this, "isHolday", "");
LogUtils.e("是否请假:" + isHolday);
if (!TextUtils.isEmpty(isHolday)) {
if ("1".equals(isHolday)) {
mIsHolday = true;
@ -545,9 +546,7 @@ public class LocationService extends NotificationService {
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和数据开关设置或者移动到开阔位置.");
}
@ -642,6 +641,8 @@ public class LocationService extends NotificationService {
mSignOutEnd = signTimeBean.getSignOutEnd();
mPositionRecordSrt = signTimeBean.getPositionRecordSrt();
mPositionRecordEnd = signTimeBean.getPositionRecordEnd();
LogUtils.e(signTimeBean);
}
}
@ -954,6 +955,7 @@ public class LocationService extends NotificationService {
private void sendLocationBroadcast(BDLocation bdLocation) {
if (null != bdLocation) {
boolean isLegal = checkSinglePoint(bdLocation);
LogUtils.e("定位是否合法:" + isLegal + "\n定位点:" + bdLocation.getLatitude() + "===" + bdLocation.getLongitude());
if (isLegal) {
if (mTempList.size() >= 25) {
checkPoints();
@ -1096,7 +1098,6 @@ public class LocationService extends NotificationService {
private void buildUploadPoint() {
isFirst = false;
if (mTempList.size() > 0) {
if (NetUtil.getInstance().isNetworkConnected(getApplicationContext())) {
LocationPosition position = new LocationPosition();
position.setUserLatitude(mTempList.get(0).getLatitude() + "");
position.setUserLongitude(mTempList.get(0).getLongitude() + "");
@ -1105,14 +1106,17 @@ public class LocationService extends NotificationService {
Gson gson = new Gson();
String s = gson.toJson(position);
uploadLocation(s);
} 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") + "\"}";
Utils.saveFile(textPoint, "testLocation.txt", true);
}
}
// if (NetUtil.getInstance().isNetworkConnected(getApplicationContext())) {
//
// } 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") + "\"}";
// Utils.saveFile(textPoint, "testLocation.txt", true);
// }
// }
}
}
@ -1181,6 +1185,7 @@ public class LocationService extends NotificationService {
*/
private boolean canUpload() {
String userType = GlobalProvider.getString(LocationService.this, "userType", "P");
LogUtils.e("用户登录类型:" + userType);
//当前用户类型
String nowHourMM = TimeUtils.getNowHourMM();
boolean isCanUp;
@ -1216,8 +1221,6 @@ public class LocationService extends NotificationService {
mCurrentLocation = null;
mTempList.clear();
} else {
boolean canUp = canUpload();
if (canUp) {
isUpload = true;
RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), points);
RetrofitManager.getInstance()
@ -1256,9 +1259,6 @@ public class LocationService extends NotificationService {
}
});
} else {
mTempList.clear();
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,8 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="80dp"
android:background="@color/white">
<LinearLayout
@ -12,6 +19,60 @@
android:orientation="vertical"
tools:context=".activitys.mine.LeaveActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:id="@+id/tv_le_type_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请假类型"
android:textColor="@color/black"
android:textSize="16dp" />
<RadioGroup
android:id="@+id/rg_is_self"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="5dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:button="@drawable/sel_radio_cir"
android:text="公出请假"
android:textColor="@color/col_blue_black"
android:textSize="16dp" />
<RadioButton
android:id="@+id/rb_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@drawable/sel_radio_cir"
android:checked="true"
android:text="因私请假"
android:textColor="@color/col_blue_black"
android:textSize="16dp" />
</RadioGroup>
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_line" />
<RelativeLayout
android:id="@+id/rl_le_type"
android:layout_width="match_parent"
@ -24,9 +85,9 @@
android:id="@+id/tv_le_type_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请假类型"
android:text="请假类别"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
<TextView
android:id="@+id/tv_le_type_content"
@ -37,7 +98,7 @@
android:drawablePadding="10dp"
android:hint="请选择"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
</RelativeLayout>
<View
@ -45,6 +106,63 @@
android:layout_height="1dp"
android:background="@color/gray_line" />
<LinearLayout
android:id="@+id/ll_point"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:visibility="visible"
android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:padding="10dp">
<EditText
android:id="@+id/et_address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:background="@drawable/shp_rectangle_gray"
android:gravity="left"
android:hint="请输入详细地址"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:textColor="@color/black"
android:paddingBottom="5dp"
android:textSize="15dp"
tools:text="" />
<TextView
android:id="@+id/tv_choose_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_sort_gray"
android:focusable="true"
android:text="地图选点"
android:textColor="@color/col_btn_blue" />
</LinearLayout>
<com.sucstepsoft.realtimelocation.widget.NoScrollMapView
android:layout_width="match_parent"
android:layout_height="200dp">
<com.baidu.mapapi.map.TextureMapView
android:id="@+id/tmv_map"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
</com.sucstepsoft.realtimelocation.widget.NoScrollMapView>
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_le_start"
android:layout_width="match_parent"
@ -60,7 +178,7 @@
android:layout_height="wrap_content"
android:text="开始时间"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
<TextView
android:id="@+id/tv_le_start_content"
@ -70,6 +188,7 @@
android:drawableRight="@drawable/ic_arrow_gray_right"
android:drawablePadding="10dp"
android:hint="请选择"
android:textSize="16dp"
android:textColor="@color/black" />
</RelativeLayout>
@ -93,7 +212,7 @@
android:layout_height="wrap_content"
android:text="结束时间"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
<TextView
android:id="@+id/tv_le_end_content"
@ -104,7 +223,7 @@
android:drawablePadding="10dp"
android:hint="请选择"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
</RelativeLayout>
<View
@ -127,7 +246,7 @@
android:layout_height="wrap_content"
android:text="请假时长"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
<TextView
android:id="@+id/tv_le_count_content"
@ -137,7 +256,7 @@
android:layout_marginRight="5dp"
android:hint="0天"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
</RelativeLayout>
<View
@ -162,7 +281,7 @@
android:layout_marginBottom="5dp"
android:text="请假事由"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
<EditText
android:id="@+id/et_le_cause"
@ -194,13 +313,21 @@
android:layout_marginBottom="5dp"
android:text="假条"
android:textColor="@color/black"
android:textSize="16sp" />
android:textSize="16dp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rlv_photo"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white">
<Button
android:id="@+id/btn_submit"
@ -209,9 +336,11 @@
android:layout_marginLeft="20dp"
android:layout_marginTop="23dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="5dp"
android:background="@drawable/sel_btn_submit"
android:text="提交"
android:textColor="@color/white"
android:textSize="16sp" />
android:textSize="16dp" />
</LinearLayout>
</ScrollView>
</RelativeLayout>

View File

@ -12,6 +12,60 @@
android:orientation="vertical"
tools:context=".activitys.mine.LeaveActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请假类型"
android:textColor="@color/black"
android:textSize="16sp" />
<RadioGroup
android:id="@+id/rg_is_self"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="5dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:button="@drawable/sel_radio_cir"
android:enabled="false"
android:text="公出请假"
android:textColor="@color/col_blue_black"
android:textSize="16sp" />
<RadioButton
android:id="@+id/rb_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@drawable/sel_radio_cir"
android:enabled="false"
android:text="因私请假"
android:textColor="@color/col_blue_black"
android:textSize="16sp" />
</RadioGroup>
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_line" />
<RelativeLayout
android:id="@+id/rl_qingren"
android:layout_width="match_parent"
@ -84,7 +138,7 @@
android:id="@+id/tv_le_type_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请假类"
android:text="请假类"
android:textColor="@color/black"
android:textSize="16sp" />
@ -98,6 +152,52 @@
android:textSize="16sp" />
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_point"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="10dp"
android:visibility="gone"
tools:visibility="visible">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_line" />
<com.sucstepsoft.realtimelocation.widget.NoScrollMapView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="5dp">
<com.baidu.mapapi.map.TextureMapView
android:id="@+id/tmv_map"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
</com.sucstepsoft.realtimelocation.widget.NoScrollMapView>
<TextView
android:id="@+id/tv_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:background="@drawable/shp_rectangle_gray"
android:gravity="left"
android:hint="未录入"
android:padding="3dp"
android:textColor="@color/black"
android:textSize="15sp"
tools:text="内蒙古呼和浩特市赛罕区测试" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
@ -251,7 +351,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="审批内容"
android:text="一级审批内容"
android:textColor="@color/black"
android:textSize="16sp" />
@ -266,6 +366,37 @@
</LinearLayout>
<LinearLayout
android:id="@+id/ll_neirong_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="@color/white"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="二级审批内容"
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:id="@+id/neirong_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shp_cursor"
android:gravity="left"
android:minHeight="50dp"
android:padding="5dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_btns"
android:layout_width="match_parent"

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -198,14 +197,40 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_leave"
android:drawablePadding="6dp"
android:drawableLeft="@drawable/ic_level_icon"
android:drawablePadding="10dp"
android:text="请 假"
android:textColor="@color/black"
android:textSize="18sp" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/gray_bg" />
<RelativeLayout
android:id="@+id/rl_leave_history"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/sel_rectangle_btn_white_gray"
android:orientation="horizontal"
android:padding="14dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_level_history_icon"
android:drawablePadding="10dp"
android:text="请假记录"
android:textColor="@color/black"
android:textSize="18sp" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
@ -224,8 +249,8 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_leave"
android:drawablePadding="6dp"
android:drawableLeft="@drawable/ic_level_approve_icon"
android:drawablePadding="10dp"
android:text="请假审批"
android:textColor="@color/black"
android:textSize="18sp" />

View File

@ -83,7 +83,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请假类: " />
android:text="请假类: " />
<TextView
android:id="@+id/tv_type"
@ -111,6 +111,45 @@
tools:text="3.0天" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_examine_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="一级审批: " />
<TextView
android:id="@+id/tv_examine_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="3.0天" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_examine_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="二级审批: " />
<TextView
android:id="@+id/tv_examine_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="未通过" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
@ -118,12 +157,28 @@
android:background="@color/gray_line" />
</LinearLayout>
<ImageView
android:id="@+id/iv_state"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_le_type_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shp_status_blue"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:textColor="@color/text_blue"
tools:text="公出请假" />
<ImageView
android:id="@+id/iv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/shp_point_red" />
</LinearLayout>
</RelativeLayout>

View File

@ -17,7 +17,9 @@
<string name="issue_dis"><Data><![CDATA[<font color="#808080" size="14">处理状态:</font><font color="#e60012" size="14"> %1$s </font>]]></Data></string>
<string name="issue_time"><Data><![CDATA[<font color="#808080" size="14">处理时限:</font><font color="#e60012" size="14"> %1$s </font><font color="#808080" size="14">天</font>]]></Data></string>
<string name="leave_type"><Data><![CDATA[<font size="16">请假类型</font><font color="#e60012" size="10"> * </font>]]></Data></string>
<string name="leave_type_1"><Data><![CDATA[<font size="16">请假类型</font><font color="#e60012" size="10"> * </font>]]></Data></string>
<string name="leave_type"><Data><![CDATA[<font size="16">请假类别</font><font color="#e60012" size="10"> * </font>]]></Data></string>
<string name="leave_type_2"><Data><![CDATA[<font size="16">外出地点</font><font color="#e60012" size="10"> * </font>]]></Data></string>
<string name="leave_start"><Data><![CDATA[<font size="16">开始时间</font><font color="#e60012" size="10"> * </font>]]></Data></string>
<string name="leave_end"><Data><![CDATA[<font size="16">结束时间</font><font color="#e60012" size="10"> * </font>]]></Data></string>
<string name="leave_count"><Data><![CDATA[<font size="16">请假时长</font><font color="#e60012" size="10"> * </font>]]></Data></string>

View File

@ -61,8 +61,8 @@ ext {
gTargetSdkVersion = 28
// gVersionCode = 3
// gVersionName = '1.0.3'
gVersionCode=46
gVersionName='1.4.6'
gVersionCode=48
gVersionName='1.4.8'
//Router编译版本
gRouterApiVersion = '1.4.1'
gRouterCompileVersion = '1.2.2'

View File

@ -76,6 +76,15 @@ public class PathConfig {
public static final String DIC_THREE = "34aefb4b-5918-4de7-a6b8-8e361f76c557";//三涉
public static final String DIC_GROUP = "b30da878-2576-4e70-8a39-4eeee5ad9983";//小组组成
public static final String DIC_LEAVE="f29299aa-0651-4346-845a-2f8bf8987778";//请假类型
public static final String DIC_LEAVE_2="626c1b6a-e1cc-45f8-9782-55e5a295aae6";//请假类型2
/**
* 请假外出市五区外
*/
public static final String LEAVE_OUTGOING_CITY5_OUTER = "0d9e9d33-286b-4b4c-9e5c-8155592326fe";
/**
* 请假外出市五区内
*/
public static final String LEAVE_OUTGOING_CITY5_INNER = "af6ecb02-58df-412b-8bbe-25b7cdc640d6";
public static final String DEFAULT_AREA_CODE = "0";//地区
public static final String APP_VERSION_ID = "402e60d8-8270-4bb9-8850-83d30a39a53f";/* 包头版本一 */

View File

@ -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.0.15:7021/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";

View File

@ -46,9 +46,22 @@ public class ImageAdapter extends PagerAdapter {
.apply(options)
.into(photoView);
container.addView(view);
if (mOnImgClick != null) {
photoView.setOnClickListener(v -> mOnImgClick.imgClick());
}
return view;
}
private OnImgClick mOnImgClick;
public void addImgClick(OnImgClick onImgClick) {
this.mOnImgClick = onImgClick;
}
public interface OnImgClick {
void imgClick();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;

View File

@ -1,6 +1,5 @@
package com.sucstepsoft.cm_utils.utils;
import android.service.quicksettings.Tile;
import android.support.annotation.NonNull;
import com.sucstepsoft.cm_utils.constant.TimeConstants;
@ -622,6 +621,12 @@ public final class TimeUtils {
return format;
}
public static String getNowHourHHmmSS() {
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String format = dateFormat.format(new Date());
return format;
}
/**
* 判断某一时间是否在一个区间内
*
@ -665,6 +670,43 @@ public final class TimeUtils {
}
}
public static boolean isInTimeHHmmSS(String sourceTime, String curTime) {
if (sourceTime == null || !sourceTime.contains("-") || !sourceTime.contains(":")) {
return false;
}
if (curTime == null || !curTime.contains(":")) {
return false;
}
String[] args = sourceTime.split("-");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
try {
long now = sdf.parse(curTime).getTime();
long start = sdf.parse(args[0]).getTime();
long end = sdf.parse(args[1]).getTime();
if (args[1].equals("00:00:00")) {
args[1] = "24:00:00";
}
LogUtils.e("是否在时间范围内:" + (end < start));
if (end < start) {
if (now >= end && now < start) {
return false;
} else {
return true;
}
} else {
if (now >= start && now < end) {
return true;
} else {
return false;
}
}
} catch (ParseException e) {
e.printStackTrace();
return false;
}
}
public static String getNowHourMM() {
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("HH:mm");