diff --git a/app/build.gradle b/app/build.gradle
index 48ca6d2..4d135f9 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -47,6 +47,7 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
+
signingConfigs {
release {
storeFile file('../key/tairui.jks')
@@ -58,6 +59,7 @@ android {
buildTypes {
debug {
signingConfig signingConfigs.release
+ buildConfigField "String", "DOMAIN", '"http://192.168.18.74:8080"'
jniDebuggable false
zipAlignEnabled false
}
@@ -66,6 +68,7 @@ android {
signingConfig signingConfigs.release
minifyEnabled false
jniDebuggable false
+ buildConfigField "String", "DOMAIN", '"http://47.109.205.240:8080"'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ae8dbbc..c976461 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -153,6 +153,26 @@
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="false"
android:screenOrientation="portrait" />
+
+
+
+
extends AppCompatActiv
protected void showToast(String str) {
Toast.makeText(mContext, str, Toast.LENGTH_LONG).show();
}
+
protected void showError(String str) {
PopTip.show(str).iconError();
}
+ protected void showSuccess(String str) {
+ PopTip.show(str).iconSuccess();
+ }
+
protected void setText(TextView view, String txt, String defaultTxt) {
if (view != null) {
view.setText(TextUtils.isEmpty(txt) ? defaultTxt : txt);
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/config/AppConfig.java b/app/src/main/java/com/tairui/gov_affairs_cloud/config/AppConfig.java
index ec9de55..99f6e67 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/config/AppConfig.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/config/AppConfig.java
@@ -2,6 +2,7 @@ package com.tairui.gov_affairs_cloud.config;
import com.orhanobut.hawk.Hawk;
import com.tairui.gov_affairs_cloud.entity.Constant;
+import com.tairui.gov_affairs_cloud.ui.my.entity.UserInfoEntity;
import android.text.TextUtils;
@@ -17,6 +18,7 @@ public class AppConfig {
}
private String token;
+ private UserInfoEntity userInfo;
public String getToken() {
if (TextUtils.isEmpty(token)) {
@@ -28,4 +30,16 @@ public class AppConfig {
public void setToken(String token) {
this.token = token;
}
+
+ public UserInfoEntity getUserInfo() {
+ if (userInfo == null && Hawk.contains(Constant.USER_INFO)) {
+ userInfo = Hawk.get(Constant.USER_INFO);
+ }
+ return userInfo;
+ }
+
+ public void setUserInfo(UserInfoEntity userInfo) {
+ this.userInfo = userInfo;
+ Hawk.put(Constant.USER_INFO, userInfo);
+ }
}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/entity/Api.java b/app/src/main/java/com/tairui/gov_affairs_cloud/entity/Api.java
index 96412f4..130bce7 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/entity/Api.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/entity/Api.java
@@ -1,9 +1,10 @@
package com.tairui.gov_affairs_cloud.entity;
+import com.tairui.gov_affairs_cloud.BuildConfig;
+
public class Api {
- public static String BASE_HOST = "http://192.168.18.9:8080";
- // public static String BASE_HOST = "http://47.109.205.240:8080";
+ public static String BASE_HOST = BuildConfig.DOMAIN;
public static String OSS_HOST = "http://gov-cloud.oss-cn-chengdu.aliyuncs.com/";
/**
@@ -32,6 +33,8 @@ public class Api {
public static final String CAPTCHA = BASE_HOST + "/auth/app/captcha";
public static final String HOME = BASE_HOST + "/app/home/data";
public static final String USER_INFO = BASE_HOST + "/app/my/info";
+
+ /* 土地信息 */
public static final String LAND_OVERVIEW = BASE_HOST + "/land-resource/analysis/overview";
public static final String LAND_SUB_AREA = BASE_HOST + "/land-resource/analysis/subArea";
public static final String LAND_AREA_REGION = BASE_HOST + "/system/area/region";
@@ -43,9 +46,19 @@ public class Api {
public static final String LAND_TYPE = BASE_HOST + "/land-resource/baseInfo/landTree";
public static final String LAND_RESOURCE_TYPE_NO_CHILD = BASE_HOST + "/land-resource/baseInfo/landTypeNoChild";
public static final String LAND_RESOURCE_LIST = BASE_HOST + "/land-resource/landManage/page";
+ /* 种植计划 */
public static final String PLANT_PLAN_HOME = BASE_HOST + "/land-resource/annualManage/app/main";
public static final String PLANT_PLAN_LIST = BASE_HOST + "/land-resource/annualManage/page";
public static final String PLANT_PLAN_CROPS = BASE_HOST + "/land-resource/crops/list";
public static final String PLANT_PLAN_DETAIL = BASE_HOST + "/land-resource/annualManage/";
+ public static final String PLANT_PLAN_ADD = BASE_HOST + "/land-resource/annualManage/save";
+ public static final String PLANT_PLAN_EDIT = BASE_HOST + "/land-resource/annualManage/edit";
+ public static final String PLANT_PLAN_ACTUAL = BASE_HOST + "/land-resource/annualManage/save-actual";
+
+ /* 土地巡查 */
+ public static final String INSPECTION_STATUS = BASE_HOST + "/system/dict/data/type/land_inspection_status";
+ public static final String INSPECTION_TYPE = BASE_HOST + "/system/dict/data/type/land_res_patrol_type";
+ public static final String INSPECTION_LIST_ADMIN = BASE_HOST + "/land-resource/landInspection/page";
+ public static final String INSPECTION_LIST_GENERAL = BASE_HOST + "/land-resource/landInspection/page/general";
}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/entity/Constant.java b/app/src/main/java/com/tairui/gov_affairs_cloud/entity/Constant.java
index 61acbfa..2e99526 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/entity/Constant.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/entity/Constant.java
@@ -4,6 +4,8 @@ public class Constant {
public static String TOKEN = "token";
+ public static String USER_INFO = "user_info";
+
public static String LOGIN_USER_NAME = "login_user_name";
public static String SELECT_REGION = "select_region";
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/home/HomeFragment.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/home/HomeFragment.java
index 1787432..614aa00 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/home/HomeFragment.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/home/HomeFragment.java
@@ -8,12 +8,14 @@ import com.chad.library.adapter.base.BaseViewHolder;
import com.rxjava.rxlife.RxLife;
import com.tairui.gov_affairs_cloud.R;
import com.tairui.gov_affairs_cloud.base.BaseFragment;
+import com.tairui.gov_affairs_cloud.config.AppConfig;
import com.tairui.gov_affairs_cloud.databinding.FragmentHomeBinding;
import com.tairui.gov_affairs_cloud.entity.Api;
import com.tairui.gov_affairs_cloud.entity.PieBean;
import com.tairui.gov_affairs_cloud.http.OnError;
import com.tairui.gov_affairs_cloud.ui.home.entity.HomeEntity;
import com.tairui.gov_affairs_cloud.ui.land.LandActivity;
+import com.tairui.gov_affairs_cloud.ui.my.entity.UserInfoEntity;
import com.tairui.gov_affairs_cloud.util.DensityUtils;
import com.tairui.gov_affairs_cloud.util.IntentUtil;
import com.tairui.gov_affairs_cloud.util.glide.GlideLoader;
@@ -102,6 +104,18 @@ public class HomeFragment extends BaseFragment {
binding.loadingView.setVisibility(View.GONE);
binding.blankView.setVisibility(View.VISIBLE);
});
+ getUserInfo();
+ }
+
+ private void getUserInfo() {
+ RxHttp.get(Api.USER_INFO)
+ .asResponse(UserInfoEntity.class)
+ .as(RxLife.asOnMain(this))
+ .subscribe(data -> {
+ AppConfig.getInstance().setUserInfo(data);
+ }, (OnError) error -> {
+ showToast(error.getErrorMsg());
+ });
}
private void initView(HomeEntity data) {
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddPlantPlanActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddPlantPlanActivity.java
index c6dd38d..795d7e4 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddPlantPlanActivity.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddPlantPlanActivity.java
@@ -3,6 +3,8 @@ package com.tairui.gov_affairs_cloud.ui.land;
import java.util.ArrayList;
import java.util.List;
+import org.greenrobot.eventbus.EventBus;
+
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.contrarywind.interfaces.IPickerViewData;
@@ -10,14 +12,23 @@ import com.rxjava.rxlife.RxLife;
import com.tairui.gov_affairs_cloud.base.BaseActivity;
import com.tairui.gov_affairs_cloud.databinding.ActivityAddPlantPlanBinding;
import com.tairui.gov_affairs_cloud.entity.Api;
+import com.tairui.gov_affairs_cloud.entity.EventConstant;
+import com.tairui.gov_affairs_cloud.entity.EventMessage;
import com.tairui.gov_affairs_cloud.http.OnError;
import com.tairui.gov_affairs_cloud.ui.land.entity.CropsEntity;
import com.tairui.gov_affairs_cloud.ui.land.entity.LandAreaRegionEntity;
import com.tairui.gov_affairs_cloud.ui.land.entity.LandGridEntity;
import com.tairui.gov_affairs_cloud.util.ArrayUtil;
+import com.tairui.gov_affairs_cloud.util.DateUtils;
+import com.tairui.gov_affairs_cloud.util.DecimalDigitsInputFilter;
+import com.tairui.gov_affairs_cloud.util.KeybordUtil;
import com.tairui.gov_affairs_cloud.util.SingleClickListener;
import android.graphics.Color;
+import android.os.Bundle;
+import android.text.InputFilter;
+import android.text.InputType;
+import android.text.TextUtils;
import android.view.View;
import rxhttp.RxHttp;
@@ -45,6 +56,12 @@ public class AddPlantPlanActivity extends BaseActivity {
selectRegion = landAreaRegionData.get(0).getAreaChildVOS().get(options1).getAreaChildVOS().get(options2);
- setText(binding.tvRegion, selectRegion.getAreaName());
selectGrid = null;
+ getGridData();
}).setTitleText("土地区域选择").setContentTextSize(20)
.setSelectOptions(0, 0)
.setTitleBgColor(Color.WHITE)
@@ -155,7 +168,7 @@ public class AddPlantPlanActivity extends BaseActivity {
selectGrid = landGridData.getRecords().get(options1);
- setText(binding.tvGrid, selectGrid.getGridName());
+ setText(binding.tvGrid, selectRegion.getAreaName() + "-" + selectGrid.getGridName());
}).setTitleText("土地网格选择").setContentTextSize(20)
.setSelectOptions(0)
.setTitleBgColor(Color.WHITE)
@@ -248,7 +261,7 @@ public class AddPlantPlanActivity extends BaseActivity cycleData = new ArrayList<>();
if (growthCycleUnit == 1) {
- for (int i = 1; i < 32; i++) {
+ for (int i = 1; i < 366; i++) {
cycleData.add(new PickerEntity(i + "天"));
}
} else if (growthCycleUnit == 2) {
@@ -257,7 +270,7 @@ public class AddPlantPlanActivity extends BaseActivity {
+ hideLoading();
+ showSuccess("计划添加成功");
+ EventBus.getDefault().post(new EventMessage(EventConstant.REFRESH_LIST));
+ binding.btnSubmit.postDelayed(() -> finish(), 1000);
+ }, (OnError) error -> {
+ hideLoading();
+ showError(error.getErrorMsg());
+ });
+ }
+
}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/EditPlantActualActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/EditPlantActualActivity.java
new file mode 100644
index 0000000..f697aee
--- /dev/null
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/EditPlantActualActivity.java
@@ -0,0 +1,232 @@
+package com.tairui.gov_affairs_cloud.ui.land;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.greenrobot.eventbus.EventBus;
+
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+import com.contrarywind.interfaces.IPickerViewData;
+import com.rxjava.rxlife.RxLife;
+import com.tairui.gov_affairs_cloud.base.BaseActivity;
+import com.tairui.gov_affairs_cloud.databinding.ActivityEditPlantActualBinding;
+import com.tairui.gov_affairs_cloud.entity.Api;
+import com.tairui.gov_affairs_cloud.entity.EventConstant;
+import com.tairui.gov_affairs_cloud.entity.EventMessage;
+import com.tairui.gov_affairs_cloud.http.OnError;
+import com.tairui.gov_affairs_cloud.ui.land.entity.PlantPlanDetailEntity;
+import com.tairui.gov_affairs_cloud.util.DecimalDigitsInputFilter;
+import com.tairui.gov_affairs_cloud.util.KeybordUtil;
+import com.tairui.gov_affairs_cloud.util.SingleClickListener;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.text.InputFilter;
+import android.text.InputType;
+import android.text.TextUtils;
+import android.view.View;
+import rxhttp.RxHttp;
+
+public class EditPlantActualActivity extends BaseActivity {
+
+ private String selectMonth;
+ private String growthCycle;
+
+ private OptionsPickerView monthPickerView;
+
+ private PlantPlanDetailEntity mData;
+
+ @Override
+ protected Class getBindingClass() {
+ return ActivityEditPlantActualBinding.class;
+ }
+
+ @Override
+ protected void onQueryArguments() {
+ mData = (PlantPlanDetailEntity) getIntent().getSerializableExtra("data");
+ }
+
+ @Override
+ protected void onFindView(Bundle savedInstanceState) {
+ binding.inputArea.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
+ binding.inputArea.setFilters(new InputFilter[] {new DecimalDigitsInputFilter()});
+
+ binding.tvGrid.setText(mData.getGridName());
+ binding.inputPlanName.setText(mData.getPlanName());
+ binding.tvCrops.setText(mData.getCropsName());
+ }
+
+ @Override
+ protected void onBindListener() {
+ binding.btnBack.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ finish();
+ }
+ });
+ binding.layoutMonth.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ KeybordUtil.hideSoftInput(mContext, binding.layoutMonth);
+ showMonthDialog();
+ }
+ });
+ binding.layoutCycle.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ KeybordUtil.hideSoftInput(mContext, binding.layoutCycle);
+ showCyclDialog();
+ }
+ });
+ binding.btnSubmit.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ checkSubmit();
+ }
+ });
+ }
+
+ private void showMonthDialog() {
+ if (monthPickerView == null) {
+ List monthData = new ArrayList<>();
+ for (int i = 0; i < 12; i++) {
+ monthData.add(new PickerEntity((i + 1) + "月"));
+ }
+ monthPickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> {
+ selectMonth = String.valueOf(options1 + 1);
+ setText(binding.tvMonth, selectMonth + "月");
+ }).setTitleText("种植月份选择").setContentTextSize(20)
+ .setSelectOptions(0)
+ .setTitleBgColor(Color.WHITE)
+ .isRestoreItem(true)
+ .isCenterLabel(false)
+ .setOutSideColor(0x00000000)
+ .build();
+
+ monthPickerView.setPicker(monthData);
+ }
+ monthPickerView.show();
+ }
+
+ private void showCyclDialog() {
+ List cycleData = new ArrayList<>();
+ int growthCycleUnit = Integer.parseInt(mData.getPlanParameters().getGrowthCycleUnit());
+ if (growthCycleUnit == 1) {
+ for (int i = 1; i < 366; i++) {
+ cycleData.add(new PickerEntity(i + "天"));
+ }
+ } else if (growthCycleUnit == 2) {
+ for (int i = 1; i < 53; i++) {
+ cycleData.add(new PickerEntity(i + "周"));
+ }
+ } else if (growthCycleUnit == 3) {
+ for (int i = 1; i < 13; i++) {
+ cycleData.add(new PickerEntity(i + "个月"));
+ }
+ } else if (growthCycleUnit == 4) {
+ for (int i = 1; i < 6; i++) {
+ cycleData.add(new PickerEntity(i + "年"));
+ }
+ }
+ OptionsPickerView cyclePickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> {
+ growthCycle = String.valueOf(options1 + 1);
+ setText(binding.tvCycle, growthCycle + getCycleUnit(growthCycleUnit));
+ }).setTitleText("种植周期时长选择").setContentTextSize(20)
+ .setSelectOptions(0)
+ .setTitleBgColor(Color.WHITE)
+ .isRestoreItem(true)
+ .isCenterLabel(false)
+ .setOutSideColor(0x00000000)
+ .build();
+
+ cyclePickerView.setPicker(cycleData);
+ cyclePickerView.show();
+ }
+
+ private class PickerEntity implements IPickerViewData {
+ private String name;
+
+ public PickerEntity(String m) {
+ this.name = m;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getPickerViewText() {
+ return name;
+ }
+ }
+
+ private String getCycleUnit(int unit) {
+ String unitStr;
+ switch (unit) {
+ case 1:
+ unitStr = "天";
+ break;
+ case 2:
+ unitStr = "周";
+ break;
+ case 3:
+ unitStr = "个月";
+ break;
+ case 4:
+ unitStr = "年";
+ break;
+ default:
+ unitStr = "";
+ break;
+ }
+ return unitStr;
+ }
+
+ private void checkSubmit() {
+ String planArea = binding.inputArea.getText().toString().trim();
+ if (TextUtils.isEmpty(planArea)) {
+ showError("请输入计划种植面积");
+ return;
+ }
+ if (TextUtils.isEmpty(selectMonth)) {
+ showError("请选择种植月份");
+ return;
+ }
+ if (TextUtils.isEmpty(growthCycle)) {
+ showError("请选择生长周期");
+ return;
+ }
+ try {
+ double area = Double.parseDouble(planArea);
+ doAddPlanActual(area);
+ } catch (Exception e) {
+ showError("种植面积只可以输入数字");
+ }
+ }
+
+ private void doAddPlanActual(double planArea) {
+ showLoading();
+ RxHttp.postJson(Api.PLANT_PLAN_ACTUAL)
+ .add("planId", mData.getId())
+ .add("plantingArea", planArea)
+ .add("plantingMonths", selectMonth)
+ .add("growthCycle", growthCycle)
+ .add("growthCycleUnit", mData.getPlanParameters().getGrowthCycleUnit())
+ .asResponse(Object.class)
+ .as(RxLife.asOnMain(this))
+ .subscribe(data -> {
+ hideLoading();
+ showSuccess("实际种植情况添加成功");
+ EventBus.getDefault().post(new EventMessage(EventConstant.REFRESH_LIST));
+ binding.btnSubmit.postDelayed(() -> finish(), 1000);
+ }, (OnError) error -> {
+ hideLoading();
+ showError(error.getErrorMsg());
+ });
+ }
+}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/EditPlantPlanActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/EditPlantPlanActivity.java
new file mode 100644
index 0000000..6ad510c
--- /dev/null
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/EditPlantPlanActivity.java
@@ -0,0 +1,272 @@
+package com.tairui.gov_affairs_cloud.ui.land;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.greenrobot.eventbus.EventBus;
+
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+import com.contrarywind.interfaces.IPickerViewData;
+import com.rxjava.rxlife.RxLife;
+import com.tairui.gov_affairs_cloud.base.BaseActivity;
+import com.tairui.gov_affairs_cloud.databinding.ActivityEditPlantPlanBinding;
+import com.tairui.gov_affairs_cloud.entity.Api;
+import com.tairui.gov_affairs_cloud.entity.EventConstant;
+import com.tairui.gov_affairs_cloud.entity.EventMessage;
+import com.tairui.gov_affairs_cloud.http.OnError;
+import com.tairui.gov_affairs_cloud.ui.land.entity.PlantPlanDetailEntity;
+import com.tairui.gov_affairs_cloud.util.DecimalDigitsInputFilter;
+import com.tairui.gov_affairs_cloud.util.KeybordUtil;
+import com.tairui.gov_affairs_cloud.util.SingleClickListener;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.text.InputFilter;
+import android.text.InputType;
+import android.text.TextUtils;
+import android.view.View;
+import rxhttp.RxHttp;
+import rxhttp.RxHttpJsonParam;
+
+public class EditPlantPlanActivity extends BaseActivity {
+
+ private String selectMonth;
+ private String growthCycle;
+ private int growthCycleUnit = -1; //成长周期单位 1:天 2:周 3:月 4:年
+
+ private OptionsPickerView monthPickerView;
+ private OptionsPickerView cycleUnitPickerView;
+
+ private PlantPlanDetailEntity mData;
+
+ @Override
+ protected Class getBindingClass() {
+ return ActivityEditPlantPlanBinding.class;
+ }
+
+ @Override
+ protected void onQueryArguments() {
+ mData = (PlantPlanDetailEntity) getIntent().getSerializableExtra("data");
+ }
+
+ @Override
+ protected void onFindView(Bundle savedInstanceState) {
+ binding.inputArea.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
+ binding.inputArea.setFilters(new InputFilter[] {new DecimalDigitsInputFilter()});
+
+ binding.tvGrid.setText(mData.getGridName());
+ binding.inputPlanName.setHint(mData.getPlanName());
+ binding.tvCrops.setText(mData.getCropsName());
+ binding.inputArea.setHint(String.valueOf(mData.getPlanParameters().getPlantingArea()));
+ binding.tvMonth.setHint(mData.getPlanParameters().getPlantingMonths() + "月");
+ binding.tvCycle.setHint(mData.getPlanParameters().getGrowthCycle() + getCycleUnit(
+ Integer.parseInt(mData.getPlanParameters().getGrowthCycleUnit())));
+
+ }
+
+ @Override
+ protected void onBindListener() {
+ binding.btnBack.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ finish();
+ }
+ });
+ binding.layoutMonth.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ KeybordUtil.hideSoftInput(mContext, binding.layoutMonth);
+ showMonthDialog();
+ }
+ });
+ binding.layoutCycle.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ KeybordUtil.hideSoftInput(mContext, binding.layoutCycle);
+ showCycleUnitDialog();
+ }
+ });
+ binding.btnSubmit.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ checkSubmit();
+ }
+ });
+ }
+
+ private void showMonthDialog() {
+ if (monthPickerView == null) {
+ List monthData = new ArrayList<>();
+ for (int i = 0; i < 12; i++) {
+ monthData.add(new PickerEntity((i + 1) + "月"));
+ }
+ monthPickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> {
+ selectMonth = String.valueOf(options1 + 1);
+ setText(binding.tvMonth, selectMonth + "月");
+ }).setTitleText("种植月份选择").setContentTextSize(20)
+ .setSelectOptions(0)
+ .setTitleBgColor(Color.WHITE)
+ .isRestoreItem(true)
+ .isCenterLabel(false)
+ .setOutSideColor(0x00000000)
+ .build();
+
+ monthPickerView.setPicker(monthData);
+ }
+ monthPickerView.show();
+ }
+
+ private void showCycleUnitDialog() {
+ if (cycleUnitPickerView == null) {
+ List unitData = new ArrayList<>();
+ unitData.add(new PickerEntity("天"));
+ unitData.add(new PickerEntity("周"));
+ unitData.add(new PickerEntity("月"));
+ unitData.add(new PickerEntity("年"));
+ cycleUnitPickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> {
+ growthCycleUnit = options1 + 1;
+ showCyclDialog();
+ }).setTitleText("种植周期单位选择").setContentTextSize(20)
+ .setSelectOptions(0)
+ .setTitleBgColor(Color.WHITE)
+ .isRestoreItem(true)
+ .isCenterLabel(false)
+ .setOutSideColor(0x00000000)
+ .build();
+
+ cycleUnitPickerView.setPicker(unitData);
+ }
+ cycleUnitPickerView.show();
+ }
+
+ private void showCyclDialog() {
+ if (growthCycleUnit == -1) {
+ showError("请先选择生长周期单位");
+ return;
+ }
+ List cycleData = new ArrayList<>();
+ if (growthCycleUnit == 1) {
+ for (int i = 1; i < 366; i++) {
+ cycleData.add(new PickerEntity(i + "天"));
+ }
+ } else if (growthCycleUnit == 2) {
+ for (int i = 1; i < 53; i++) {
+ cycleData.add(new PickerEntity(i + "周"));
+ }
+ } else if (growthCycleUnit == 3) {
+ for (int i = 1; i < 13; i++) {
+ cycleData.add(new PickerEntity(i + "个月"));
+ }
+ } else if (growthCycleUnit == 4) {
+ for (int i = 1; i < 6; i++) {
+ cycleData.add(new PickerEntity(i + "年"));
+ }
+ }
+ OptionsPickerView cyclePickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> {
+ growthCycle = String.valueOf(options1 + 1);
+ setText(binding.tvCycle, growthCycle + getCycleUnit(growthCycleUnit));
+ }).setTitleText("种植周期时长选择").setContentTextSize(20)
+ .setSelectOptions(0)
+ .setTitleBgColor(Color.WHITE)
+ .isRestoreItem(true)
+ .isCenterLabel(false)
+ .setOutSideColor(0x00000000)
+ .build();
+
+ cyclePickerView.setPicker(cycleData);
+ cyclePickerView.show();
+ }
+
+ private class PickerEntity implements IPickerViewData {
+ private String name;
+
+ public PickerEntity(String m) {
+ this.name = m;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getPickerViewText() {
+ return name;
+ }
+ }
+
+ private String getCycleUnit(int unit) {
+ String unitStr;
+ switch (unit) {
+ case 1:
+ unitStr = "天";
+ break;
+ case 2:
+ unitStr = "周";
+ break;
+ case 3:
+ unitStr = "个月";
+ break;
+ case 4:
+ unitStr = "年";
+ break;
+ default:
+ unitStr = "";
+ break;
+ }
+ return unitStr;
+ }
+
+ private void checkSubmit() {
+ boolean hasChange = false;
+ RxHttpJsonParam http = RxHttp.putJson(Api.PLANT_PLAN_EDIT);
+ http.add("id", mData.getId());
+ String planName = binding.inputPlanName.getText().toString().trim();
+ if (!TextUtils.isEmpty(planName)) {
+ http.add("planName", planName);
+ hasChange = true;
+ }
+ String planArea = binding.inputArea.getText().toString().trim();
+ if (!TextUtils.isEmpty(planArea)) {
+ try {
+ double area = Double.parseDouble(planArea);
+ http.add("plantingArea", area);
+ hasChange = true;
+ } catch (Exception e) {
+ showError("种植面积只可以输入数字");
+ return;
+ }
+ }
+ if (!TextUtils.isEmpty(selectMonth)) {
+ http.add("plantingMonths", selectMonth);
+ hasChange = true;
+ }
+ if (!TextUtils.isEmpty(growthCycle) && growthCycleUnit != -1) {
+ http.add("growthCycle", growthCycle);
+ http.add("growthCycleUnit", growthCycleUnit);
+ hasChange = true;
+ }
+ if (hasChange) {
+ showLoading();
+ http.asResponse(Object.class)
+ .as(RxLife.asOnMain(this))
+ .subscribe(data -> {
+ hideLoading();
+ showSuccess("计划修改成功");
+ EventBus.getDefault().post(new EventMessage(EventConstant.REFRESH_LIST));
+ binding.btnSubmit.postDelayed(() -> finish(), 1000);
+ }, (OnError) error -> {
+ hideLoading();
+ showError(error.getErrorMsg());
+ });
+ } else {
+ finish();
+ }
+
+ }
+
+}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionDetailActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionDetailActivity.java
new file mode 100644
index 0000000..35f3a32
--- /dev/null
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionDetailActivity.java
@@ -0,0 +1,56 @@
+package com.tairui.gov_affairs_cloud.ui.land;
+
+import com.tairui.gov_affairs_cloud.R;
+import com.tairui.gov_affairs_cloud.base.BaseActivity;
+import com.tairui.gov_affairs_cloud.databinding.ActivityInspectionDetailBinding;
+import com.tairui.gov_affairs_cloud.ui.land.entity.InspectionListEntity;
+import com.tairui.gov_affairs_cloud.util.SingleClickListener;
+
+import android.os.Bundle;
+import android.view.View;
+
+public class InspectionDetailActivity extends BaseActivity {
+
+ private InspectionListEntity.RecordsEntity mData;
+
+ @Override
+ protected Class getBindingClass() {
+ return ActivityInspectionDetailBinding.class;
+ }
+
+ @Override
+ protected void onQueryArguments() {
+ mData = (InspectionListEntity.RecordsEntity) getIntent().getSerializableExtra("data");
+ }
+
+ @Override
+ protected void onFindView(Bundle savedInstanceState) {
+ setText(binding.tvTaskStatus, mData.getInspectionStatusName());
+ setText(binding.tvTaskCode, mData.getTaskCode());
+ setText(binding.tvTaskName, mData.getTaskName());
+ setText(binding.tvTaskMembers, mData.getTaskMembers());
+ setText(binding.tvTaskType, mData.getInspectionType());
+ setText(binding.tvTaskTarget, mData.getInspectionTarget());
+ setText(binding.tvTaskNotes, mData.getNotes());
+ if (mData.getInspectionStatus().equals("-1")) {
+ binding.tvTaskStatus.setTextColor(getResColor(R.color.color_txt_green));
+ } else if (mData.getInspectionStatus().equals("00")) {
+ binding.tvTaskStatus.setTextColor(getResColor(R.color.color_txt_blue));
+ } else if (mData.getInspectionStatus().equals("01")) {
+ binding.tvTaskStatus.setTextColor(getResColor(R.color.color_txt_orange));
+ } else if (mData.getInspectionStatus().equals("02")) {
+ binding.tvTaskStatus.setTextColor(getResColor(R.color.color_tv_content));
+ }
+ }
+
+ @Override
+ protected void onBindListener() {
+ binding.btnBack.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ finish();
+ }
+ });
+ }
+
+}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionListActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionListActivity.java
new file mode 100644
index 0000000..ffaa700
--- /dev/null
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/InspectionListActivity.java
@@ -0,0 +1,373 @@
+package com.tairui.gov_affairs_cloud.ui.land;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.kongzue.dialogx.dialogs.MessageDialog;
+import com.kongzue.dialogx.dialogs.PopMenu;
+import com.kongzue.dialogx.util.ItemDivider;
+import com.orhanobut.hawk.Hawk;
+import com.rxjava.rxlife.RxLife;
+import com.tairui.gov_affairs_cloud.R;
+import com.tairui.gov_affairs_cloud.base.BaseActivity;
+import com.tairui.gov_affairs_cloud.config.AppConfig;
+import com.tairui.gov_affairs_cloud.databinding.ActivityInspectionListBinding;
+import com.tairui.gov_affairs_cloud.entity.Api;
+import com.tairui.gov_affairs_cloud.entity.Constant;
+import com.tairui.gov_affairs_cloud.entity.EventConstant;
+import com.tairui.gov_affairs_cloud.entity.EventMessage;
+import com.tairui.gov_affairs_cloud.http.OnError;
+import com.tairui.gov_affairs_cloud.ui.land.entity.DictDataEntity;
+import com.tairui.gov_affairs_cloud.ui.land.entity.InspectionListEntity;
+import com.tairui.gov_affairs_cloud.ui.land.entity.LandAreaRegionEntity;
+import com.tairui.gov_affairs_cloud.ui.land.entity.LandGridEntity;
+import com.tairui.gov_affairs_cloud.ui.my.entity.UserInfoEntity;
+import com.tairui.gov_affairs_cloud.util.ArrayUtil;
+import com.tairui.gov_affairs_cloud.util.DensityUtils;
+import com.tairui.gov_affairs_cloud.util.IntentUtil;
+import com.tairui.gov_affairs_cloud.util.SingleClickListener;
+import com.tairui.gov_affairs_cloud.util.ToastUtil;
+import com.tairui.gov_affairs_cloud.widget.RefreshRecyclerView;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import rxhttp.RxHttp;
+import rxhttp.RxHttpNoBodyParam;
+
+public class InspectionListActivity extends BaseActivity {
+
+ private LandAreaRegionEntity selectRegion;
+ private LandGridEntity.RecordsEntity selectGrid;
+ private DictDataEntity selectType;
+
+ private List landAreaRegionData;
+ private LandGridEntity landGridData;
+
+ private OptionsPickerView landRegionPickerView;
+ private OptionsPickerView landGridPickerView;
+
+ private InspectionListAdapter mAdapter;
+ private int currentPageIndex = 1;
+
+ private List typeData;
+
+ @Override
+ protected Class getBindingClass() {
+ return ActivityInspectionListBinding.class;
+ }
+
+ @Override
+ protected void onQueryArguments() {
+ EventBus.getDefault().register(this);
+ if (Hawk.contains(Constant.SELECT_REGION)) {
+ selectRegion = Hawk.get(Constant.SELECT_REGION);
+ }
+ if (Hawk.contains(Constant.SELECT_GRID)) {
+ selectGrid = Hawk.get(Constant.SELECT_GRID);
+ }
+ }
+
+ @Override
+ protected void onFindView(Bundle savedInstanceState) {
+ binding.refreshRecycler.setLayoutManager(new LinearLayoutManager(mContext));
+ mAdapter = new InspectionListAdapter();
+ binding.refreshRecycler.setAdapter(mAdapter);
+ if (selectRegion != null && selectGrid != null) {
+ setText(binding.tvRegion, selectRegion.getAreaName() + "-" + selectGrid.getGridName());
+ }
+ }
+
+ @Override
+ protected void onBindListener() {
+ binding.btnBack.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ finish();
+ }
+ });
+ binding.layoutRegion.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ showRegionDialog();
+ }
+ });
+ binding.refreshRecycler.setRefreshRecyclerListener(new RefreshRecyclerView.RefreshRecyclerListener() {
+ @Override
+ public void onRefresh() {
+ currentPageIndex = 1;
+ requestData(false);
+ }
+
+ @Override
+ public void onLoadmore() {
+ requestData(true);
+ }
+
+ @Override
+ public void onBlankClick() {
+ binding.refreshRecycler.showLoading();
+ currentPageIndex = 1;
+ requestData(false);
+ }
+ });
+ mAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
+ InspectionListEntity.RecordsEntity item = mAdapter.getItem(i);
+ Bundle bundle = new Bundle();
+ bundle.putSerializable("data", item);
+ IntentUtil.startActivity(mContext, InspectionDetailActivity.class, bundle);
+ });
+ binding.layoutType.setOnClickListener(new SingleClickListener() {
+ @Override
+ protected void onSingleClick(View v) {
+ showStatusMenu();
+ }
+ });
+ }
+
+ @Override
+ protected void onApplyData() {
+ getInspectionTypeData();
+ getRegionData();
+ if (selectRegion != null && selectGrid != null) {
+ binding.refreshRecycler.showLoading();
+ currentPageIndex = 1;
+ requestData(false);
+ }
+ }
+
+ private void getRegionData() {
+ RxHttp.get(Api.LAND_AREA_REGION)
+ .add("areaCode", "530926")
+ .asResponseList(LandAreaRegionEntity.class)
+ .as(RxLife.asOnMain(this))
+ .subscribe(data -> {
+ landAreaRegionData = data;
+ if (selectRegion == null || selectGrid == null) {
+ showRegionNoticeMsg();
+ }
+ }, (OnError) error -> showToast(error.getErrorMsg()));
+ }
+
+ private void showRegionNoticeMsg() {
+ MessageDialog.show("选择区域", "请先选择网格区域信息", "确定", "取消")
+ .setOkButton((baseDialog, v1) -> {
+ showRegionDialog();
+ return false;
+ }).setCancelButton((dialog, v) -> {
+ finish();
+ return false;
+ });
+ }
+
+ private void getInspectionTypeData() {
+ RxHttp.get(Api.INSPECTION_TYPE)
+ .asResponseList(DictDataEntity.class)
+ .as(RxLife.asOnMain(this))
+ .subscribe(data -> {
+ DictDataEntity allItem = new DictDataEntity();
+ allItem.setDictLabel("全部");
+ data.add(0, allItem);
+ typeData = data;
+ }, (OnError) error -> showToast(error.getErrorMsg()));
+ }
+
+ private void showStatusMenu() {
+ List menus = new ArrayList<>();
+ for (DictDataEntity item : typeData) {
+ menus.add(item.getDictLabel());
+ }
+ PopMenu.show(binding.layoutType, menus)
+ .setBackgroundColorRes(R.color.white)
+ .setWidth(DensityUtils.dp2px(mContext, 100))
+ .setOnMenuItemClickListener((dialog, text, index) -> {
+ selectType = typeData.get(index);
+ setText(binding.tvType, selectType.getDictLabel());
+ binding.refreshRecycler.showLoading();
+ currentPageIndex = 1;
+ requestData(false);
+ return false;
+ }).setItemDivider(new ItemDivider(15, 15, 1));
+ }
+
+ private void getGridData() {
+ RxHttp.get(Api.LAND_GRID_LIST)
+ .add("regionCode", selectRegion.getAreaCode())
+ .asResponse(LandGridEntity.class)
+ .as(RxLife.asOnMain(this))
+ .subscribe(data -> {
+ hideLoading();
+ if (ArrayUtil.isEmpty(data.getRecords())) {
+ showToast("当前区域下没有网格,请重新选择");
+ binding.layoutRegion.postDelayed(() -> showRegionDialog(), 500);
+ } else {
+ landGridData = data;
+ showLandGridDialog();
+ }
+ }, (OnError) error -> showToast(error.getErrorMsg()));
+ }
+
+ private void showRegionDialog() {
+ if (landRegionPickerView == null) {
+ List> subLandData = new ArrayList<>();
+ for (LandAreaRegionEntity itemData : landAreaRegionData.get(0).getAreaChildVOS()) {
+ subLandData.add(itemData.getAreaChildVOS());
+ }
+
+ landRegionPickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> {
+ selectRegion = landAreaRegionData.get(0).getAreaChildVOS().get(options1).getAreaChildVOS().get(options2);
+ Hawk.put(Constant.SELECT_REGION, selectRegion);
+ selectGrid = null;
+ Hawk.delete(Constant.SELECT_GRID);
+ getGridData();
+ }).setTitleText("土地区域选择").setContentTextSize(20)
+ .setSelectOptions(0, 0)
+ .setTitleBgColor(Color.WHITE)
+ .isRestoreItem(true)
+ .isCenterLabel(false)
+ .setOutSideColor(0x00000000) //设置外部遮罩颜色
+ .addOnCancelClickListener(view -> finish())
+ .build();
+
+ landRegionPickerView.setPicker(landAreaRegionData.get(0).getAreaChildVOS(), subLandData);//二级选择器
+ }
+ landRegionPickerView.show();
+ }
+
+ private void showGridNoticeMsg() {
+ MessageDialog.show("选择网格", "不继续选择网格信息了吗?", "确定", "取消")
+ .setOkButton((baseDialog, v1) -> {
+ finish();
+ return false;
+ });
+ }
+
+ private void showLandGridDialog() {
+ if (landGridPickerView == null) {
+ landGridPickerView = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> {
+ selectGrid = landGridData.getRecords().get(options1);
+ Hawk.put(Constant.SELECT_GRID, selectGrid);
+ setText(binding.tvRegion, selectRegion.getAreaName() + "-" + selectGrid.getGridName());
+ binding.refreshRecycler.showLoading();
+ currentPageIndex = 1;
+ requestData(false);
+ }).setTitleText("土地网格选择").setContentTextSize(20)
+ .setSelectOptions(0)
+ .setTitleBgColor(Color.WHITE)
+ .isRestoreItem(true)
+ .isCenterLabel(false)
+ .setOutSideColor(0x00000000)
+ .addOnCancelClickListener(view -> {
+ if (selectGrid == null) {
+ showGridNoticeMsg();
+ }
+ }).build();
+
+ landGridPickerView.setPicker(landGridData.getRecords());
+ }
+ landGridPickerView.show();
+ }
+
+ private void requestData(boolean loadmore) {
+ UserInfoEntity userInfo = AppConfig.getInstance().getUserInfo();
+ RxHttpNoBodyParam http;
+ if (userInfo.isAdmin()) {
+ http = RxHttp.get(Api.INSPECTION_LIST_ADMIN);
+ } else {
+ http = RxHttp.get(Api.INSPECTION_LIST_GENERAL);
+ }
+ if (selectType != null && !TextUtils.isEmpty(selectType.getDictValue())) {
+ http.add("inspectionTypeCode", selectType.getDictValue());
+ }
+ http.add("gridId", selectGrid.getId())
+ .add("current", currentPageIndex)
+ .add("size", Api.SIZE_PAGE)
+ .asResponse(InspectionListEntity.class)
+ .as(RxLife.asOnMain(this))
+ .subscribe(data -> {
+ if (loadmore) {
+ binding.refreshRecycler.finishLoadMore();
+ }
+ if (!ArrayUtil.isEmpty(data.getRecords())) {
+ if (loadmore) {
+ mAdapter.addData(data.getRecords());
+ } else {
+ mAdapter.setNewData(data.getRecords());
+ }
+ currentPageIndex += 1;
+ if (ArrayUtil.size(data.getRecords()) < Api.SIZE_PAGE) {
+ binding.refreshRecycler.setNoMoreData(true);
+ } else {
+ binding.refreshRecycler.setNoMoreData(false);
+ }
+ binding.refreshRecycler.showContent();
+ } else {
+ binding.refreshRecycler.showError();
+ binding.refreshRecycler.setNoMoreData(true);
+ }
+ }, (OnError) error -> {
+ binding.refreshRecycler.showError();
+ binding.refreshRecycler.setNoMoreData(true);
+ ToastUtil.showLongToast(error.getErrorMsg());
+ });
+ }
+
+ private class InspectionListAdapter extends BaseQuickAdapter {
+
+ public InspectionListAdapter() {
+ super(R.layout.item_inspection);
+ }
+
+ @Override
+ protected void convert(@NonNull BaseViewHolder holder, InspectionListEntity.RecordsEntity entity) {
+ holder.setText(R.id.tvName, entity.getTaskName());
+ holder.setText(R.id.tvType, entity.getInspectionType());
+ holder.setText(R.id.tvStatus, entity.getInspectionStatusName());
+ holder.setText(R.id.tvTaskCode, "任务编号:" + entity.getTaskCode());
+ holder.setText(R.id.tvTaskMembers, entity.getTaskMembers());
+ holder.setText(R.id.tvTaskTarget, entity.getInspectionTarget());
+ if (entity.getInspectionStatus().equals("-1")) {
+ holder.setBackgroundRes(R.id.tvStatus, R.drawable.bg_container_light_green_raduis_2);
+ holder.setTextColor(R.id.tvStatus, getResColor(R.color.color_txt_green));
+ } else if (entity.getInspectionStatus().equals("00")) {
+ holder.setBackgroundRes(R.id.tvStatus, R.drawable.bg_container_light_blue_raduis_2);
+ holder.setTextColor(R.id.tvStatus, getResColor(R.color.color_txt_blue));
+ } else if (entity.getInspectionStatus().equals("01")) {
+ holder.setBackgroundRes(R.id.tvStatus, R.drawable.bg_container_light_orange_raduis_2);
+ holder.setTextColor(R.id.tvStatus, getResColor(R.color.color_txt_orange));
+ } else if (entity.getInspectionStatus().equals("02")) {
+ holder.setBackgroundRes(R.id.tvStatus, R.drawable.bg_container_light_gray_raduis_2);
+ holder.setTextColor(R.id.tvStatus, getResColor(R.color.color_tv_content));
+ }
+
+ }
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onMessageReceive(EventMessage message) {
+ if (null != message && !TextUtils.isEmpty(message.getLabel())) {
+ if (EventConstant.REFRESH_LIST.equals(message.getLabel())) {
+ binding.refreshRecycler.showLoading();
+ currentPageIndex = 1;
+ requestData(false);
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ EventBus.getDefault().unregister(this);
+ super.onDestroy();
+ }
+}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/PlantPlanActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/PlantPlanActivity.java
index 4ff8395..57b370c 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/PlantPlanActivity.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/PlantPlanActivity.java
@@ -92,19 +92,13 @@ public class PlantPlanActivity extends BaseActivity {
showRegionDialog();
}
});
- binding.layoutGrid.setOnClickListener(new SingleClickListener() {
- @Override
- protected void onSingleClick(View v) {
- showLandGridDialog();
- }
- });
binding.layoutPlanSummarize.setOnClickListener(new SingleClickListener() {
@Override
protected void onSingleClick(View v) {
goList();
}
});
- binding.layoutPlanSummarize.setOnClickListener(new SingleClickListener() {
+ binding.layoutGridProgress.setOnClickListener(new SingleClickListener() {
@Override
protected void onSingleClick(View v) {
goList();
@@ -122,16 +116,13 @@ public class PlantPlanActivity extends BaseActivity {
@Override
protected void onApplyData() {
getRegionData();
- if (selectRegion != null) {
- getGridData();
- }
if (selectRegion != null && selectGrid != null) {
getPlantPlanData();
}
}
private void showRegionNoticeMsg() {
- MessageDialog.show("选择区域", "请先选择区域信息", "确定", "取消")
+ MessageDialog.show("选择区域", "请先选择网格区域信息", "确定", "取消")
.setOkButton((baseDialog, v1) -> {
showRegionDialog();
return false;
@@ -148,7 +139,7 @@ public class PlantPlanActivity extends BaseActivity {
.as(RxLife.asOnMain(this))
.subscribe(data -> {
landAreaRegionData = data;
- if (selectRegion == null) {
+ if (selectRegion == null || selectGrid == null) {
showRegionNoticeMsg();
}
}, (OnError) error -> showToast(error.getErrorMsg()));
@@ -163,12 +154,10 @@ public class PlantPlanActivity extends BaseActivity {
hideLoading();
if (ArrayUtil.isEmpty(data.getRecords())) {
showToast("当前区域下没有网格,请重新选择");
- binding.layoutGrid.postDelayed(() -> showRegionDialog(), 500);
+ binding.layoutRegion.postDelayed(() -> showRegionDialog(), 500);
} else {
landGridData = data;
- if (selectGrid == null) {
- showLandGridDialog();
- }
+ showLandGridDialog();
}
}, (OnError) error -> showToast(error.getErrorMsg()));
}
@@ -185,7 +174,6 @@ public class PlantPlanActivity extends BaseActivity {
Hawk.put(Constant.SELECT_REGION, selectRegion);
selectGrid = null;
Hawk.delete(Constant.SELECT_GRID);
- showLoading();
getGridData();
}).setTitleText("土地区域选择").setContentTextSize(20)
.setSelectOptions(0, 0)
@@ -249,8 +237,7 @@ public class PlantPlanActivity extends BaseActivity {
}
private void initView() {
- setText(binding.tvRegion, selectRegion.getAreaName());
- setText(binding.tvGrid, selectGrid.getGridName());
+ setText(binding.tvRegion, selectRegion.getAreaName() + "-" + selectGrid.getGridName());
setText(binding.tvYear, DateUtils.getCurrentYear() + "年种植计划");
setText(binding.tvPlanArea, String.valueOf(mData.getTotal().getTotalPlanArea()));
setText(binding.tvRealArea, String.valueOf(mData.getTotal().getTotalActualArea()));
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/PlantPlanDetailActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/PlantPlanDetailActivity.java
index 77f4c38..f93f75a 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/PlantPlanDetailActivity.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/PlantPlanDetailActivity.java
@@ -8,9 +8,11 @@ import com.tairui.gov_affairs_cloud.entity.Api;
import com.tairui.gov_affairs_cloud.http.OnError;
import com.tairui.gov_affairs_cloud.ui.land.entity.PlantPlanDetailEntity;
import com.tairui.gov_affairs_cloud.util.AppUtil;
+import com.tairui.gov_affairs_cloud.util.IntentUtil;
import com.tairui.gov_affairs_cloud.util.SingleClickListener;
import com.tairui.gov_affairs_cloud.util.glide.GlideLoader;
+import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import rxhttp.RxHttp;
@@ -44,13 +46,17 @@ public class PlantPlanDetailActivity extends BaseActivity {
- showRegionDialog();
- return false;
- }).setCancelButton((dialog, v) -> {
- finish();
- return false;
- });
- }
-
private void getRegionData() {
RxHttp.get(Api.LAND_AREA_REGION)
.add("areaCode", "530926")
@@ -170,9 +156,6 @@ public class PlantPlanListActivity extends BaseActivity {
landAreaRegionData = data;
- if (selectRegion == null) {
- showRegionNoticeMsg();
- }
}, (OnError) error -> showToast(error.getErrorMsg()));
}
@@ -216,12 +199,10 @@ public class PlantPlanListActivity extends BaseActivity showRegionDialog(), 500);
+ binding.layoutRegion.postDelayed(() -> showRegionDialog(), 500);
} else {
landGridData = data;
- if (selectGrid == null) {
- showLandGridDialog();
- }
+ showLandGridDialog();
}
}, (OnError) error -> showToast(error.getErrorMsg()));
}
@@ -238,13 +219,12 @@ public class PlantPlanListActivity extends BaseActivity finish())
.build();
@@ -266,6 +246,7 @@ public class PlantPlanListActivity extends BaseActivity {
selectGrid = landGridData.getRecords().get(options1);
+ setText(binding.tvRegion, selectRegion.getAreaName() + "-" + selectGrid.getGridName());
Hawk.put(Constant.SELECT_GRID, selectGrid);
binding.refreshRecycler.showLoading();
currentPageIndex = 1;
@@ -372,4 +353,20 @@ public class PlantPlanListActivity extends BaseActivity records;
+ @SerializedName("orders")
+ private List> orders;
+
+ public Integer getTotal() {
+ return total;
+ }
+
+ public void setTotal(Integer total) {
+ this.total = total;
+ }
+
+ public Integer getSize() {
+ return size;
+ }
+
+ public void setSize(Integer size) {
+ this.size = size;
+ }
+
+ public Integer getCurrent() {
+ return current;
+ }
+
+ public void setCurrent(Integer current) {
+ this.current = current;
+ }
+
+ public Boolean isOptimizeCountSql() {
+ return optimizeCountSql;
+ }
+
+ public void setOptimizeCountSql(Boolean optimizeCountSql) {
+ this.optimizeCountSql = optimizeCountSql;
+ }
+
+ public Boolean isSearchCount() {
+ return searchCount;
+ }
+
+ public void setSearchCount(Boolean searchCount) {
+ this.searchCount = searchCount;
+ }
+
+ public Object getMaxLimit() {
+ return maxLimit;
+ }
+
+ public void setMaxLimit(Object maxLimit) {
+ this.maxLimit = maxLimit;
+ }
+
+ public Object getCountId() {
+ return countId;
+ }
+
+ public void setCountId(Object countId) {
+ this.countId = countId;
+ }
+
+ public Integer getPages() {
+ return pages;
+ }
+
+ public void setPages(Integer pages) {
+ this.pages = pages;
+ }
+
+ public List getRecords() {
+ return records;
+ }
+
+ public void setRecords(List records) {
+ this.records = records;
+ }
+
+ public List> getOrders() {
+ return orders;
+ }
+
+ public void setOrders(List> orders) {
+ this.orders = orders;
+ }
+
+ public static class RecordsEntity implements Serializable {
+ @SerializedName("id")
+ private String id;
+ @SerializedName("taskCode")
+ private String taskCode;
+ @SerializedName("taskName")
+ private String taskName;
+ @SerializedName("taskMembers")
+ private String taskMembers;
+ @SerializedName("inspectionTypeCode")
+ private String inspectionTypeCode;
+ @SerializedName("inspectionType")
+ private String inspectionType;
+ @SerializedName("notes")
+ private String notes;
+ @SerializedName("inspectionTarget")
+ private String inspectionTarget;
+ @SerializedName("isIllegal")
+ private Object isIllegal;
+ @SerializedName("inspectionStatus")
+ private String inspectionStatus;
+ @SerializedName("inspectionStatusName")
+ private String inspectionStatusName;
+ @SerializedName("inspectionSituation")
+ private Object inspectionSituation;
+ @SerializedName("inspectionUsers")
+ private List inspectionUsers;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getTaskCode() {
+ return taskCode;
+ }
+
+ public void setTaskCode(String taskCode) {
+ this.taskCode = taskCode;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public String getTaskMembers() {
+ return taskMembers;
+ }
+
+ public void setTaskMembers(String taskMembers) {
+ this.taskMembers = taskMembers;
+ }
+
+ public String getInspectionTypeCode() {
+ return inspectionTypeCode;
+ }
+
+ public void setInspectionTypeCode(String inspectionTypeCode) {
+ this.inspectionTypeCode = inspectionTypeCode;
+ }
+
+ public String getInspectionType() {
+ return inspectionType;
+ }
+
+ public void setInspectionType(String inspectionType) {
+ this.inspectionType = inspectionType;
+ }
+
+ public String getNotes() {
+ return notes;
+ }
+
+ public void setNotes(String notes) {
+ this.notes = notes;
+ }
+
+ public String getInspectionTarget() {
+ return inspectionTarget;
+ }
+
+ public void setInspectionTarget(String inspectionTarget) {
+ this.inspectionTarget = inspectionTarget;
+ }
+
+ public Object getIsIllegal() {
+ return isIllegal;
+ }
+
+ public void setIsIllegal(Object isIllegal) {
+ this.isIllegal = isIllegal;
+ }
+
+ public String getInspectionStatus() {
+ return inspectionStatus;
+ }
+
+ public void setInspectionStatus(String inspectionStatus) {
+ this.inspectionStatus = inspectionStatus;
+ }
+
+ public String getInspectionStatusName() {
+ return inspectionStatusName;
+ }
+
+ public void setInspectionStatusName(String inspectionStatusName) {
+ this.inspectionStatusName = inspectionStatusName;
+ }
+
+ public Object getInspectionSituation() {
+ return inspectionSituation;
+ }
+
+ public void setInspectionSituation(Object inspectionSituation) {
+ this.inspectionSituation = inspectionSituation;
+ }
+
+ public List getInspectionUsers() {
+ return inspectionUsers;
+ }
+
+ public void setInspectionUsers(List inspectionUsers) {
+ this.inspectionUsers = inspectionUsers;
+ }
+
+ public static class InspectionUsersEntity implements Serializable{
+ @SerializedName("createTime")
+ private String createTime;
+ @SerializedName("createUser")
+ private String createUser;
+ @SerializedName("updateTime")
+ private Object updateTime;
+ @SerializedName("updateUser")
+ private Object updateUser;
+ @SerializedName("tenantId")
+ private Integer tenantId;
+ @SerializedName("id")
+ private Long id;
+ @SerializedName("inspectionId")
+ private Long inspectionId;
+ @SerializedName("userId")
+ private Long userId;
+ @SerializedName("userName")
+ private String userName;
+ @SerializedName("deleteFlag")
+ private String deleteFlag;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public Object getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Object updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Object getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(Object updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public Integer getTenantId() {
+ return tenantId;
+ }
+
+ public void setTenantId(Integer tenantId) {
+ this.tenantId = tenantId;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getInspectionId() {
+ return inspectionId;
+ }
+
+ public void setInspectionId(Long inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public Long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Long userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getDeleteFlag() {
+ return deleteFlag;
+ }
+
+ public void setDeleteFlag(String deleteFlag) {
+ this.deleteFlag = deleteFlag;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/PlantPlanDetailEntity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/PlantPlanDetailEntity.java
index f0b8378..846119c 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/PlantPlanDetailEntity.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/PlantPlanDetailEntity.java
@@ -1,8 +1,10 @@
package com.tairui.gov_affairs_cloud.ui.land.entity;
+import java.io.Serializable;
+
import com.google.gson.annotations.SerializedName;
-public class PlantPlanDetailEntity {
+public class PlantPlanDetailEntity implements Serializable {
@SerializedName("regionCode")
private String regionCode;
@@ -105,7 +107,7 @@ public class PlantPlanDetailEntity {
this.currentProgress = currentProgress;
}
- public static class PlanParametersEntity {
+ public static class PlanParametersEntity implements Serializable{
@SerializedName("plantingArea")
private Double plantingArea;
@SerializedName("plantingMonths")
@@ -148,7 +150,7 @@ public class PlantPlanDetailEntity {
}
}
- public static class ActualParametersEntity {
+ public static class ActualParametersEntity implements Serializable{
@SerializedName("plantingArea")
private Double plantingArea;
@SerializedName("plantingMonths")
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/my/MyFragment.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/my/MyFragment.java
index ffa1cb8..e38502e 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/my/MyFragment.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/my/MyFragment.java
@@ -4,8 +4,10 @@ import com.kongzue.dialogx.dialogs.MessageDialog;
import com.orhanobut.hawk.Hawk;
import com.rxjava.rxlife.RxLife;
import com.tairui.gov_affairs_cloud.base.BaseFragment;
+import com.tairui.gov_affairs_cloud.config.AppConfig;
import com.tairui.gov_affairs_cloud.databinding.FragmentMyBinding;
import com.tairui.gov_affairs_cloud.entity.Api;
+import com.tairui.gov_affairs_cloud.entity.Constant;
import com.tairui.gov_affairs_cloud.http.OnError;
import com.tairui.gov_affairs_cloud.ui.login.LoginActivity;
import com.tairui.gov_affairs_cloud.ui.my.entity.UserInfoEntity;
@@ -38,7 +40,8 @@ public class MyFragment extends BaseFragment {
protected void onSingleClick(View v) {
MessageDialog.show("安全退出", "确定要退出登录吗?", "确定", "取消")
.setOkButton((baseDialog, v1) -> {
- Hawk.put("token","");
+ Hawk.delete(Constant.TOKEN);
+ Hawk.delete(Constant.USER_INFO);
IntentUtil.startActivity(mContext, LoginActivity.class, null);
getActivity().finish();
return false;
@@ -49,10 +52,21 @@ public class MyFragment extends BaseFragment {
@Override
protected void onApplyData() {
+ if (AppConfig.getInstance().getUserInfo() == null) {
+ getUserInfo();
+ } else {
+ UserInfoEntity userInfo = AppConfig.getInstance().getUserInfo();
+ initView(userInfo);
+ }
+ }
+
+ private void getUserInfo() {
RxHttp.get(Api.USER_INFO)
.asResponse(UserInfoEntity.class)
.as(RxLife.asOnMain(this))
.subscribe(data -> {
+ AppConfig.getInstance().setUserInfo(data);
+ Hawk.put(Constant.USER_INFO, data);
initView(data);
}, (OnError) error -> {
showToast(error.getErrorMsg());
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/my/entity/UserInfoEntity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/my/entity/UserInfoEntity.java
index 1878ed1..847c3f1 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/my/entity/UserInfoEntity.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/my/entity/UserInfoEntity.java
@@ -6,94 +6,104 @@ import com.google.gson.annotations.SerializedName;
public class UserInfoEntity implements Serializable {
- @SerializedName("username")
- private String username;
- @SerializedName("organization")
- private Object organization;
- @SerializedName("departmental")
- private String departmental;
- @SerializedName("phone")
- private String phone;
- @SerializedName("headPic")
- private String headPic;
- @SerializedName("no")
- private String no;
- @SerializedName("sex")
- private String sex;
- @SerializedName("email")
- private String email;
- @SerializedName("todoCount")
- private Integer todoCount;
+ @SerializedName("username")
+ private String username;
+ @SerializedName("organization")
+ private Object organization;
+ @SerializedName("departmental")
+ private String departmental;
+ @SerializedName("phone")
+ private String phone;
+ @SerializedName("headPic")
+ private String headPic;
+ @SerializedName("no")
+ private String no;
+ @SerializedName("sex")
+ private String sex;
+ @SerializedName("email")
+ private String email;
+ @SerializedName("todoCount")
+ private Integer todoCount;
+ @SerializedName("admin")
+ private boolean admin;
- public String getUsername() {
- return username;
- }
+ public boolean isAdmin() {
+ return admin;
+ }
- public void setUsername(String username) {
- this.username = username;
- }
+ public void setAdmin(boolean admin) {
+ this.admin = admin;
+ }
- public Object getOrganization() {
- return organization;
- }
+ public String getUsername() {
+ return username;
+ }
- public void setOrganization(Object organization) {
- this.organization = organization;
- }
+ public void setUsername(String username) {
+ this.username = username;
+ }
- public String getDepartmental() {
- return departmental;
- }
+ public Object getOrganization() {
+ return organization;
+ }
- public void setDepartmental(String departmental) {
- this.departmental = departmental;
- }
+ public void setOrganization(Object organization) {
+ this.organization = organization;
+ }
- public String getPhone() {
- return phone;
- }
+ public String getDepartmental() {
+ return departmental;
+ }
- public void setPhone(String phone) {
- this.phone = phone;
- }
+ public void setDepartmental(String departmental) {
+ this.departmental = departmental;
+ }
- public String getHeadPic() {
- return headPic;
- }
+ public String getPhone() {
+ return phone;
+ }
- public void setHeadPic(String headPic) {
- this.headPic = headPic;
- }
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
- public String getNo() {
- return no;
- }
+ public String getHeadPic() {
+ return headPic;
+ }
- public void setNo(String no) {
- this.no = no;
- }
+ public void setHeadPic(String headPic) {
+ this.headPic = headPic;
+ }
- public String getSex() {
- return sex;
- }
+ public String getNo() {
+ return no;
+ }
- public void setSex(String sex) {
- this.sex = sex;
- }
+ public void setNo(String no) {
+ this.no = no;
+ }
- public String getEmail() {
- return email;
- }
+ public String getSex() {
+ return sex;
+ }
- public void setEmail(String email) {
- this.email = email;
- }
+ public void setSex(String sex) {
+ this.sex = sex;
+ }
- public Integer getTodoCount() {
- return todoCount;
- }
+ public String getEmail() {
+ return email;
+ }
- public void setTodoCount(Integer todoCount) {
- this.todoCount = todoCount;
- }
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public Integer getTodoCount() {
+ return todoCount;
+ }
+
+ public void setTodoCount(Integer todoCount) {
+ this.todoCount = todoCount;
+ }
}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/workspace/WorkSpaceFragment.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/workspace/WorkSpaceFragment.java
index 3f41ea8..f049c63 100644
--- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/workspace/WorkSpaceFragment.java
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/workspace/WorkSpaceFragment.java
@@ -9,6 +9,7 @@ import com.tairui.gov_affairs_cloud.R;
import com.tairui.gov_affairs_cloud.base.BaseFragment;
import com.tairui.gov_affairs_cloud.databinding.FragmentWorkspaceBinding;
import com.tairui.gov_affairs_cloud.ui.land.GridInfoActivity;
+import com.tairui.gov_affairs_cloud.ui.land.InspectionListActivity;
import com.tairui.gov_affairs_cloud.ui.land.LandActivity;
import com.tairui.gov_affairs_cloud.ui.land.LandResouceInfoActivity;
import com.tairui.gov_affairs_cloud.ui.land.PlantPlanActivity;
@@ -69,6 +70,8 @@ public class WorkSpaceFragment extends BaseFragment {
IntentUtil.startActivity(mContext, PlantPlanActivity.class);
} else if (_id == 6) {
IntentUtil.startActivity(mContext, LandResouceInfoActivity.class);
+ } else if (_id == 7) {
+ IntentUtil.startActivity(mContext, InspectionListActivity.class);
}
});
}
diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/util/DecimalDigitsInputFilter.java b/app/src/main/java/com/tairui/gov_affairs_cloud/util/DecimalDigitsInputFilter.java
new file mode 100644
index 0000000..285e496
--- /dev/null
+++ b/app/src/main/java/com/tairui/gov_affairs_cloud/util/DecimalDigitsInputFilter.java
@@ -0,0 +1,33 @@
+package com.tairui.gov_affairs_cloud.util;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import android.text.InputFilter;
+import android.text.Spanned;
+
+public class DecimalDigitsInputFilter implements InputFilter {
+ // 正则表达式,用于匹配数字和小数点
+ private Pattern mPattern;
+
+ public DecimalDigitsInputFilter() {
+ // 允许输入数字和最多一个小数点
+ mPattern = Pattern.compile("[0-9]*+(\\.[0-9]*)?");
+ }
+
+ @Override
+ public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
+ // 构建输入的文本
+ String newText = dest.subSequence(0, dstart) + source.subSequence(start, end).toString() + dest.subSequence(dend, dest.length());
+
+ // 检查是否符合正则表达式
+ Matcher matcher = mPattern.matcher(newText);
+ if (!matcher.matches()) {
+ // 不符合规则,返回空字符串,即不接受输入
+ return "";
+ }
+
+ // 符合规则,允许输入
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_container_light_gray_raduis_2.xml b/app/src/main/res/drawable/bg_container_light_gray_raduis_2.xml
new file mode 100644
index 0000000..777ae8f
--- /dev/null
+++ b/app/src/main/res/drawable/bg_container_light_gray_raduis_2.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_container_light_green_raduis_2.xml b/app/src/main/res/drawable/bg_container_light_green_raduis_2.xml
new file mode 100644
index 0000000..0c182f6
--- /dev/null
+++ b/app/src/main/res/drawable/bg_container_light_green_raduis_2.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_container_light_orange_raduis_2.xml b/app/src/main/res/drawable/bg_container_light_orange_raduis_2.xml
new file mode 100644
index 0000000..57b67e6
--- /dev/null
+++ b/app/src/main/res/drawable/bg_container_light_orange_raduis_2.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_container_white_raduis_2_gray_border.xml b/app/src/main/res/drawable/bg_container_white_raduis_2_gray_border.xml
new file mode 100644
index 0000000..9c1ff96
--- /dev/null
+++ b/app/src/main/res/drawable/bg_container_white_raduis_2_gray_border.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_plant_plan.xml b/app/src/main/res/layout/activity_add_plant_plan.xml
index 312089b..edbc018 100644
--- a/app/src/main/res/layout/activity_add_plant_plan.xml
+++ b/app/src/main/res/layout/activity_add_plant_plan.xml
@@ -56,46 +56,6 @@
android:paddingLeft="16dp"
android:paddingRight="16dp">
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_edit_plant_plan.xml b/app/src/main/res/layout/activity_edit_plant_plan.xml
new file mode 100644
index 0000000..d140ccc
--- /dev/null
+++ b/app/src/main/res/layout/activity_edit_plant_plan.xml
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_inspection_detail.xml b/app/src/main/res/layout/activity_inspection_detail.xml
new file mode 100644
index 0000000..6b3123c
--- /dev/null
+++ b/app/src/main/res/layout/activity_inspection_detail.xml
@@ -0,0 +1,342 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_inspection_list.xml b/app/src/main/res/layout/activity_inspection_list.xml
new file mode 100644
index 0000000..3ba96b8
--- /dev/null
+++ b/app/src/main/res/layout/activity_inspection_list.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_plant_plan.xml b/app/src/main/res/layout/activity_plant_plan.xml
index 946bccd..308a7e0 100644
--- a/app/src/main/res/layout/activity_plant_plan.xml
+++ b/app/src/main/res/layout/activity_plant_plan.xml
@@ -54,68 +54,37 @@
android:layout_marginRight="16dp"
android:orientation="vertical">
+
+ android:gravity="left|center_vertical"
+ android:paddingTop="12dp"
+ android:paddingBottom="12dp">
-
+
+
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:textColor="@color/color_txt_black"
+ android:textSize="14sp"
+ tools:text="耿马镇白马社区耿马镇白马社区耿马镇白马社区耿马镇白马社区" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/activity_plant_plan_list.xml b/app/src/main/res/layout/activity_plant_plan_list.xml
index 35f865b..330b7a7 100644
--- a/app/src/main/res/layout/activity_plant_plan_list.xml
+++ b/app/src/main/res/layout/activity_plant_plan_list.xml
@@ -39,69 +39,37 @@
+ android:layout_marginLeft="16dp"
+ android:layout_marginRight="16dp"
+ android:gravity="left|center_vertical"
+ android:paddingTop="12dp"
+ android:paddingBottom="12dp">
-
+
+
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:textColor="@color/color_txt_black"
+ android:textSize="14sp"
+ tools:text="耿马镇白马社区耿马镇白马社区耿马镇白马社区耿马镇白马社区" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/item_inspection.xml b/app/src/main/res/layout/item_inspection.xml
new file mode 100644
index 0000000..f143913
--- /dev/null
+++ b/app/src/main/res/layout/item_inspection.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_cancel.png b/app/src/main/res/mipmap-xxhdpi/ic_cancel.png
new file mode 100644
index 0000000..4221208
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_cancel.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_edit_white.png b/app/src/main/res/mipmap-xxhdpi/ic_edit_white.png
new file mode 100644
index 0000000..c969dfb
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_edit_white.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_location_small.png b/app/src/main/res/mipmap-xxhdpi/ic_location_small.png
new file mode 100644
index 0000000..1aec373
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_location_small.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_member.png b/app/src/main/res/mipmap-xxhdpi/ic_member.png
new file mode 100644
index 0000000..ddd9bfb
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_member.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_publish_white.png b/app/src/main/res/mipmap-xxhdpi/ic_publish_white.png
new file mode 100644
index 0000000..022b5e2
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_publish_white.png differ
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 6e695b0..db9ae06 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -9,6 +9,8 @@
#35353F
#666666
#444444
+ @color/color_blue
+ #FFA423
#FF4E3D
#2AD848
#999999