From e5a090685df3d5e96a37b141d9a1d002d36f16f2 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 14 二月 2025 16:53:43 +0800
Subject: [PATCH] 1.web地图添加管网显示。 2.安卓原生添加管网信息的获取。 3.安卓原生添加管网信息的本地持久化(SQLite数据库)。 4.实现图例用户的选择状态按钮的持久化。 5.实现自定义搜索按钮的实现。 6.实现搜索后弹出界面的相关功能开发。

---
 app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java |   99 +++++++++++++++++--------------------------------
 1 files changed, 35 insertions(+), 64 deletions(-)

diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
index fef6b3d..411a8e2 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
@@ -28,7 +28,6 @@
 import com.dayu.pipirrapp.net.ApiManager;
 import com.dayu.pipirrapp.net.BaseResponse;
 import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
-import com.dayu.pipirrapp.net.upload.UploadFileListener;
 import com.dayu.pipirrapp.tool.FileUploadUtils;
 import com.dayu.pipirrapp.tool.FullyGridLayoutManager;
 import com.dayu.pipirrapp.tool.GlideEngine;
@@ -39,6 +38,8 @@
 import com.dayu.pipirrapp.utils.ToastUtil;
 import com.dayu.pipirrapp.view.TitleBar;
 import com.jeremyliao.liveeventbus.LiveEventBus;
+import com.loper7.date_time_picker.DateTimeConfig;
+import com.loper7.date_time_picker.dialog.CardDatePickerDialog;
 import com.luck.picture.lib.basic.PictureSelectionModel;
 import com.luck.picture.lib.basic.PictureSelector;
 import com.luck.picture.lib.config.PictureMimeType;
@@ -55,10 +56,8 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import retrofit2.Call;
 
@@ -84,6 +83,7 @@
     Map<String, UplodFileState> uplodFileStates = new HashMap<>();
     String workOrderId;
     LatLonBean latLonBean;
