diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c455f09..f4655e1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -213,6 +213,21 @@ android:configChanges="orientation|screenSize|keyboardHidden" android:exported="false" android:screenOrientation="portrait" /> + + + { + + @Override + protected Class getBindingClass() { + return ActivityInputGoodsDetailBinding.class; + } + + @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/input/UtilizationControlActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/UtilizationControlActivity.java new file mode 100644 index 0000000..52a4192 --- /dev/null +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/UtilizationControlActivity.java @@ -0,0 +1,261 @@ +package com.tairui.gov_affairs_cloud.ui.input; + +import java.util.ArrayList; +import java.util.List; + +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.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.databinding.ActivityUtilizationControlListBinding; +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.input.entity.UtilizationControlEntity; +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.IntentUtil; +import com.tairui.gov_affairs_cloud.util.SingleClickListener; + +import android.graphics.Color; +import android.os.Bundle; +import android.view.View; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import rxhttp.RxHttp; + +public class UtilizationControlActivity extends BaseActivity { + + private LandAreaRegionEntity selectRegion; + private LandGridEntity.RecordsEntity selectGrid; + + private List landAreaRegionData; + private LandGridEntity landGridData; + + private OptionsPickerView landRegionPickerView; + private OptionsPickerView landGridPickerView; + + private List mData; + private UtilizationControlAdapter adapter; + + @Override + protected Class getBindingClass() { + return ActivityUtilizationControlListBinding.class; + } + + @Override + protected void onQueryArguments() { + 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 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(); + } + }); + } + + @Override + protected void onFindView(Bundle savedInstanceState) { + setText(binding.tvRegion, selectRegion.getAreaName() + "-" + selectGrid.getGridName()); + binding.refreshRecycler.setLayoutManager(new LinearLayoutManager(mContext)); + adapter = new UtilizationControlAdapter(); + binding.refreshRecycler.setAdapter(adapter); + binding.refreshRecycler.setEnableRefresh(false); + binding.refreshRecycler.setNoMoreData(true); + adapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { + IntentUtil.startActivity(mContext, UtilizationControlDetailActivity.class); + }); + } + + @Override + protected void onApplyData() { + getRegionData(); + requestData(); + } + + private void showRegionNoticeMsg() { + MessageDialog.show("选择区域", "请先选择网格区域信息", "确定", "取消") + .setOkButton((baseDialog, v1) -> { + showRegionDialog(); + return false; + }).setCancelButton((dialog, v) -> { + finish(); + return 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 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) //是否只显示中间选中项的label文字,false则每项item全部都带有label。 + .setOutSideColor(0x00000000) //设置外部遮罩颜色 + .addOnCancelClickListener(view -> { + if (selectRegion == null) { + 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); + }).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() { + mData = new ArrayList<>(); + UtilizationControlEntity item1 = new UtilizationControlEntity(); + item1.setImg(R.mipmap.pic_utilization_control_1); + item1.setName("生物有机肥"); + item1.setCategory("化肥"); + item1.setUserName("赵宇"); + item1.setUserPhone("13610402035"); + item1.setAddress("耿马镇新城村388号"); + item1.setDate("2025-05-13"); + mData.add(item1); + + UtilizationControlEntity item2 = new UtilizationControlEntity(); + item2.setImg(R.mipmap.pic_utilization_control_2); + item2.setName("精草安磷"); + item2.setCategory("农药"); + item2.setUserName("李腾峰"); + item2.setUserPhone("18454646524"); + item2.setAddress("贺派乡永平村68号"); + item2.setDate("2025-05-13"); + mData.add(item2); + + UtilizationControlEntity item3 = new UtilizationControlEntity(); + item3.setImg(R.mipmap.pic_utilization_control_3); + item3.setName("苯醚甲环唑"); + item3.setCategory("农药"); + item3.setUserName("胡一"); + item3.setUserPhone("19548422562"); + item3.setAddress("孟定镇河西村154号"); + item3.setDate("2025-05-13"); + mData.add(item3); + + UtilizationControlEntity item4 = new UtilizationControlEntity(); + item4.setImg(R.mipmap.pic_utilization_control_4); + item4.setName("通用型菌立清"); + item4.setCategory("农药"); + item4.setUserName("胡一"); + item4.setUserPhone("19548422562"); + item4.setAddress("孟定镇河西村154号"); + item4.setDate("2025-05-13"); + mData.add(item4); + + adapter.setNewData(mData); + binding.refreshRecycler.showContent(); + } + + private class UtilizationControlAdapter extends BaseQuickAdapter { + + public UtilizationControlAdapter() { + super(R.layout.item_list_utilization_control); + } + + @Override + protected void convert(@NonNull BaseViewHolder holder, UtilizationControlEntity entity) { + holder.setImageResource(R.id.img, entity.getImg()); + holder.setText(R.id.title, entity.getName()); + holder.setText(R.id.user, entity.getUserName() + " " + entity.getUserPhone()); + holder.setText(R.id.address, entity.getAddress()); + holder.setText(R.id.date, entity.getDate()); + } + } +} diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/UtilizationControlDetailActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/UtilizationControlDetailActivity.java new file mode 100644 index 0000000..2dbb882 --- /dev/null +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/UtilizationControlDetailActivity.java @@ -0,0 +1,25 @@ +package com.tairui.gov_affairs_cloud.ui.input; + +import com.tairui.gov_affairs_cloud.base.BaseActivity; +import com.tairui.gov_affairs_cloud.databinding.ActivityUtilizationControlDetailBinding; +import com.tairui.gov_affairs_cloud.util.SingleClickListener; + +import android.view.View; + +public class UtilizationControlDetailActivity extends BaseActivity { + + @Override + protected Class getBindingClass() { + return ActivityUtilizationControlDetailBinding.class; + } + + @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/input/entity/UtilizationControlEntity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/entity/UtilizationControlEntity.java new file mode 100644 index 0000000..fa00736 --- /dev/null +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/entity/UtilizationControlEntity.java @@ -0,0 +1,67 @@ +package com.tairui.gov_affairs_cloud.ui.input.entity; + +public class UtilizationControlEntity { + private int img; + private String name; + private String category; + private String userName; + private String userPhone; + private String address; + private String date; + + public int getImg() { + return img; + } + + public void setImg(int img) { + this.img = img; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserPhone() { + return userPhone; + } + + public void setUserPhone(String userPhone) { + this.userPhone = userPhone; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } +} diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/fragment/InputGoodsFragment.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/fragment/InputGoodsFragment.java index 19cbff3..36b8429 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/fragment/InputGoodsFragment.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/input/fragment/InputGoodsFragment.java @@ -14,9 +14,11 @@ 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.input.InputGoodsDetailActivity; import com.tairui.gov_affairs_cloud.ui.input.entity.InputGoodsListEntity; import com.tairui.gov_affairs_cloud.util.AppUtil; import com.tairui.gov_affairs_cloud.util.ArrayUtil; +import com.tairui.gov_affairs_cloud.util.IntentUtil; import com.tairui.gov_affairs_cloud.util.ToastUtil; import com.tairui.gov_affairs_cloud.util.glide.GlideLoader; import com.tairui.gov_affairs_cloud.widget.RefreshRecyclerView; @@ -108,9 +110,7 @@ public class InputGoodsFragment extends BaseFragment { - // Bundle bundle = new Bundle(); - // bundle.putSerializable("data", (Serializable) adapter.getItem(i)); - // IntentUtil.startActivity(mContext, LandInfoDetailActivity.class, bundle); + IntentUtil.startActivity(mContext, InputGoodsDetailActivity.class); }); } 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 4d201b2..5c26467 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.input.InputGoodsListActivity; +import com.tairui.gov_affairs_cloud.ui.input.UtilizationControlActivity; import com.tairui.gov_affairs_cloud.ui.land.GridInfoActivity; import com.tairui.gov_affairs_cloud.ui.land.IllegalListActivity; import com.tairui.gov_affairs_cloud.ui.land.InspectionListActivity; @@ -78,6 +79,8 @@ public class WorkSpaceFragment extends BaseFragment { IntentUtil.startActivity(mContext, IllegalListActivity.class); } else if (_id == 9) { IntentUtil.startActivity(mContext, InputGoodsListActivity.class); + } else if (_id == 11) { + IntentUtil.startActivity(mContext, UtilizationControlActivity.class); } }); } @@ -141,7 +144,7 @@ public class WorkSpaceFragment extends BaseFragment { workSpaceEntities.add(item); item = new WorkSpaceEntity(); - item.setName("投入品管理"); + item.setName("农产品种植管理"); funcs = new ArrayList<>(); itemFunc = new WorkSpaceEntity.FuncsEntity(); @@ -174,11 +177,11 @@ public class WorkSpaceFragment extends BaseFragment { // itemFunc.setIcon(R.mipmap.ic_workspace_func_13); // funcs.add(itemFunc); - itemFunc = new WorkSpaceEntity.FuncsEntity(); - itemFunc.setId(14); - itemFunc.setName("知识库"); - itemFunc.setIcon(R.mipmap.ic_workspace_func_14); - funcs.add(itemFunc); +// itemFunc = new WorkSpaceEntity.FuncsEntity(); +// itemFunc.setId(14); +// itemFunc.setName("知识库"); +// itemFunc.setIcon(R.mipmap.ic_workspace_func_14); +// funcs.add(itemFunc); itemFunc = new WorkSpaceEntity.FuncsEntity(); itemFunc.setId(3); diff --git a/app/src/main/res/layout/activity_input_goods_detail.xml b/app/src/main/res/layout/activity_input_goods_detail.xml new file mode 100644 index 0000000..6ef1b38 --- /dev/null +++ b/app/src/main/res/layout/activity_input_goods_detail.xml @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 308a7e0..0a8c94d 100644 --- a/app/src/main/res/layout/activity_plant_plan.xml +++ b/app/src/main/res/layout/activity_plant_plan.xml @@ -26,7 +26,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_utilization_control_list.xml b/app/src/main/res/layout/activity_utilization_control_list.xml new file mode 100644 index 0000000..a3091f6 --- /dev/null +++ b/app/src/main/res/layout/activity_utilization_control_list.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_list_utilization_control.xml b/app/src/main/res/layout/item_list_utilization_control.xml new file mode 100644 index 0000000..9afec00 --- /dev/null +++ b/app/src/main/res/layout/item_list_utilization_control.xml @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/mipmap-xxhdpi/pic_input_1.png b/app/src/main/res/mipmap-xxhdpi/pic_input_1.png new file mode 100644 index 0000000..27211fb Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_input_1.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_input_2.png b/app/src/main/res/mipmap-xxhdpi/pic_input_2.png new file mode 100644 index 0000000..bb346c6 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_input_2.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_1.png b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_1.png new file mode 100644 index 0000000..90bc2cd Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_1.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_2.png b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_2.png new file mode 100644 index 0000000..f41b7ef Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_2.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_3.png b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_3.png new file mode 100644 index 0000000..82c7d37 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_3.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_4.png b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_4.png new file mode 100644 index 0000000..d871c67 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_4.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_5.png b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_5.png new file mode 100644 index 0000000..ee713e8 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_5.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_6.png b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_6.png new file mode 100644 index 0000000..e33d81c Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_utilization_control_6.png differ