From c5e71ed6b5253d04c0dd3f0147e4bf751458eb08 Mon Sep 17 00:00:00 2001 From: tongchao Date: Mon, 9 Jun 2025 16:41:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=9F=E5=9C=B0=E5=B7=A1=E6=9F=A5=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 5 + .../tairui/gov_affairs_cloud/entity/Api.java | 2 + .../ui/home/HomeFragment.java | 3 +- .../ui/land/AddInspectionActivity.java | 202 +++++++++++++++++- .../ui/land/InspectionListActivity.java | 6 + .../ui/land/entity/GridMemberEntity.java | 155 ++++++++++++++ .../ui/login/LoginActivity.java | 5 + .../gov_affairs_cloud/ui/my/MyFragment.java | 3 +- .../ui/workspace/WorkSpaceFragment.java | 108 +++++----- .../res/layout/activity_add_inspection.xml | 8 +- app/src/main/res/layout/activity_login.xml | 2 - app/src/main/res/layout/fragment_ai.xml | 8 +- .../main/res/layout/item_select_member.xml | 28 +++ .../main/res/mipmap-xxhdpi/ic_cancel_gray.png | Bin 0 -> 710 bytes 14 files changed, 471 insertions(+), 64 deletions(-) create mode 100644 app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/entity/GridMemberEntity.java create mode 100644 app/src/main/res/layout/item_select_member.xml create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_cancel_gray.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c976461..0e1d566 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -173,6 +173,11 @@ android:configChanges="orientation|screenSize|keyboardHidden" android:exported="false" android:screenOrientation="portrait" /> + { private void initView(HomeEntity data) { setText(binding.tvTodoCount, data.getTodoCount().toString()); setText(binding.userNameTv, data.getUserInfo().getUsername()); - setText(binding.userDepartmentTv, data.getUserInfo().getOrganization() + " - " + data.getUserInfo().getDepartmental()); + setText(binding.userDepartmentTv, data.getUserInfo().getDepartmental()); + // setText(binding.userDepartmentTv, data.getUserInfo().getOrganization() + " - " + data.getUserInfo().getDepartmental()); setText(binding.userTelTv, data.getUserInfo().getPhone() + " " + data.getUserInfo().getNo()); GlideLoader.loadCircle(binding.userHeadIv, data.getUserInfo().getHeadPic()); funcAdapter.setNewData(data.getFunction()); diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddInspectionActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddInspectionActivity.java index 2b1e67c..d52c661 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddInspectionActivity.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/land/AddInspectionActivity.java @@ -1,14 +1,52 @@ package com.tairui.gov_affairs_cloud.ui.land; +import java.util.ArrayList; +import java.util.List; + +import org.greenrobot.eventbus.EventBus; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.google.gson.JsonArray; +import com.kongzue.dialogx.dialogs.BottomMenu; +import com.kongzue.dialogx.dialogs.PopMenu; +import com.kongzue.dialogx.dialogs.PopTip; +import com.kongzue.dialogx.interfaces.OnMenuButtonClickListener; +import com.kongzue.dialogx.interfaces.OnMenuItemSelectListener; +import com.kongzue.dialogx.util.ItemDivider; +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.ActivityAddInspectionBinding; +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.DictDataEntity; +import com.tairui.gov_affairs_cloud.ui.land.entity.GridMemberEntity; +import com.tairui.gov_affairs_cloud.util.ArrayUtil; +import com.tairui.gov_affairs_cloud.util.DensityUtils; import com.tairui.gov_affairs_cloud.util.SingleClickListener; import android.os.Bundle; +import android.text.TextUtils; import android.view.View; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import rxhttp.RxHttp; public class AddInspectionActivity extends BaseActivity { + private List membersData; + private List selectMembersData; + private List multiSelectMenuText; + private int[] cacheSelectMenuIndexArray; + private List selectMenuIndexArray = new ArrayList<>(); + private MemberAdapter memberAdapter; + private List typeData; + private DictDataEntity selectType; + @Override protected Class getBindingClass() { return ActivityAddInspectionBinding.class; @@ -20,7 +58,10 @@ public class AddInspectionActivity extends BaseActivity menus = new ArrayList<>(); + for (DictDataEntity item : typeData) { + menus.add(item.getDictLabel()); + } + PopMenu.show(binding.tvType, menus) + .setBackgroundColorRes(R.color.white) + .setWidth(DensityUtils.dp2px(mContext, 100)) + .setOnMenuItemClickListener((dialog, text, index) -> { + selectType = typeData.get(index); + setText(binding.tvType, selectType.getDictLabel()); + return false; + }).setItemDivider(new ItemDivider(15, 15, 1)); + } + + private void getInspectionTypeData() { + RxHttp.get(Api.INSPECTION_TYPE) + .asResponseList(DictDataEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + typeData = data; + }, (OnError) error -> showToast(error.getErrorMsg())); + } + + private void getMemberList() { + RxHttp.get(Api.GRID_MEMBER) + .asResponse(GridMemberEntity.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + membersData = data.getMemberList(); + multiSelectMenuText = new ArrayList<>(); + for (int i = 0; i < membersData.size(); i++) { + multiSelectMenuText.add(membersData.get(i).getMemberName()); + } + }, (OnError) error -> showToast(error.getErrorMsg())); + } + + private void showMemeberDialog() { + BottomMenu.show(multiSelectMenuText).setTitle("请选择任务成员") + .setOnMenuItemClickListener(new OnMenuItemSelectListener() { + @Override + public void onMultiItemSelect(BottomMenu dialog, CharSequence[] text, int[] indexArray) { + cacheSelectMenuIndexArray = indexArray; + } + }).setOkButton("确定", (OnMenuButtonClickListener) (dialog, v) -> { + if (cacheSelectMenuIndexArray.length > 3) { + showError("最多允许选择3名任务成员"); + } else if (cacheSelectMenuIndexArray.length <= 0) { + showError("至少选择1名任务成员"); + } else { + selectMenuIndexArray.clear(); + selectMembersData = new ArrayList<>(); + for (int i : cacheSelectMenuIndexArray) { + selectMenuIndexArray.add(i); + selectMembersData.add(membersData.get(i)); + } + cacheSelectMenuIndexArray = new int[1]; + memberAdapter.setNewData(selectMembersData); + } + return false; + }).setSelection(selectMenuIndexArray); + } + + private void checkSubmit() { + String taskCode = binding.inputTaskCode.getText().toString().trim(); + if (TextUtils.isEmpty(taskCode)) { + showError("任务编号不能为空"); + return; + } + String taskName = binding.inputTaskName.getText().toString().trim(); + if (TextUtils.isEmpty(taskName)) { + showError("任务名称不能为空"); + return; + } + if (ArrayUtil.isEmpty(selectMembersData)) { + showError("任务成员不能为空"); + return; + } + if (selectType == null) { + showError("请选择任务类型"); + return; + } + String taskTarget = binding.inputTaskTarget.getText().toString().trim(); + if (TextUtils.isEmpty(taskTarget)) { + showError("任务对象不能为空"); + return; + } + String taskNotes = binding.inputTaskNotes.getText().toString().trim(); + JsonArray memeberIds = new JsonArray(); + for (GridMemberEntity.MemberListEntity selectMembersDatum : selectMembersData) { + memeberIds.add(selectMembersDatum.getId()); + } + showLoading(); + RxHttp.postJson(Api.INSPECTION_ADD) + .add("taskCode", taskCode) + .add("taskName", taskName) + .add("taskUserIds", memeberIds) + .add("inspectionTypeCode", selectType.getDictValue()) + .add("inspectionTarget", taskTarget) + .add("notes", taskNotes) + .asResponse(Boolean.class) + .as(RxLife.asOnMain(this)) + .subscribe(data -> { + hideLoading(); + PopTip.show("土地巡查信息新增成功").iconSuccess(); + EventBus.getDefault().post(new EventMessage(EventConstant.REFRESH_LIST)); + binding.btnSubmit.postDelayed(() -> finish(), 1000); + }, (OnError) error -> { + PopTip.show(error.getErrorMsg()).iconError(); + hideLoading(); + }); + } + + private class MemberAdapter extends BaseQuickAdapter { + + public MemberAdapter() { + super(R.layout.item_select_member); + } + + @Override + protected void convert(@NonNull BaseViewHolder holder, GridMemberEntity.MemberListEntity entity) { + holder.setText(R.id.tvName, entity.getMemberName()); + holder.addOnClickListener(R.id.btnDelete); + } } } 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 index ffaa700..cfa2656 100644 --- 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 @@ -134,6 +134,12 @@ public class InspectionListActivity extends BaseActivity memberList; + @SerializedName("landList") + private List landList; + + public Object getGridMemberInfo() { + return gridMemberInfo; + } + + public void setGridMemberInfo(Object gridMemberInfo) { + this.gridMemberInfo = gridMemberInfo; + } + + public List getMemberList() { + return memberList; + } + + public void setMemberList(List memberList) { + this.memberList = memberList; + } + + public List getLandList() { + return landList; + } + + public void setLandList(List landList) { + this.landList = landList; + } + + public static class MemberListEntity { + @SerializedName("gridId") + private String gridId; + @SerializedName("memberName") + private String memberName; + @SerializedName("adminFlag") + private String adminFlag; + @SerializedName("phone") + private String phone; + @SerializedName("id") + private String id; + @SerializedName("status") + private String status; + @SerializedName("gridName") + private Object gridName; + @SerializedName("gridAreaName") + private Object gridAreaName; + @SerializedName("gridAreaCode") + private Object gridAreaCode; + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getMemberName() { + return memberName; + } + + public void setMemberName(String memberName) { + this.memberName = memberName; + } + + public String getAdminFlag() { + return adminFlag; + } + + public void setAdminFlag(String adminFlag) { + this.adminFlag = adminFlag; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Object getGridName() { + return gridName; + } + + public void setGridName(Object gridName) { + this.gridName = gridName; + } + + public Object getGridAreaName() { + return gridAreaName; + } + + public void setGridAreaName(Object gridAreaName) { + this.gridAreaName = gridAreaName; + } + + public Object getGridAreaCode() { + return gridAreaCode; + } + + public void setGridAreaCode(Object gridAreaCode) { + this.gridAreaCode = gridAreaCode; + } + } + + public static class LandListEntity { + @SerializedName("id") + private String id; + @SerializedName("landName") + private String landName; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLandName() { + return landName; + } + + public void setLandName(String landName) { + this.landName = landName; + } + } +} diff --git a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/login/LoginActivity.java b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/login/LoginActivity.java index 7e1cd61..9c00618 100644 --- a/app/src/main/java/com/tairui/gov_affairs_cloud/ui/login/LoginActivity.java +++ b/app/src/main/java/com/tairui/gov_affairs_cloud/ui/login/LoginActivity.java @@ -3,6 +3,7 @@ package com.tairui.gov_affairs_cloud.ui.login; import com.google.gson.JsonObject; import com.orhanobut.hawk.Hawk; import com.rxjava.rxlife.RxLife; +import com.tairui.gov_affairs_cloud.BuildConfig; import com.tairui.gov_affairs_cloud.base.BaseActivity; import com.tairui.gov_affairs_cloud.databinding.ActivityLoginBinding; import com.tairui.gov_affairs_cloud.entity.Api; @@ -30,6 +31,10 @@ public class LoginActivity extends BaseActivity { // if (Hawk.contains(Constant.LOGIN_USER_NAME)) { // setText(binding.inputUserName, Hawk.get(Constant.LOGIN_USER_NAME)); // } + if (BuildConfig.DEBUG) { + setText(binding.inputUserName, "admin"); + setText(binding.inputUserPass, "admin123"); + } } @Override 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 e38502e..f63b036 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 @@ -76,7 +76,8 @@ public class MyFragment extends BaseFragment { private void initView(UserInfoEntity data) { setText(binding.tvTodoCount, data.getTodoCount().toString()); setText(binding.userNameTv, data.getUsername()); - setText(binding.userDepartmentTv, data.getOrganization() + " - " + data.getDepartmental()); + // setText(binding.userDepartmentTv, data.getOrganization() + " - " + data.getDepartmental()); + setText(binding.userDepartmentTv, data.getDepartmental()); setText(binding.userTelTv, data.getPhone() + " " + data.getNo()); GlideLoader.loadCircle(binding.userHeadIv, data.getHeadPic()); } 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 dbe5a14..35bda67 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 @@ -102,15 +102,15 @@ public class WorkSpaceFragment extends BaseFragment { funcs.add(itemFunc); itemFunc = new WorkSpaceEntity.FuncsEntity(); - itemFunc.setId(2); - itemFunc.setName("网格信息"); - itemFunc.setIcon(R.mipmap.ic_workspace_func_2); + itemFunc.setId(6); + itemFunc.setName("土地信息"); + itemFunc.setIcon(R.mipmap.ic_workspace_func_6); funcs.add(itemFunc); itemFunc = new WorkSpaceEntity.FuncsEntity(); - itemFunc.setId(3); - itemFunc.setName("种植计划"); - itemFunc.setIcon(R.mipmap.ic_workspace_func_3); + itemFunc.setId(2); + itemFunc.setName("网格信息"); + itemFunc.setIcon(R.mipmap.ic_workspace_func_2); funcs.add(itemFunc); // itemFunc = new WorkSpaceEntity.FuncsEntity(); @@ -119,24 +119,18 @@ public class WorkSpaceFragment extends BaseFragment { // itemFunc.setIcon(R.mipmap.ic_workspace_func_4); // funcs.add(itemFunc); - itemFunc = new WorkSpaceEntity.FuncsEntity(); - itemFunc.setId(5); - itemFunc.setName("土地违规"); - itemFunc.setIcon(R.mipmap.ic_workspace_func_5); - funcs.add(itemFunc); - - itemFunc = new WorkSpaceEntity.FuncsEntity(); - itemFunc.setId(6); - itemFunc.setName("土地信息"); - itemFunc.setIcon(R.mipmap.ic_workspace_func_6); - funcs.add(itemFunc); - itemFunc = new WorkSpaceEntity.FuncsEntity(); itemFunc.setId(7); itemFunc.setName("土地巡查"); itemFunc.setIcon(R.mipmap.ic_workspace_func_7); funcs.add(itemFunc); + itemFunc = new WorkSpaceEntity.FuncsEntity(); + itemFunc.setId(5); + itemFunc.setName("土地案件"); + itemFunc.setIcon(R.mipmap.ic_workspace_func_5); + funcs.add(itemFunc); + item.setFuncs(funcs); workSpaceEntities.add(item); @@ -180,6 +174,12 @@ public class WorkSpaceFragment extends BaseFragment { itemFunc.setIcon(R.mipmap.ic_workspace_func_14); funcs.add(itemFunc); + itemFunc = new WorkSpaceEntity.FuncsEntity(); + itemFunc.setId(3); + itemFunc.setName("种植计划"); + itemFunc.setIcon(R.mipmap.ic_workspace_func_3); + funcs.add(itemFunc); + item.setFuncs(funcs); workSpaceEntities.add(item); @@ -251,42 +251,42 @@ public class WorkSpaceFragment extends BaseFragment { item.setFuncs(funcs); workSpaceEntities.add(item); -// item = new WorkSpaceEntity(); -// item.setName("农业产品监测"); -// funcs = new ArrayList<>(); -// -// itemFunc = new WorkSpaceEntity.FuncsEntity(); -// itemFunc.setId(24); -// itemFunc.setName("田间监测"); -// itemFunc.setIcon(R.mipmap.ic_workspace_func_24); -// funcs.add(itemFunc); -// -// itemFunc = new WorkSpaceEntity.FuncsEntity(); -// itemFunc.setId(25); -// itemFunc.setName("水质监测"); -// itemFunc.setIcon(R.mipmap.ic_workspace_func_25); -// funcs.add(itemFunc); -// -// itemFunc = new WorkSpaceEntity.FuncsEntity(); -// itemFunc.setId(26); -// itemFunc.setName("病虫害监测"); -// itemFunc.setIcon(R.mipmap.ic_workspace_func_26); -// funcs.add(itemFunc); -// -// itemFunc = new WorkSpaceEntity.FuncsEntity(); -// itemFunc.setId(27); -// itemFunc.setName("环境监测"); -// itemFunc.setIcon(R.mipmap.ic_workspace_func_27); -// funcs.add(itemFunc); -// -// itemFunc = new WorkSpaceEntity.FuncsEntity(); -// itemFunc.setId(28); -// itemFunc.setName("产量预测"); -// itemFunc.setIcon(R.mipmap.ic_workspace_func_28); -// funcs.add(itemFunc); -// -// item.setFuncs(funcs); -// workSpaceEntities.add(item); + // item = new WorkSpaceEntity(); + // item.setName("农业产品监测"); + // funcs = new ArrayList<>(); + // + // itemFunc = new WorkSpaceEntity.FuncsEntity(); + // itemFunc.setId(24); + // itemFunc.setName("田间监测"); + // itemFunc.setIcon(R.mipmap.ic_workspace_func_24); + // funcs.add(itemFunc); + // + // itemFunc = new WorkSpaceEntity.FuncsEntity(); + // itemFunc.setId(25); + // itemFunc.setName("水质监测"); + // itemFunc.setIcon(R.mipmap.ic_workspace_func_25); + // funcs.add(itemFunc); + // + // itemFunc = new WorkSpaceEntity.FuncsEntity(); + // itemFunc.setId(26); + // itemFunc.setName("病虫害监测"); + // itemFunc.setIcon(R.mipmap.ic_workspace_func_26); + // funcs.add(itemFunc); + // + // itemFunc = new WorkSpaceEntity.FuncsEntity(); + // itemFunc.setId(27); + // itemFunc.setName("环境监测"); + // itemFunc.setIcon(R.mipmap.ic_workspace_func_27); + // funcs.add(itemFunc); + // + // itemFunc = new WorkSpaceEntity.FuncsEntity(); + // itemFunc.setId(28); + // itemFunc.setName("产量预测"); + // itemFunc.setIcon(R.mipmap.ic_workspace_func_28); + // funcs.add(itemFunc); + // + // item.setFuncs(funcs); + // workSpaceEntities.add(item); return workSpaceEntities; } diff --git a/app/src/main/res/layout/activity_add_inspection.xml b/app/src/main/res/layout/activity_add_inspection.xml index 59038d0..76b1bea 100644 --- a/app/src/main/res/layout/activity_add_inspection.xml +++ b/app/src/main/res/layout/activity_add_inspection.xml @@ -108,7 +108,7 @@ android:layout_gravity="end|center_vertical" android:background="@color/transparent" android:gravity="end|center_vertical" - android:hint="请输入" + android:hint="请输入" android:textColor="@color/color_txt_black" android:textColorHint="@color/color_txt_label" android:textSize="16sp" /> @@ -123,6 +123,7 @@ + android:gravity="top|left" + android:hint="给AI智能助手发消息..." + android:textColor="@color/color_txt_black" + android:textColorHint="@color/color_txt_label" + android:textSize="16sp" /> + + + + + + + diff --git a/app/src/main/res/mipmap-xxhdpi/ic_cancel_gray.png b/app/src/main/res/mipmap-xxhdpi/ic_cancel_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..82a5d9422b62185f10c9b21417ff4d27cf838ea8 GIT binary patch literal 710 zcmV;%0y+JOP)Px%fJsC_R9HvtmNAPHQ4q&xUY5-@A|`T0*2dOe{RoPfD=eZOHcQxKpPZdwCktX} z6S!nI5U#MZ^a=~VfGCHBVCNx14!laRIk;q=JlKS=WOwJiq=;|}sdirGxATAVpF!BL z2RDodE`Z7u`F|=D$MFpzM3aaP!!Z0__GKpT2ZO=3l=5`hncNB`N%9*2wgKRjh?@0! z{ixMyO-&MKW0NGgjEJv@NFw4V*L9n|@BdkhD*`$Ofa_`S52e&ztycSJ3pE;zE={M? z*Gj1X0JaeE1QBhWR%BD!rm`>Z6>$(MA~A`{y@vz4*}TGma7_(3Uk)5JWjoVsL%n0M27Jl@%uRndx!OvuImj1944Hj~ScUH-lsWna(ED*=OX`WisWJ-&VfD3UOsBfHIb^Xs2FW z$gO8nk$hnoenCXN9?zd#py6=Xn=Ry=O|PhPa^(9)L_1Q-pDds_j?ZTc`6{z%mTXD) zoe-DPDYV{fb{OWeQ s=iH>L#<6^8)g&h8FM!IbwQ&{t2XI^zLue2nn*aa+07*qoM6N<$f>4i0N&o-= literal 0 HcmV?d00001