+    String strCompleteTime;
 
     /**
      * 瀹氫綅鐩戝惉
@@ -110,6 +110,29 @@
 
     void initView() {
         new TitleBar(this).setTitleText("澶勭悊宸ュ崟").setLeftIco().setLeftIcoListening(v -> OrderDealActivity.this.finish());
+        binding.timeLL.setOnClickListener(v -> {
+            long time = System.currentTimeMillis();
+            List<Integer> list = new ArrayList<>();
+            list.add(DateTimeConfig.YEAR);
+            list.add(DateTimeConfig.MONTH);
+            list.add(DateTimeConfig.DAY);
+            list.add(DateTimeConfig.HOUR);
+            list.add(DateTimeConfig.MIN);
+            new CardDatePickerDialog.Builder(this)
+                    .setTitle("閫夋嫨澶勭悊鏃堕棿")
+                    .setOnChoose("纭畾", aLong -> {
+                        //aLong = millisecond
+                        strCompleteTime = com.dayu.pipirrapp.utils.DateUtils.formatTimestamp(aLong);
+                        binding.timeData.setText(strCompleteTime);
+                        return null;
+                    })
+                    .showBackNow(true)
+                    .setDefaultTime(time)
+                    .setMaxTime(time)
+                    .setMinTime(time - 365L * 24 * 60 * 60 * 1000) // 璁剧疆鏈�灏忔椂闂翠负涓�骞村墠
+                    .setDisplayType(list)
+                    .build().show();
+        });
         mRecyclerView = binding.recycler;
         FullyGridLayoutManager manager = new FullyGridLayoutManager(this,
                 4, GridLayoutManager.VERTICAL, false);
@@ -148,8 +171,7 @@
 
             @Override
             public void onReUpload(UplodFileState uplodFileState) {
-                uplodFileState.setState(UplodFileState.STATE_UPDING);
-                uplodeImg(uplodFileState);
+                FileUploadUtils.uploadFile(OrderDealActivity.this, uplodFileState, uplodFileStates, mAdapter);
             }
         });
         binding.dealButton.setOnClickListener(v -> {
@@ -235,13 +257,6 @@
      * @param result
      */
     private void analyticalSelectResults(ArrayList<LocalMedia> result) {
-        //鑾峰彇褰撳墠uplodFileStates鎵�鏈夌殑鍥剧墖鍦板潃
-        Set<String> existingPaths = new HashSet<>();
-        for (UplodFileState uplodData : uplodFileStates.values()) {
-            existingPaths.add(uplodData.getFilePath());
-        }
-        //鑾峰彇鍦≒ictureSelector鐨勭浉鍐屾椂鍙栨秷閫変腑鐨勫浘鐗�
-        Set<String> resultPaths = new HashSet<>();
         for (LocalMedia media : result) {
             if (media.getWidth() == 0 || media.getHeight() == 0) {
                 if (PictureMimeType.isHasImage(media.getMimeType())) {
@@ -270,60 +285,16 @@
             Log.i(TAG, "瑁佸壀瀹介珮: " + media.getCropImageWidth() + "x" + media.getCropImageHeight());
             Log.i(TAG, "鏂囦欢澶у皬: " + PictureFileUtils.formatAccurateUnitFileSize(media.getSize()));
             Log.i(TAG, "鏂囦欢鏃堕暱: " + media.getDuration());
-            String compressPath = media.getCompressPath();
-            //鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗�
-            if (TextUtils.isEmpty(compressPath)) {
-                compressPath = media.getRealPath();
-            }
-            if (!existingPaths.contains(compressPath)) {
-                UplodFileState uplodFileState = new UplodFileState();
-                uplodFileState.setFilePath(compressPath);
-                if (compressPath.toLowerCase().endsWith(".mp4") || compressPath.toLowerCase().endsWith(".avi") || compressPath.toLowerCase().endsWith(".mkv") || compressPath.toLowerCase().endsWith(".mov")) {
-                    // 杩欐槸瑙嗛鏂囦欢
-                    uplodFileState.setUploadType(UplodFileState.VIDEO_TYPE);
-                }else {
-                    uplodFileState.setUploadType(UplodFileState.IMG_TYPE);
-                }
-                uplodFileStates.put(compressPath, uplodFileState);
-                // 鎵ц涓婁紶鍥剧墖鐨勬搷浣�
-                uplodeImg(uplodFileState);
-            }
-
-            resultPaths.add(media.getCompressPath());
+            Log.i(TAG, "鎵╁睍鍚�: " + media.getMimeType());
+            FileUploadUtils.creatAndUploadFile(this, media, uplodFileStates, mAdapter);
         }
-        //澶勭悊浠庣浉鍐岃繑鍥炴椂鍙栨秷鐨勫浘鐗囧鐞�
-        existingPaths.removeAll(resultPaths);
-        if (!existingPaths.isEmpty()) {
-            List<UplodFileState> toRemove = new ArrayList<>();
-            for (String path : existingPaths) {
-                for (UplodFileState uplodFileState : uplodFileStates.values()) {
-                    if (path.equals(uplodFileState.getFilePath())) {
-                        uplodFileState.getThisCall().cancel();
-                        toRemove.add(uplodFileState);
-                    }
-                }
-            }
-            for (UplodFileState removeFile : toRemove) {
-                uplodFileStates.remove(removeFile.getFilePath());
-            }
-        }
-        runOnUiThread(() -> {
-            boolean isMaxSize = result.size() == mAdapter.getSelectMax();
-            int oldSize = mAdapter.getData().size();
-            mAdapter.notifyItemRangeRemoved(0, isMaxSize ? oldSize + 1 : oldSize);
-            mAdapter.getData().clear();
-
-            mAdapter.getData().addAll(result);
-            mAdapter.notifyItemRangeInserted(0, result.size());
-
-        });
+        // 鑾峰彇 result 涓病鏈夎�� uplodFileStates 涓湁鐨勫湴鍧�
+        FileUploadUtils.cancelRemovedUploads(result, uplodFileStates);
+        // 鏇存柊UI
+        FileUploadUtils.updateUI(result, mAdapter);
     }
 
 
-    //涓婁紶鍥剧墖
-    private void uplodeImg(UplodFileState uplodFileState) {
-        FileUploadUtils.uploadFile(this, uplodFileState, uplodFileStates, mAdapter);
-    }
 
     /**
      * 涓婃姤澶勭悊缁撴灉
@@ -334,7 +305,7 @@
         result.setContent(binding.contentET.getText().toString());
         result.setInspectorId(MyApplication.myApplication.userId);
         result.setWorkOrderId(workOrderId);
-        result.setCompleteTime(com.dayu.pipirrapp.utils.DateUtils.getNowDateToMMStr());
+        result.setCompleteTime(strCompleteTime);
         if (latLonBean != null) {
             result.setLat(String.valueOf(latLonBean.getLatitude()));
             result.setLng(String.valueOf(latLonBean.getLongitude()));
@@ -391,7 +362,7 @@
         if (uplodFileState != null) {
             path = uplodFileState.getFilePath();
             try {
-                Call<BaseResponse> mCall = uplodFileStates.get(path).getThisCall();
+                Call mCall = uplodFileStates.get(path).getThisCall();
                 if (mCall != null) {
                     mCall.cancel();
                     MyLog.d("progressRequestBody>>>" + "cancel銆嬨�嬨�媝ath:" + path);

--
Gitblit v1.8.0