diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private String account;
- private String deptId;
- private String deptName;
- private String deviceName;
- private String id;
- private String imei;
- private String lastTime;
- private String lastTimeFmt;
- private String name;
- private String networkNumber;
- private boolean onLine;
- private String phone;
- private String posLastTime;
- private String positionLat;
- private String positionLng;
- private String targetId;
- private String userId;
-
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account) {
- this.account = account;
- }
-
- public String getDeptId() {
- return deptId;
- }
-
- public void setDeptId(String deptId) {
- this.deptId = deptId;
- }
-
- public String getDeptName() {
- return deptName;
- }
-
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- public String getLastTime() {
- return lastTime;
- }
-
- public void setLastTime(String lastTime) {
- this.lastTime = lastTime;
- }
-
- public String getLastTimeFmt() {
- return lastTimeFmt;
- }
-
- public void setLastTimeFmt(String lastTimeFmt) {
- this.lastTimeFmt = lastTimeFmt;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNetworkNumber() {
- return networkNumber;
- }
-
- public void setNetworkNumber(String networkNumber) {
- this.networkNumber = networkNumber;
- }
-
- public boolean isOnLine() {
- return onLine;
- }
-
- public void setOnLine(boolean onLine) {
- this.onLine = onLine;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPosLastTime() {
- return posLastTime;
- }
-
- public void setPosLastTime(String posLastTime) {
- this.posLastTime = posLastTime;
- }
-
- public String getPositionLat() {
- return positionLat;
- }
-
- public void setPositionLat(String positionLat) {
- this.positionLat = positionLat;
- }
-
- public String getPositionLng() {
- return positionLng;
- }
-
- public void setPositionLng(String positionLng) {
- this.positionLng = positionLng;
- }
-
- public String getTargetId() {
- return targetId;
- }
-
- public void setTargetId(String targetId) {
- this.targetId = targetId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private String account;
- private String deptId;
- private String deptName;
- private String deviceName;
- private String id;
- private String imei;
- private String lastTime;
- private String lastTimeFmt;
- private String name;
- private String networkNumber;
- private boolean onLine;
- private String phone;
- private String posLastTime;
- private String positionLat;
- private String positionLng;
- private String targetId;
- private String userId;
-
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account) {
- this.account = account;
- }
-
- public String getDeptId() {
- return deptId;
- }
-
- public void setDeptId(String deptId) {
- this.deptId = deptId;
- }
-
- public String getDeptName() {
- return deptName;
- }
-
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- public String getLastTime() {
- return lastTime;
- }
-
- public void setLastTime(String lastTime) {
- this.lastTime = lastTime;
- }
-
- public String getLastTimeFmt() {
- return lastTimeFmt;
- }
-
- public void setLastTimeFmt(String lastTimeFmt) {
- this.lastTimeFmt = lastTimeFmt;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNetworkNumber() {
- return networkNumber;
- }
-
- public void setNetworkNumber(String networkNumber) {
- this.networkNumber = networkNumber;
- }
-
- public boolean isOnLine() {
- return onLine;
- }
-
- public void setOnLine(boolean onLine) {
- this.onLine = onLine;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPosLastTime() {
- return posLastTime;
- }
-
- public void setPosLastTime(String posLastTime) {
- this.posLastTime = posLastTime;
- }
-
- public String getPositionLat() {
- return positionLat;
- }
-
- public void setPositionLat(String positionLat) {
- this.positionLat = positionLat;
- }
-
- public String getPositionLng() {
- return positionLng;
- }
-
- public void setPositionLng(String positionLng) {
- this.positionLng = positionLng;
- }
-
- public String getTargetId() {
- return targetId;
- }
-
- public void setTargetId(String targetId) {
- this.targetId = targetId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java b/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
deleted file mode 100644
index 6a572f3..0000000
--- a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.casic.dcms.model;
-
-public class PointPersonBean {
- private String personName;
- private String phoneNumber;
- private String personDept;
- private String lastOnlineTime;
- private double lastLat;
- private double lastLng;
-
- public String getPersonName() {
- return personName;
- }
-
- public void setPersonName(String personName) {
- this.personName = personName;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getPersonDept() {
- return personDept;
- }
-
- public void setPersonDept(String personDept) {
- this.personDept = personDept;
- }
-
- public String getLastOnlineTime() {
- return lastOnlineTime;
- }
-
- public void setLastOnlineTime(String lastOnlineTime) {
- this.lastOnlineTime = lastOnlineTime;
- }
-
- public double getLastLat() {
- return lastLat;
- }
-
- public void setLastLat(double lastLat) {
- this.lastLat = lastLat;
- }
-
- public double getLastLng() {
- return lastLng;
- }
-
- public void setLastLng(double lastLng) {
- this.lastLng = lastLng;
- }
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private String account;
- private String deptId;
- private String deptName;
- private String deviceName;
- private String id;
- private String imei;
- private String lastTime;
- private String lastTimeFmt;
- private String name;
- private String networkNumber;
- private boolean onLine;
- private String phone;
- private String posLastTime;
- private String positionLat;
- private String positionLng;
- private String targetId;
- private String userId;
-
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account) {
- this.account = account;
- }
-
- public String getDeptId() {
- return deptId;
- }
-
- public void setDeptId(String deptId) {
- this.deptId = deptId;
- }
-
- public String getDeptName() {
- return deptName;
- }
-
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- public String getLastTime() {
- return lastTime;
- }
-
- public void setLastTime(String lastTime) {
- this.lastTime = lastTime;
- }
-
- public String getLastTimeFmt() {
- return lastTimeFmt;
- }
-
- public void setLastTimeFmt(String lastTimeFmt) {
- this.lastTimeFmt = lastTimeFmt;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNetworkNumber() {
- return networkNumber;
- }
-
- public void setNetworkNumber(String networkNumber) {
- this.networkNumber = networkNumber;
- }
-
- public boolean isOnLine() {
- return onLine;
- }
-
- public void setOnLine(boolean onLine) {
- this.onLine = onLine;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPosLastTime() {
- return posLastTime;
- }
-
- public void setPosLastTime(String posLastTime) {
- this.posLastTime = posLastTime;
- }
-
- public String getPositionLat() {
- return positionLat;
- }
-
- public void setPositionLat(String positionLat) {
- this.positionLat = positionLat;
- }
-
- public String getPositionLng() {
- return positionLng;
- }
-
- public void setPositionLng(String positionLng) {
- this.positionLng = positionLng;
- }
-
- public String getTargetId() {
- return targetId;
- }
-
- public void setTargetId(String targetId) {
- this.targetId = targetId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java b/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
deleted file mode 100644
index 6a572f3..0000000
--- a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.casic.dcms.model;
-
-public class PointPersonBean {
- private String personName;
- private String phoneNumber;
- private String personDept;
- private String lastOnlineTime;
- private double lastLat;
- private double lastLng;
-
- public String getPersonName() {
- return personName;
- }
-
- public void setPersonName(String personName) {
- this.personName = personName;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getPersonDept() {
- return personDept;
- }
-
- public void setPersonDept(String personDept) {
- this.personDept = personDept;
- }
-
- public String getLastOnlineTime() {
- return lastOnlineTime;
- }
-
- public void setLastOnlineTime(String lastOnlineTime) {
- this.lastOnlineTime = lastOnlineTime;
- }
-
- public double getLastLat() {
- return lastLat;
- }
-
- public void setLastLat(double lastLat) {
- this.lastLat = lastLat;
- }
-
- public double getLastLng() {
- return lastLng;
- }
-
- public void setLastLng(double lastLng) {
- this.lastLng = lastLng;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/WorkerBean.java b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
new file mode 100644
index 0000000..fd77304
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
@@ -0,0 +1,199 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class WorkerBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String account;
+ private String deptId;
+ private String deptName;
+ private String deviceName;
+ private String id;
+ private String imei;
+ private String lastTime;
+ private String lastTimeFmt;
+ private String name;
+ private String networkNumber;
+ private boolean onLine;
+ private String phone;
+ private String posLastTime;
+ private String positionLat;
+ private String positionLng;
+ private String targetId;
+ private String userId;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImei() {
+ return imei;
+ }
+
+ public void setImei(String imei) {
+ this.imei = imei;
+ }
+
+ public String getLastTime() {
+ return lastTime;
+ }
+
+ public void setLastTime(String lastTime) {
+ this.lastTime = lastTime;
+ }
+
+ public String getLastTimeFmt() {
+ return lastTimeFmt;
+ }
+
+ public void setLastTimeFmt(String lastTimeFmt) {
+ this.lastTimeFmt = lastTimeFmt;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getNetworkNumber() {
+ return networkNumber;
+ }
+
+ public void setNetworkNumber(String networkNumber) {
+ this.networkNumber = networkNumber;
+ }
+
+ public boolean isOnLine() {
+ return onLine;
+ }
+
+ public void setOnLine(boolean onLine) {
+ this.onLine = onLine;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPosLastTime() {
+ return posLastTime;
+ }
+
+ public void setPosLastTime(String posLastTime) {
+ this.posLastTime = posLastTime;
+ }
+
+ public String getPositionLat() {
+ return positionLat;
+ }
+
+ public void setPositionLat(String positionLat) {
+ this.positionLat = positionLat;
+ }
+
+ public String getPositionLng() {
+ return positionLng;
+ }
+
+ public void setPositionLng(String positionLng) {
+ this.positionLng = positionLng;
+ }
+
+ public String getTargetId() {
+ return targetId;
+ }
+
+ public void setTargetId(String targetId) {
+ this.targetId = targetId;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private String account;
- private String deptId;
- private String deptName;
- private String deviceName;
- private String id;
- private String imei;
- private String lastTime;
- private String lastTimeFmt;
- private String name;
- private String networkNumber;
- private boolean onLine;
- private String phone;
- private String posLastTime;
- private String positionLat;
- private String positionLng;
- private String targetId;
- private String userId;
-
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account) {
- this.account = account;
- }
-
- public String getDeptId() {
- return deptId;
- }
-
- public void setDeptId(String deptId) {
- this.deptId = deptId;
- }
-
- public String getDeptName() {
- return deptName;
- }
-
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- public String getLastTime() {
- return lastTime;
- }
-
- public void setLastTime(String lastTime) {
- this.lastTime = lastTime;
- }
-
- public String getLastTimeFmt() {
- return lastTimeFmt;
- }
-
- public void setLastTimeFmt(String lastTimeFmt) {
- this.lastTimeFmt = lastTimeFmt;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNetworkNumber() {
- return networkNumber;
- }
-
- public void setNetworkNumber(String networkNumber) {
- this.networkNumber = networkNumber;
- }
-
- public boolean isOnLine() {
- return onLine;
- }
-
- public void setOnLine(boolean onLine) {
- this.onLine = onLine;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPosLastTime() {
- return posLastTime;
- }
-
- public void setPosLastTime(String posLastTime) {
- this.posLastTime = posLastTime;
- }
-
- public String getPositionLat() {
- return positionLat;
- }
-
- public void setPositionLat(String positionLat) {
- this.positionLat = positionLat;
- }
-
- public String getPositionLng() {
- return positionLng;
- }
-
- public void setPositionLng(String positionLng) {
- this.positionLng = positionLng;
- }
-
- public String getTargetId() {
- return targetId;
- }
-
- public void setTargetId(String targetId) {
- this.targetId = targetId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java b/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
deleted file mode 100644
index 6a572f3..0000000
--- a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.casic.dcms.model;
-
-public class PointPersonBean {
- private String personName;
- private String phoneNumber;
- private String personDept;
- private String lastOnlineTime;
- private double lastLat;
- private double lastLng;
-
- public String getPersonName() {
- return personName;
- }
-
- public void setPersonName(String personName) {
- this.personName = personName;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getPersonDept() {
- return personDept;
- }
-
- public void setPersonDept(String personDept) {
- this.personDept = personDept;
- }
-
- public String getLastOnlineTime() {
- return lastOnlineTime;
- }
-
- public void setLastOnlineTime(String lastOnlineTime) {
- this.lastOnlineTime = lastOnlineTime;
- }
-
- public double getLastLat() {
- return lastLat;
- }
-
- public void setLastLat(double lastLat) {
- this.lastLat = lastLat;
- }
-
- public double getLastLng() {
- return lastLng;
- }
-
- public void setLastLng(double lastLng) {
- this.lastLng = lastLng;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/WorkerBean.java b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
new file mode 100644
index 0000000..fd77304
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
@@ -0,0 +1,199 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class WorkerBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String account;
+ private String deptId;
+ private String deptName;
+ private String deviceName;
+ private String id;
+ private String imei;
+ private String lastTime;
+ private String lastTimeFmt;
+ private String name;
+ private String networkNumber;
+ private boolean onLine;
+ private String phone;
+ private String posLastTime;
+ private String positionLat;
+ private String positionLng;
+ private String targetId;
+ private String userId;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImei() {
+ return imei;
+ }
+
+ public void setImei(String imei) {
+ this.imei = imei;
+ }
+
+ public String getLastTime() {
+ return lastTime;
+ }
+
+ public void setLastTime(String lastTime) {
+ this.lastTime = lastTime;
+ }
+
+ public String getLastTimeFmt() {
+ return lastTimeFmt;
+ }
+
+ public void setLastTimeFmt(String lastTimeFmt) {
+ this.lastTimeFmt = lastTimeFmt;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getNetworkNumber() {
+ return networkNumber;
+ }
+
+ public void setNetworkNumber(String networkNumber) {
+ this.networkNumber = networkNumber;
+ }
+
+ public boolean isOnLine() {
+ return onLine;
+ }
+
+ public void setOnLine(boolean onLine) {
+ this.onLine = onLine;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPosLastTime() {
+ return posLastTime;
+ }
+
+ public void setPosLastTime(String posLastTime) {
+ this.posLastTime = posLastTime;
+ }
+
+ public String getPositionLat() {
+ return positionLat;
+ }
+
+ public void setPositionLat(String positionLat) {
+ this.positionLat = positionLat;
+ }
+
+ public String getPositionLng() {
+ return positionLng;
+ }
+
+ public void setPositionLng(String positionLng) {
+ this.positionLng = positionLng;
+ }
+
+ public String getTargetId() {
+ return targetId;
+ }
+
+ public void setTargetId(String targetId) {
+ this.targetId = targetId;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index fb3c15e..e647dbf 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -431,7 +431,7 @@
);
/**
- * 在线人员查询
+ * 员查询
*/
@GET("/userDevice/userDeviceOnLine")
Observable getOnlinePerson(
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private String account;
- private String deptId;
- private String deptName;
- private String deviceName;
- private String id;
- private String imei;
- private String lastTime;
- private String lastTimeFmt;
- private String name;
- private String networkNumber;
- private boolean onLine;
- private String phone;
- private String posLastTime;
- private String positionLat;
- private String positionLng;
- private String targetId;
- private String userId;
-
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account) {
- this.account = account;
- }
-
- public String getDeptId() {
- return deptId;
- }
-
- public void setDeptId(String deptId) {
- this.deptId = deptId;
- }
-
- public String getDeptName() {
- return deptName;
- }
-
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- public String getLastTime() {
- return lastTime;
- }
-
- public void setLastTime(String lastTime) {
- this.lastTime = lastTime;
- }
-
- public String getLastTimeFmt() {
- return lastTimeFmt;
- }
-
- public void setLastTimeFmt(String lastTimeFmt) {
- this.lastTimeFmt = lastTimeFmt;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNetworkNumber() {
- return networkNumber;
- }
-
- public void setNetworkNumber(String networkNumber) {
- this.networkNumber = networkNumber;
- }
-
- public boolean isOnLine() {
- return onLine;
- }
-
- public void setOnLine(boolean onLine) {
- this.onLine = onLine;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPosLastTime() {
- return posLastTime;
- }
-
- public void setPosLastTime(String posLastTime) {
- this.posLastTime = posLastTime;
- }
-
- public String getPositionLat() {
- return positionLat;
- }
-
- public void setPositionLat(String positionLat) {
- this.positionLat = positionLat;
- }
-
- public String getPositionLng() {
- return positionLng;
- }
-
- public void setPositionLng(String positionLng) {
- this.positionLng = positionLng;
- }
-
- public String getTargetId() {
- return targetId;
- }
-
- public void setTargetId(String targetId) {
- this.targetId = targetId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java b/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
deleted file mode 100644
index 6a572f3..0000000
--- a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.casic.dcms.model;
-
-public class PointPersonBean {
- private String personName;
- private String phoneNumber;
- private String personDept;
- private String lastOnlineTime;
- private double lastLat;
- private double lastLng;
-
- public String getPersonName() {
- return personName;
- }
-
- public void setPersonName(String personName) {
- this.personName = personName;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getPersonDept() {
- return personDept;
- }
-
- public void setPersonDept(String personDept) {
- this.personDept = personDept;
- }
-
- public String getLastOnlineTime() {
- return lastOnlineTime;
- }
-
- public void setLastOnlineTime(String lastOnlineTime) {
- this.lastOnlineTime = lastOnlineTime;
- }
-
- public double getLastLat() {
- return lastLat;
- }
-
- public void setLastLat(double lastLat) {
- this.lastLat = lastLat;
- }
-
- public double getLastLng() {
- return lastLng;
- }
-
- public void setLastLng(double lastLng) {
- this.lastLng = lastLng;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/WorkerBean.java b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
new file mode 100644
index 0000000..fd77304
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
@@ -0,0 +1,199 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class WorkerBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String account;
+ private String deptId;
+ private String deptName;
+ private String deviceName;
+ private String id;
+ private String imei;
+ private String lastTime;
+ private String lastTimeFmt;
+ private String name;
+ private String networkNumber;
+ private boolean onLine;
+ private String phone;
+ private String posLastTime;
+ private String positionLat;
+ private String positionLng;
+ private String targetId;
+ private String userId;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImei() {
+ return imei;
+ }
+
+ public void setImei(String imei) {
+ this.imei = imei;
+ }
+
+ public String getLastTime() {
+ return lastTime;
+ }
+
+ public void setLastTime(String lastTime) {
+ this.lastTime = lastTime;
+ }
+
+ public String getLastTimeFmt() {
+ return lastTimeFmt;
+ }
+
+ public void setLastTimeFmt(String lastTimeFmt) {
+ this.lastTimeFmt = lastTimeFmt;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getNetworkNumber() {
+ return networkNumber;
+ }
+
+ public void setNetworkNumber(String networkNumber) {
+ this.networkNumber = networkNumber;
+ }
+
+ public boolean isOnLine() {
+ return onLine;
+ }
+
+ public void setOnLine(boolean onLine) {
+ this.onLine = onLine;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPosLastTime() {
+ return posLastTime;
+ }
+
+ public void setPosLastTime(String posLastTime) {
+ this.posLastTime = posLastTime;
+ }
+
+ public String getPositionLat() {
+ return positionLat;
+ }
+
+ public void setPositionLat(String positionLat) {
+ this.positionLat = positionLat;
+ }
+
+ public String getPositionLng() {
+ return positionLng;
+ }
+
+ public void setPositionLng(String positionLng) {
+ this.positionLng = positionLng;
+ }
+
+ public String getTargetId() {
+ return targetId;
+ }
+
+ public void setTargetId(String targetId) {
+ this.targetId = targetId;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index fb3c15e..e647dbf 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -431,7 +431,7 @@
);
/**
- * 在线人员查询
+ * 员查询
*/
@GET("/userDevice/userDeviceOnLine")
Observable getOnlinePerson(
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index 40d74ed..8b15d77 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -338,7 +338,7 @@
}
/**
- * 在线人员查询
+ * 人员查询
*/
public static Observable getOnlinePerson(String deptid, String roleTips, String isOnLine) {
return api.getOnlinePerson(AuthenticationHelper.getToken(), deptid, roleTips, isOnLine);
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private String account;
- private String deptId;
- private String deptName;
- private String deviceName;
- private String id;
- private String imei;
- private String lastTime;
- private String lastTimeFmt;
- private String name;
- private String networkNumber;
- private boolean onLine;
- private String phone;
- private String posLastTime;
- private String positionLat;
- private String positionLng;
- private String targetId;
- private String userId;
-
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account) {
- this.account = account;
- }
-
- public String getDeptId() {
- return deptId;
- }
-
- public void setDeptId(String deptId) {
- this.deptId = deptId;
- }
-
- public String getDeptName() {
- return deptName;
- }
-
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- public String getLastTime() {
- return lastTime;
- }
-
- public void setLastTime(String lastTime) {
- this.lastTime = lastTime;
- }
-
- public String getLastTimeFmt() {
- return lastTimeFmt;
- }
-
- public void setLastTimeFmt(String lastTimeFmt) {
- this.lastTimeFmt = lastTimeFmt;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNetworkNumber() {
- return networkNumber;
- }
-
- public void setNetworkNumber(String networkNumber) {
- this.networkNumber = networkNumber;
- }
-
- public boolean isOnLine() {
- return onLine;
- }
-
- public void setOnLine(boolean onLine) {
- this.onLine = onLine;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPosLastTime() {
- return posLastTime;
- }
-
- public void setPosLastTime(String posLastTime) {
- this.posLastTime = posLastTime;
- }
-
- public String getPositionLat() {
- return positionLat;
- }
-
- public void setPositionLat(String positionLat) {
- this.positionLat = positionLat;
- }
-
- public String getPositionLng() {
- return positionLng;
- }
-
- public void setPositionLng(String positionLng) {
- this.positionLng = positionLng;
- }
-
- public String getTargetId() {
- return targetId;
- }
-
- public void setTargetId(String targetId) {
- this.targetId = targetId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java b/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
deleted file mode 100644
index 6a572f3..0000000
--- a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.casic.dcms.model;
-
-public class PointPersonBean {
- private String personName;
- private String phoneNumber;
- private String personDept;
- private String lastOnlineTime;
- private double lastLat;
- private double lastLng;
-
- public String getPersonName() {
- return personName;
- }
-
- public void setPersonName(String personName) {
- this.personName = personName;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getPersonDept() {
- return personDept;
- }
-
- public void setPersonDept(String personDept) {
- this.personDept = personDept;
- }
-
- public String getLastOnlineTime() {
- return lastOnlineTime;
- }
-
- public void setLastOnlineTime(String lastOnlineTime) {
- this.lastOnlineTime = lastOnlineTime;
- }
-
- public double getLastLat() {
- return lastLat;
- }
-
- public void setLastLat(double lastLat) {
- this.lastLat = lastLat;
- }
-
- public double getLastLng() {
- return lastLng;
- }
-
- public void setLastLng(double lastLng) {
- this.lastLng = lastLng;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/WorkerBean.java b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
new file mode 100644
index 0000000..fd77304
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
@@ -0,0 +1,199 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class WorkerBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String account;
+ private String deptId;
+ private String deptName;
+ private String deviceName;
+ private String id;
+ private String imei;
+ private String lastTime;
+ private String lastTimeFmt;
+ private String name;
+ private String networkNumber;
+ private boolean onLine;
+ private String phone;
+ private String posLastTime;
+ private String positionLat;
+ private String positionLng;
+ private String targetId;
+ private String userId;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImei() {
+ return imei;
+ }
+
+ public void setImei(String imei) {
+ this.imei = imei;
+ }
+
+ public String getLastTime() {
+ return lastTime;
+ }
+
+ public void setLastTime(String lastTime) {
+ this.lastTime = lastTime;
+ }
+
+ public String getLastTimeFmt() {
+ return lastTimeFmt;
+ }
+
+ public void setLastTimeFmt(String lastTimeFmt) {
+ this.lastTimeFmt = lastTimeFmt;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getNetworkNumber() {
+ return networkNumber;
+ }
+
+ public void setNetworkNumber(String networkNumber) {
+ this.networkNumber = networkNumber;
+ }
+
+ public boolean isOnLine() {
+ return onLine;
+ }
+
+ public void setOnLine(boolean onLine) {
+ this.onLine = onLine;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPosLastTime() {
+ return posLastTime;
+ }
+
+ public void setPosLastTime(String posLastTime) {
+ this.posLastTime = posLastTime;
+ }
+
+ public String getPositionLat() {
+ return positionLat;
+ }
+
+ public void setPositionLat(String positionLat) {
+ this.positionLat = positionLat;
+ }
+
+ public String getPositionLng() {
+ return positionLng;
+ }
+
+ public void setPositionLng(String positionLng) {
+ this.positionLng = positionLng;
+ }
+
+ public String getTargetId() {
+ return targetId;
+ }
+
+ public void setTargetId(String targetId) {
+ this.targetId = targetId;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index fb3c15e..e647dbf 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -431,7 +431,7 @@
);
/**
- * 在线人员查询
+ * 员查询
*/
@GET("/userDevice/userDeviceOnLine")
Observable getOnlinePerson(
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index 40d74ed..8b15d77 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -338,7 +338,7 @@
}
/**
- * 在线人员查询
+ * 人员查询
*/
public static Observable getOnlinePerson(String deptid, String roleTips, String isOnLine) {
return api.getOnlinePerson(AuthenticationHelper.getToken(), deptid, roleTips, isOnLine);
diff --git a/app/src/main/java/com/casic/dcms/view/PersonActivity.java b/app/src/main/java/com/casic/dcms/view/PersonActivity.java
deleted file mode 100644
index b3ac4f1..0000000
--- a/app/src/main/java/com/casic/dcms/view/PersonActivity.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.casic.dcms.view;
-
-import android.os.Bundle;
-import android.widget.LinearLayout;
-
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import com.casic.dcms.R;
-import com.casic.dcms.adapter.SubViewPagerAdapter;
-import com.casic.dcms.databinding.ActivityPersonBinding;
-import com.casic.dcms.fragment.PersonListFragment;
-import com.casic.dcms.fragment.PersonOnMapFragment;
-import com.casic.dcms.utils.LinearLayoutHelper;
-import com.casic.dcms.utils.ViewGroupHub;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class PersonActivity extends AndroidxBaseActivity {
-
- private final String[] pageTitles = new String[]{"人员分布", "人员列表"};
-
- @Override
- protected void setupTopBarLayout() {
- ViewGroupHub.initImmersionBar(binding.rootView, this, true, R.color.white);
-
- binding.titleBarLayout.titleView.setText("在岗人员");
- binding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- List fragmentList = new ArrayList<>();
- fragmentList.add(new PersonOnMapFragment());
- fragmentList.add(new PersonListFragment());
- SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), pageTitles, fragmentList);
- binding.personViewPager.setAdapter(adapter);
- //绑定TabLayout
- binding.personTabLayout.setupWithViewPager(binding.personViewPager);
- LinearLayout linearLayout = (LinearLayout) binding.personTabLayout.getChildAt(0);
- LinearLayoutHelper.setDivider(this, linearLayout);
- }
-
- @Override
- protected void initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private String account;
- private String deptId;
- private String deptName;
- private String deviceName;
- private String id;
- private String imei;
- private String lastTime;
- private String lastTimeFmt;
- private String name;
- private String networkNumber;
- private boolean onLine;
- private String phone;
- private String posLastTime;
- private String positionLat;
- private String positionLng;
- private String targetId;
- private String userId;
-
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account) {
- this.account = account;
- }
-
- public String getDeptId() {
- return deptId;
- }
-
- public void setDeptId(String deptId) {
- this.deptId = deptId;
- }
-
- public String getDeptName() {
- return deptName;
- }
-
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- public String getLastTime() {
- return lastTime;
- }
-
- public void setLastTime(String lastTime) {
- this.lastTime = lastTime;
- }
-
- public String getLastTimeFmt() {
- return lastTimeFmt;
- }
-
- public void setLastTimeFmt(String lastTimeFmt) {
- this.lastTimeFmt = lastTimeFmt;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNetworkNumber() {
- return networkNumber;
- }
-
- public void setNetworkNumber(String networkNumber) {
- this.networkNumber = networkNumber;
- }
-
- public boolean isOnLine() {
- return onLine;
- }
-
- public void setOnLine(boolean onLine) {
- this.onLine = onLine;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPosLastTime() {
- return posLastTime;
- }
-
- public void setPosLastTime(String posLastTime) {
- this.posLastTime = posLastTime;
- }
-
- public String getPositionLat() {
- return positionLat;
- }
-
- public void setPositionLat(String positionLat) {
- this.positionLat = positionLat;
- }
-
- public String getPositionLng() {
- return positionLng;
- }
-
- public void setPositionLng(String positionLng) {
- this.positionLng = positionLng;
- }
-
- public String getTargetId() {
- return targetId;
- }
-
- public void setTargetId(String targetId) {
- this.targetId = targetId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java b/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
deleted file mode 100644
index 6a572f3..0000000
--- a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.casic.dcms.model;
-
-public class PointPersonBean {
- private String personName;
- private String phoneNumber;
- private String personDept;
- private String lastOnlineTime;
- private double lastLat;
- private double lastLng;
-
- public String getPersonName() {
- return personName;
- }
-
- public void setPersonName(String personName) {
- this.personName = personName;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getPersonDept() {
- return personDept;
- }
-
- public void setPersonDept(String personDept) {
- this.personDept = personDept;
- }
-
- public String getLastOnlineTime() {
- return lastOnlineTime;
- }
-
- public void setLastOnlineTime(String lastOnlineTime) {
- this.lastOnlineTime = lastOnlineTime;
- }
-
- public double getLastLat() {
- return lastLat;
- }
-
- public void setLastLat(double lastLat) {
- this.lastLat = lastLat;
- }
-
- public double getLastLng() {
- return lastLng;
- }
-
- public void setLastLng(double lastLng) {
- this.lastLng = lastLng;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/WorkerBean.java b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
new file mode 100644
index 0000000..fd77304
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
@@ -0,0 +1,199 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class WorkerBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String account;
+ private String deptId;
+ private String deptName;
+ private String deviceName;
+ private String id;
+ private String imei;
+ private String lastTime;
+ private String lastTimeFmt;
+ private String name;
+ private String networkNumber;
+ private boolean onLine;
+ private String phone;
+ private String posLastTime;
+ private String positionLat;
+ private String positionLng;
+ private String targetId;
+ private String userId;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImei() {
+ return imei;
+ }
+
+ public void setImei(String imei) {
+ this.imei = imei;
+ }
+
+ public String getLastTime() {
+ return lastTime;
+ }
+
+ public void setLastTime(String lastTime) {
+ this.lastTime = lastTime;
+ }
+
+ public String getLastTimeFmt() {
+ return lastTimeFmt;
+ }
+
+ public void setLastTimeFmt(String lastTimeFmt) {
+ this.lastTimeFmt = lastTimeFmt;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getNetworkNumber() {
+ return networkNumber;
+ }
+
+ public void setNetworkNumber(String networkNumber) {
+ this.networkNumber = networkNumber;
+ }
+
+ public boolean isOnLine() {
+ return onLine;
+ }
+
+ public void setOnLine(boolean onLine) {
+ this.onLine = onLine;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPosLastTime() {
+ return posLastTime;
+ }
+
+ public void setPosLastTime(String posLastTime) {
+ this.posLastTime = posLastTime;
+ }
+
+ public String getPositionLat() {
+ return positionLat;
+ }
+
+ public void setPositionLat(String positionLat) {
+ this.positionLat = positionLat;
+ }
+
+ public String getPositionLng() {
+ return positionLng;
+ }
+
+ public void setPositionLng(String positionLng) {
+ this.positionLng = positionLng;
+ }
+
+ public String getTargetId() {
+ return targetId;
+ }
+
+ public void setTargetId(String targetId) {
+ this.targetId = targetId;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index fb3c15e..e647dbf 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -431,7 +431,7 @@
);
/**
- * 在线人员查询
+ * 员查询
*/
@GET("/userDevice/userDeviceOnLine")
Observable getOnlinePerson(
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index 40d74ed..8b15d77 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -338,7 +338,7 @@
}
/**
- * 在线人员查询
+ * 人员查询
*/
public static Observable getOnlinePerson(String deptid, String roleTips, String isOnLine) {
return api.getOnlinePerson(AuthenticationHelper.getToken(), deptid, roleTips, isOnLine);
diff --git a/app/src/main/java/com/casic/dcms/view/PersonActivity.java b/app/src/main/java/com/casic/dcms/view/PersonActivity.java
deleted file mode 100644
index b3ac4f1..0000000
--- a/app/src/main/java/com/casic/dcms/view/PersonActivity.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.casic.dcms.view;
-
-import android.os.Bundle;
-import android.widget.LinearLayout;
-
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import com.casic.dcms.R;
-import com.casic.dcms.adapter.SubViewPagerAdapter;
-import com.casic.dcms.databinding.ActivityPersonBinding;
-import com.casic.dcms.fragment.PersonListFragment;
-import com.casic.dcms.fragment.PersonOnMapFragment;
-import com.casic.dcms.utils.LinearLayoutHelper;
-import com.casic.dcms.utils.ViewGroupHub;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class PersonActivity extends AndroidxBaseActivity {
-
- private final String[] pageTitles = new String[]{"人员分布", "人员列表"};
-
- @Override
- protected void setupTopBarLayout() {
- ViewGroupHub.initImmersionBar(binding.rootView, this, true, R.color.white);
-
- binding.titleBarLayout.titleView.setText("在岗人员");
- binding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- List fragmentList = new ArrayList<>();
- fragmentList.add(new PersonOnMapFragment());
- fragmentList.add(new PersonListFragment());
- SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), pageTitles, fragmentList);
- binding.personViewPager.setAdapter(adapter);
- //绑定TabLayout
- binding.personTabLayout.setupWithViewPager(binding.personViewPager);
- LinearLayout linearLayout = (LinearLayout) binding.personTabLayout.getChildAt(0);
- LinearLayoutHelper.setDivider(this, linearLayout);
- }
-
- @Override
- protected void initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java
index 33407ba..326b5e7 100644
--- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java
@@ -25,7 +25,7 @@
import com.casic.dcms.vm.CaseOperateViewModel;
import com.casic.dcms.vm.CaseViewModel;
import com.casic.dcms.vm.NodeViewModel;
-import com.casic.dcms.vm.PersonViewModel;
+import com.casic.dcms.vm.WorkerViewModel;
import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
import com.pengxh.androidx.lite.kit.ContextKit;
@@ -51,7 +51,7 @@
private CaseViewModel caseViewModel;
private NodeViewModel nodeViewModel;
private CaseOperateViewModel operateViewModel;
- private PersonViewModel personViewModel;
+ private WorkerViewModel workerViewModel;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
private List nodeDataBeans = new ArrayList<>();
private List personBeans = new ArrayList<>();
@@ -236,7 +236,7 @@
//获取处置类型
nodeViewModel.getNextNode(context, String.valueOf(data.getCaseState()));
//获取下级处置人员
- personViewModel.getSubordinatePerson(context);
+ workerViewModel.getSubordinateWorker(context);
}
}
});
@@ -262,8 +262,8 @@
}
});
- personViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- personViewModel.processPersonModel.observe(this, new Observer() {
+ workerViewModel = new ViewModelProvider(this).get(WorkerViewModel.class);
+ workerViewModel.processPersonModel.observe(this, new Observer() {
@Override
public void onChanged(ProcessPersonBean resultBean) {
if (resultBean.getCode() == 200) {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataDTO {
- private String account;
- private String deptId;
- private String deptName;
- private String deviceName;
- private String id;
- private String imei;
- private String lastTime;
- private String lastTimeFmt;
- private String name;
- private String networkNumber;
- private boolean onLine;
- private String phone;
- private String posLastTime;
- private String positionLat;
- private String positionLng;
- private String targetId;
- private String userId;
-
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account) {
- this.account = account;
- }
-
- public String getDeptId() {
- return deptId;
- }
-
- public void setDeptId(String deptId) {
- this.deptId = deptId;
- }
-
- public String getDeptName() {
- return deptName;
- }
-
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- public String getLastTime() {
- return lastTime;
- }
-
- public void setLastTime(String lastTime) {
- this.lastTime = lastTime;
- }
-
- public String getLastTimeFmt() {
- return lastTimeFmt;
- }
-
- public void setLastTimeFmt(String lastTimeFmt) {
- this.lastTimeFmt = lastTimeFmt;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNetworkNumber() {
- return networkNumber;
- }
-
- public void setNetworkNumber(String networkNumber) {
- this.networkNumber = networkNumber;
- }
-
- public boolean isOnLine() {
- return onLine;
- }
-
- public void setOnLine(boolean onLine) {
- this.onLine = onLine;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPosLastTime() {
- return posLastTime;
- }
-
- public void setPosLastTime(String posLastTime) {
- this.posLastTime = posLastTime;
- }
-
- public String getPositionLat() {
- return positionLat;
- }
-
- public void setPositionLat(String positionLat) {
- this.positionLat = positionLat;
- }
-
- public String getPositionLng() {
- return positionLng;
- }
-
- public void setPositionLng(String positionLng) {
- this.positionLng = positionLng;
- }
-
- public String getTargetId() {
- return targetId;
- }
-
- public void setTargetId(String targetId) {
- this.targetId = targetId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java b/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
deleted file mode 100644
index 6a572f3..0000000
--- a/app/src/main/java/com/casic/dcms/model/PointPersonBean.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.casic.dcms.model;
-
-public class PointPersonBean {
- private String personName;
- private String phoneNumber;
- private String personDept;
- private String lastOnlineTime;
- private double lastLat;
- private double lastLng;
-
- public String getPersonName() {
- return personName;
- }
-
- public void setPersonName(String personName) {
- this.personName = personName;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getPersonDept() {
- return personDept;
- }
-
- public void setPersonDept(String personDept) {
- this.personDept = personDept;
- }
-
- public String getLastOnlineTime() {
- return lastOnlineTime;
- }
-
- public void setLastOnlineTime(String lastOnlineTime) {
- this.lastOnlineTime = lastOnlineTime;
- }
-
- public double getLastLat() {
- return lastLat;
- }
-
- public void setLastLat(double lastLat) {
- this.lastLat = lastLat;
- }
-
- public double getLastLng() {
- return lastLng;
- }
-
- public void setLastLng(double lastLng) {
- this.lastLng = lastLng;
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/model/WorkerBean.java b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
new file mode 100644
index 0000000..fd77304
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/WorkerBean.java
@@ -0,0 +1,199 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class WorkerBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String account;
+ private String deptId;
+ private String deptName;
+ private String deviceName;
+ private String id;
+ private String imei;
+ private String lastTime;
+ private String lastTimeFmt;
+ private String name;
+ private String networkNumber;
+ private boolean onLine;
+ private String phone;
+ private String posLastTime;
+ private String positionLat;
+ private String positionLng;
+ private String targetId;
+ private String userId;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImei() {
+ return imei;
+ }
+
+ public void setImei(String imei) {
+ this.imei = imei;
+ }
+
+ public String getLastTime() {
+ return lastTime;
+ }
+
+ public void setLastTime(String lastTime) {
+ this.lastTime = lastTime;
+ }
+
+ public String getLastTimeFmt() {
+ return lastTimeFmt;
+ }
+
+ public void setLastTimeFmt(String lastTimeFmt) {
+ this.lastTimeFmt = lastTimeFmt;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getNetworkNumber() {
+ return networkNumber;
+ }
+
+ public void setNetworkNumber(String networkNumber) {
+ this.networkNumber = networkNumber;
+ }
+
+ public boolean isOnLine() {
+ return onLine;
+ }
+
+ public void setOnLine(boolean onLine) {
+ this.onLine = onLine;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPosLastTime() {
+ return posLastTime;
+ }
+
+ public void setPosLastTime(String posLastTime) {
+ this.posLastTime = posLastTime;
+ }
+
+ public String getPositionLat() {
+ return positionLat;
+ }
+
+ public void setPositionLat(String positionLat) {
+ this.positionLat = positionLat;
+ }
+
+ public String getPositionLng() {
+ return positionLng;
+ }
+
+ public void setPositionLng(String positionLng) {
+ this.positionLng = positionLng;
+ }
+
+ public String getTargetId() {
+ return targetId;
+ }
+
+ public void setTargetId(String targetId) {
+ this.targetId = targetId;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index fb3c15e..e647dbf 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -431,7 +431,7 @@
);
/**
- * 在线人员查询
+ * 员查询
*/
@GET("/userDevice/userDeviceOnLine")
Observable getOnlinePerson(
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index 40d74ed..8b15d77 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -338,7 +338,7 @@
}
/**
- * 在线人员查询
+ * 人员查询
*/
public static Observable getOnlinePerson(String deptid, String roleTips, String isOnLine) {
return api.getOnlinePerson(AuthenticationHelper.getToken(), deptid, roleTips, isOnLine);
diff --git a/app/src/main/java/com/casic/dcms/view/PersonActivity.java b/app/src/main/java/com/casic/dcms/view/PersonActivity.java
deleted file mode 100644
index b3ac4f1..0000000
--- a/app/src/main/java/com/casic/dcms/view/PersonActivity.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.casic.dcms.view;
-
-import android.os.Bundle;
-import android.widget.LinearLayout;
-
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import com.casic.dcms.R;
-import com.casic.dcms.adapter.SubViewPagerAdapter;
-import com.casic.dcms.databinding.ActivityPersonBinding;
-import com.casic.dcms.fragment.PersonListFragment;
-import com.casic.dcms.fragment.PersonOnMapFragment;
-import com.casic.dcms.utils.LinearLayoutHelper;
-import com.casic.dcms.utils.ViewGroupHub;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class PersonActivity extends AndroidxBaseActivity {
-
- private final String[] pageTitles = new String[]{"人员分布", "人员列表"};
-
- @Override
- protected void setupTopBarLayout() {
- ViewGroupHub.initImmersionBar(binding.rootView, this, true, R.color.white);
-
- binding.titleBarLayout.titleView.setText("在岗人员");
- binding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- List fragmentList = new ArrayList<>();
- fragmentList.add(new PersonOnMapFragment());
- fragmentList.add(new PersonListFragment());
- SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), pageTitles, fragmentList);
- binding.personViewPager.setAdapter(adapter);
- //绑定TabLayout
- binding.personTabLayout.setupWithViewPager(binding.personViewPager);
- LinearLayout linearLayout = (LinearLayout) binding.personTabLayout.getChildAt(0);
- LinearLayoutHelper.setDivider(this, linearLayout);
- }
-
- @Override
- protected void initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java
index 33407ba..326b5e7 100644
--- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java
@@ -25,7 +25,7 @@
import com.casic.dcms.vm.CaseOperateViewModel;
import com.casic.dcms.vm.CaseViewModel;
import com.casic.dcms.vm.NodeViewModel;
-import com.casic.dcms.vm.PersonViewModel;
+import com.casic.dcms.vm.WorkerViewModel;
import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
import com.pengxh.androidx.lite.kit.ContextKit;
@@ -51,7 +51,7 @@
private CaseViewModel caseViewModel;
private NodeViewModel nodeViewModel;
private CaseOperateViewModel operateViewModel;
- private PersonViewModel personViewModel;
+ private WorkerViewModel workerViewModel;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
private List nodeDataBeans = new ArrayList<>();
private List personBeans = new ArrayList<>();
@@ -236,7 +236,7 @@
//获取处置类型
nodeViewModel.getNextNode(context, String.valueOf(data.getCaseState()));
//获取下级处置人员
- personViewModel.getSubordinatePerson(context);
+ workerViewModel.getSubordinateWorker(context);
}
}
});
@@ -262,8 +262,8 @@
}
});
- personViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- personViewModel.processPersonModel.observe(this, new Observer() {
+ workerViewModel = new ViewModelProvider(this).get(WorkerViewModel.class);
+ workerViewModel.processPersonModel.observe(this, new Observer() {
@Override
public void onChanged(ProcessPersonBean resultBean) {
if (resultBean.getCode() == 200) {
diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java
index 8eb2d27..32c958c 100644
--- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java
@@ -25,7 +25,7 @@
import com.casic.dcms.vm.CaseOperateViewModel;
import com.casic.dcms.vm.CaseViewModel;
import com.casic.dcms.vm.NodeViewModel;
-import com.casic.dcms.vm.PersonViewModel;
+import com.casic.dcms.vm.WorkerViewModel;
import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
import com.pengxh.androidx.lite.kit.ContextKit;
@@ -52,7 +52,7 @@
private final Context context = this;
private CaseViewModel caseViewModel;
private NodeViewModel nodeViewModel;
- private PersonViewModel personViewModel;
+ private WorkerViewModel workerViewModel;
private CaseOperateViewModel operateViewModel;
private List nodeDataBeans = new ArrayList<>();
private List personBeans = new ArrayList<>();
@@ -238,7 +238,7 @@
//获取处置类型
nodeViewModel.getNextNode(context, String.valueOf(data.getCaseState()));
//获取下级处置人员
- personViewModel.getSubordinatePerson(context);
+ workerViewModel.getSubordinateWorker(context);
}
}
});
@@ -265,8 +265,8 @@
}
});
- personViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- personViewModel.processPersonModel.observe(this, new Observer() {
+ workerViewModel = new ViewModelProvider(this).get(WorkerViewModel.class);
+ workerViewModel.processPersonModel.observe(this, new Observer() {
@Override
public void onChanged(ProcessPersonBean resultBean) {
if (resultBean.getCode() == 200) {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84c007b..fdb7255 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -120,7 +120,8 @@
-
+
+
diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
index f071931..4e2eb82 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -17,7 +17,6 @@
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.view.OvertimeCaseActivity;
-import com.casic.dcms.view.PersonActivity;
import com.casic.dcms.view.SearchCaseActivity;
import com.casic.dcms.view.UrgentCaseActivity;
import com.casic.dcms.view.bridge.BridgeMaintainActivity;
@@ -35,6 +34,7 @@
import com.casic.dcms.view.upload.BusinessCaseActivity;
import com.casic.dcms.view.upload.CommonCaseActivity;
import com.casic.dcms.view.verify.VerifyCaseActivity;
+import com.casic.dcms.view.worker.OnLineWorkerActivity;
import com.casic.dcms.vm.HomePageViewModel;
import com.casic.dcms.vm.UserViewModel;
import com.pengxh.androidx.lite.adapter.ViewHolder;
@@ -125,7 +125,7 @@
intent.setClass(requireContext(), DataAnalysisActivity.class);
break;
case "在岗人员":
- intent.setClass(requireContext(), PersonActivity.class);
+ intent.setClass(requireContext(), OnLineWorkerActivity.class);
break;
case "案卷查询":
intent.setClass(requireContext(), SearchCaseActivity.class);
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
deleted file mode 100644
index 46f4152..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonListFragment.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.adapter.PersonListAdapter;
-import com.casic.dcms.databinding.FragmentPersonListBinding;
-import com.casic.dcms.model.PersonBean;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.vm.PersonViewModel;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class PersonListFragment extends AndroidxBaseFragment {
-
- private final Set deptSet = new HashSet<>();
- private final List> deptAndPersons = new ArrayList<>(); //个人信息集合的集合
- private PersonViewModel statusViewModel;
- private PersonListAdapter onlinePersonAdapter;
- private List deptList = new ArrayList<>(); //部门名集合
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- onlinePersonAdapter = new PersonListAdapter(requireContext());
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initEvent() {
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- deptList.clear();
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- deptSet.add(bean.getDeptName());
- }
- //hashSet去重然后转List
- deptList = new ArrayList<>(deptSet);
- if (deptList.size() > 0) {
- deptAndPersons.clear();
- for (String title : deptList) {
- List beanList = new ArrayList<>();
- for (PersonStatusBean.DataDTO dataBean : dataBeans) {
- if (title.equals(dataBean.getDeptName())) {
- PersonBean personBean = new PersonBean();
- personBean.setPersonDept(dataBean.getDeptName());
- personBean.setPersonName(dataBean.getName());
- personBean.setPersonPhone(dataBean.getPhone());
- personBean.setLastTimeFmt(dataBean.getLastTimeFmt());
- personBean.setOnLine(dataBean.isOnLine());
- beanList.add(personBean);
- }
- }
- deptAndPersons.add(beanList);
- }
- onlinePersonAdapter.setData(deptList, deptAndPersons);
- getBinding().deptTreeView.setAdapter(onlinePersonAdapter);
- }
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
deleted file mode 100644
index 3baa202..0000000
--- a/app/src/main/java/com/casic/dcms/fragment/PersonOnMapFragment.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.casic.dcms.fragment;
-
-import android.annotation.SuppressLint;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.FragmentPersonMapBinding;
-import com.casic.dcms.model.PersonStatusBean;
-import com.casic.dcms.model.PointPersonBean;
-import com.casic.dcms.utils.ArcGisMapCreator;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.vm.PersonViewModel;
-import com.esri.arcgisruntime.concurrent.ListenableFuture;
-import com.esri.arcgisruntime.geometry.Point;
-import com.esri.arcgisruntime.geometry.SpatialReferences;
-import com.esri.arcgisruntime.mapping.ArcGISMap;
-import com.esri.arcgisruntime.mapping.Basemap;
-import com.esri.arcgisruntime.mapping.BasemapStyle;
-import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
-import com.esri.arcgisruntime.mapping.view.Graphic;
-import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
-import com.esri.arcgisruntime.mapping.view.IdentifyGraphicsOverlayResult;
-import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
-import com.esri.arcgisruntime.util.ListenableList;
-import com.pengxh.androidx.lite.base.AndroidxBaseFragment;
-import com.pengxh.androidx.lite.kit.ContextKit;
-import com.pengxh.androidx.lite.kit.IntKit;
-import com.pengxh.androidx.lite.kit.StringKit;
-import com.pengxh.androidx.lite.utils.WeakReferenceHandler;
-import com.qmuiteam.qmui.widget.popup.QMUIPopup;
-import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-public class PersonOnMapFragment extends AndroidxBaseFragment {
-
- private static final String TAG = "PersonOnMapFragment";
- private WeakReferenceHandler weakReferenceHandler;
- private PersonViewModel statusViewModel;
- private ListenableList graphicsOverlays;
-
- @Override
- protected void setupTopBarLayout() {
-
- }
-
- @Override
- protected void initOnCreate(@Nullable Bundle savedInstanceState) {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- statusViewModel = new ViewModelProvider(this).get(PersonViewModel.class);
- statusViewModel.getPersonByStatus(requireContext(), "", "", "");
-
- getBinding().mapView.setAttributionTextVisible(false); //去掉左下角属性标识
- getBinding().mapView.setViewpointScaleAsync(64000.0);
- ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
- //创建底图、并设置底图图层
- Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
- arcGISMap.setBasemap(baseMap);
- getBinding().mapView.setMap(arcGISMap);
- graphicsOverlays = getBinding().mapView.getGraphicsOverlays();
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void initEvent() {
- List personBeans = new ArrayList<>();
- statusViewModel.personStatusModel.observe(this, new Observer() {
- @Override
- public void onChanged(PersonStatusBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeans = resultBean.getData();
- if (!dataBeans.isEmpty()) {
- for (PersonStatusBean.DataDTO bean : dataBeans) {
- if (bean.isOnLine()) {
- String lng = bean.getPositionLng();
- String lat = bean.getPositionLat();
- if (!TextUtils.isEmpty(lng) || !TextUtils.isEmpty(lat)) {
- PointPersonBean personBean = new PointPersonBean();
- personBean.setPersonName(bean.getName());
- personBean.setPhoneNumber(bean.getPhone());
- personBean.setPersonDept(bean.getDeptName());
- personBean.setLastOnlineTime(bean.getLastTimeFmt());
- personBean.setLastLng(Double.parseDouble(lng));
- personBean.setLastLat(Double.parseDouble(lat));
- personBeans.add(personBean);
- }
- }
- }
- addPictureMarker(personBeans);
- }
- }
- }
- });
-
- getBinding().mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(requireContext(), getBinding().mapView) {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- android.graphics.Point screenPoint = new android.graphics.Point((int) e.getX(), (int) e.getY());
- ListenableFuture> overlaysAsync = mMapView.identifyGraphicsOverlaysAsync(screenPoint, 10.0, false, 1);
- overlaysAsync.addDoneListener(new Runnable() {
- @Override
- public void run() {
- try {
- List overlayResultList = overlaysAsync.get();
- if (!overlayResultList.isEmpty()) {
- IdentifyGraphicsOverlayResult identifyResult = overlayResultList.get(0);
- Point point = identifyResult.getGraphicsOverlay().getExtent().getCenter();
- for (PointPersonBean dataBean : personBeans) {
- if (Math.abs(dataBean.getLastLng() - point.getX()) <= LocaleConstant.DELTA_LNG_10 &&
- Math.abs(dataBean.getLastLat() - point.getY()) <= LocaleConstant.DELTA_LAT_10
- ) {
- Message message = weakReferenceHandler.obtainMessage();
- message.what = 2021051901;
- message.obj = dataBean;
- weakReferenceHandler.sendMessage(message);
- }
- }
- } else {
- weakReferenceHandler.sendEmptyMessage(2021051902);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- });
- return super.onSingleTapConfirmed(e);
- }
- });
- }
-
- private void addPictureMarker(List beans) {
- for (PointPersonBean bean : beans) {
- BitmapDrawable caseDrawable = (BitmapDrawable) ContextCompat.getDrawable(requireContext(), R.mipmap.on_line);
- if (caseDrawable != null) {
- PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable);
- pictureMarker.setWidth(64);
- pictureMarker.setHeight(42);
- pictureMarker.loadAsync(); //异步加载Marker,防止阻塞
- GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
- ListenableList overlayGraphics = graphicsOverlay.getGraphics();
- overlayGraphics.add(new Graphic(
- new Point(bean.getLastLng(), bean.getLastLat(), SpatialReferences.getWgs84()),
- pictureMarker)
- );
- graphicsOverlays.add(graphicsOverlay);
- }
- }
- }
-
- private final Handler.Callback callback = msg -> {
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPhoneNumber());
- lastTimeView.setText(dataBean.getLastOnlineTime());
- QMUIPopups.popup(requireContext(), (int) (ContextKit.getScreenWidth(requireContext()) * 0.8))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(IntKit.dp2px(requireContext(), 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_AUTO)
- .onDismiss(null)
- .show(getBinding().mapView);
- break;
- case 2021051902:
- StringKit.show(requireContext(), "附近无工作人员,请重新选点");
- break;
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
new file mode 100644
index 0000000..621b18c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/OnLinePersonMapBean.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.model;
+
+public class OnLinePersonMapBean {
+ private String personName;
+ private String phoneNumber;
+ private String personDept;
+ private String lastOnlineTime;
+ private double lastLat;
+ private double lastLng;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPersonDept() {
+ return personDept;
+ }
+
+ public void setPersonDept(String personDept) {
+ this.personDept = personDept;
+ }
+
+ public String getLastOnlineTime() {
+ return lastOnlineTime;
+ }
+
+ public void setLastOnlineTime(String lastOnlineTime) {
+ this.lastOnlineTime = lastOnlineTime;
+ }
+
+ public double getLastLat() {
+ return lastLat;
+ }
+
+ public void setLastLat(double lastLat) {
+ this.lastLat = lastLat;
+ }
+
+ public double getLastLng() {
+ return lastLng;
+ }
+
+ public void setLastLng(double lastLng) {
+ this.lastLng = lastLng;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java b/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
deleted file mode 100644
index 1843618..0000000
--- a/app/src/main/java/com/casic/dcms/model/PersonStatusBean.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.casic.dcms.model;
-
-import java.util.List;
-
-public class PersonStatusBean {
-
- private int code;
- private List data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public List getData() {
- return data;
- }
-
- public void setData(List