Browse Source

通用版送修单增加人员编号相关功能, 增加附件上传功能

songw 7 months ago
parent
commit
5aedda7b52
29 changed files with 1298 additions and 41 deletions
  1. 10 3
      app/build.gradle
  2. 13 0
      app/proguard-rules.pro
  3. 19 4
      app/src/main/AndroidManifest.xml
  4. 137 0
      app/src/main/java/com/uas/equipment/adapter/AnnexAdapter.java
  5. 3 2
      app/src/main/java/com/uas/equipment/application/PdaApplication.java
  6. 50 0
      app/src/main/java/com/uas/equipment/bean/AnnexBean.java
  7. 32 0
      app/src/main/java/com/uas/equipment/bean/LineCodeEntity.java
  8. 577 0
      app/src/main/java/com/uas/equipment/fragment/BreakdownRepairFragment.java
  9. 5 2
      app/src/main/java/com/uas/equipment/global/GloableParams.java
  10. 5 0
      app/src/main/java/com/uas/equipment/listener/ProgressListener.java
  11. 18 0
      app/src/main/java/com/uas/equipment/util/ClickUtils.java
  12. 161 0
      app/src/main/java/com/uas/equipment/util/MyLog.java
  13. BIN
      app/src/main/res/drawable-hdpi/qingchu.png
  14. BIN
      app/src/main/res/drawable-xhdpi/ic_delete.png
  15. BIN
      app/src/main/res/drawable-xhdpi/tupian.png
  16. BIN
      app/src/main/res/drawable-xhdpi/zengjiatu.png
  17. 110 6
      app/src/main/res/layout/fragment_breakdownrepair.xml
  18. 93 0
      app/src/main/res/layout/index_line_pup.xml
  19. 40 0
      app/src/main/res/layout/item_annex_image.xml
  20. 3 3
      build.gradle
  21. 1 0
      pda_libs/pulltoreflashlibrary/.gitignore
  22. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml
  23. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/aapt_friendly_merged_manifests/release/aapt/AndroidManifest.xml
  24. 14 14
      pda_libs/pulltoreflashlibrary/build/intermediates/incremental/packageDebugResources/compile-file-map.properties
  25. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties
  26. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
  27. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt
  28. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/merged_manifest/debug/AndroidManifest.xml
  29. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/merged_manifest/release/AndroidManifest.xml

+ 10 - 3
app/build.gradle

@@ -27,6 +27,10 @@ android {
                 includeCompileClasspath = true
             }
         }
+        ndk {
+            //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
+            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
+        }
     }
     buildTypes {
         release {
@@ -90,9 +94,12 @@ dependencies {
     implementation(deps.MultiTypeFilePicker) {
         exclude group: "com.android.support"
     }
-    implementation  'com.umeng.umsdk:common:9.4.0'// 必选
-    implementation  'com.umeng.umsdk:asms:1.2.3'// 必选
-    implementation 'com.umeng.umsdk:apm:1.4.0' // 错误分析升级为独立SDK,看crash数据请一定集成,可选
+
+    // 友盟基础组件库(所有友盟业务SDK都依赖基础组件库)
+    implementation 'com.umeng.umsdk:common:9.4.4' //(必选)
+    implementation 'com.umeng.umsdk:asms:1.4.1' // asms包依赖(必选)
+    implementation 'com.umeng.umsdk:apm:1.5.2' // U-APM包依赖(必选) 错误分析升级为独立SDK,看crash数据请一定集成
+
     implementation 'org.greenrobot:eventbus:3.2.0'
     //XBanner
     implementation 'com.xhb:xbanner:1.3.1'

+ 13 - 0
app/proguard-rules.pro

@@ -19,3 +19,16 @@
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
 #-renamesourcefileattribute SourceFile
+
+
+#友盟混淆
+-keep class com.umeng.** {*;}
+-keep class org.repackage.** {*;}
+-keep class com.uyumao.** { *; }
+-keepclassmembers class * {
+   public <init> (org.json.JSONObject);
+}
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}

+ 19 - 4
app/src/main/AndroidManifest.xml

@@ -2,11 +2,26 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     package="com.uas.equipment"
-    android:versionCode="1"
-    android:versionName="1.0">
+    >
 
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
+
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
+    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
+    <uses-permission android:name="android.permission.INTERNET"/>
+
+    <uses-permission android:name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"/>
 
     <application
         android:name="com.uas.equipment.application.PdaApplication"

+ 137 - 0
app/src/main/java/com/uas/equipment/adapter/AnnexAdapter.java

@@ -0,0 +1,137 @@
+package com.uas.equipment.adapter;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+
+import com.uas.equipment.R;
+import com.uas.equipment.bean.AnnexBean;
+
+import java.util.List;
+
+public class AnnexAdapter extends RecyclerView.Adapter<AnnexAdapter.ViewHolder> {
+
+    private Context context;
+    private List<AnnexBean> itemList;
+
+    public AnnexAdapter(Context context, List<AnnexBean> itemList) {
+        this.context = context;
+        this.itemList = itemList;
+    }
+
+    public void setListNotTitle(List<AnnexBean> itemList){
+        this.itemList = itemList;
+        notifyDataSetChanged();
+    }
+
+    public void setList(List<AnnexBean> itemList){
+        this.itemList = itemList;
+        this.itemList.add(0,new AnnexBean(true,"","",true));
+        notifyDataSetChanged();
+    }
+
+    public void addList(List<AnnexBean> itemList){
+        this.itemList.addAll(itemList);
+        notifyDataSetChanged();
+    }
+
+    @Override
+    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_annex_image, parent, false);
+        return new ViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(ViewHolder holder,int position) {
+        if (itemList.get(position).isAddImage()) {
+            holder.rl_image.setVisibility(View.GONE);
+            holder.iv_zengjiatu.setVisibility(View.VISIBLE);
+        }else {
+            holder.rl_image.setVisibility(View.VISIBLE);
+            holder.iv_zengjiatu.setVisibility(View.GONE);
+        }
+
+        AnnexBean annexBean = itemList.get(position);
+        if (!annexBean.isUsable()) {
+            return;
+        }
+        if (!TextUtils.isEmpty(annexBean.getImagePath())) {
+            String imagePath = annexBean.getImagePath();
+            BitmapFactory.Options options = new BitmapFactory.Options();
+            options.inJustDecodeBounds = true;
+            Bitmap bitmap = BitmapFactory.decodeFile(imagePath, options);
+            float realWidth = options.outWidth;
+            float realHeight = options.outHeight;
+            int scale = (int) ((realHeight > realWidth ? realHeight : realWidth) / 100);
+            options.inSampleSize = scale;
+            options.inJustDecodeBounds = false;
+            bitmap = BitmapFactory.decodeFile(imagePath, options);
+            holder.iv_fujiantu.setImageBitmap(bitmap);
+        }
+
+        holder.iv_zengjiatu.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (addImage != null) {
+                    addImage.startAdd();
+                }
+            }
+        });
+
+        holder.iv_fujiantu.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+            }
+        });
+
+        holder.iv_cancel.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (position > 0) {
+//                    itemList.remove(position);
+                    if (addImage != null) {
+                        addImage.delete(position);
+                    }
+                }
+            }
+        });
+    }
+
+    @Override
+    public int getItemCount() {
+        return itemList.size();
+    }
+
+    static class ViewHolder extends RecyclerView.ViewHolder {
+        ImageView iv_fujiantu,iv_cancel,iv_zengjiatu;
+        RelativeLayout rl_image;
+
+        ViewHolder(View itemView) {
+            super(itemView);
+            iv_fujiantu = itemView.findViewById(R.id.iv_fujiantu);
+            iv_cancel = itemView.findViewById(R.id.iv_cancel);
+            iv_zengjiatu = itemView.findViewById(R.id.iv_zengjiatu);
+            rl_image = itemView.findViewById(R.id.rl_image);
+        }
+    }
+
+    private AddImage addImage;
+
+    public void setImageUpload(AddImage addImage){
+        this.addImage = addImage;
+    }
+
+    public interface AddImage {
+        void startAdd();
+        void delete(int position);
+    }
+
+}

+ 3 - 2
app/src/main/java/com/uas/equipment/application/PdaApplication.java

@@ -86,18 +86,19 @@ public class PdaApplication extends Application {
         mSoundMap.put(SoundUtil.SOUND_SALACIA, mSoundPool.load(this, R.raw.salacia, 1));
         mSoundMap.put(SoundUtil.SOUND_TETHYS, mSoundPool.load(this, R.raw.tethys, 1));
         mSoundMap.put(SoundUtil.SOUND_TITAN, mSoundPool.load(this, R.raw.titan, 1));
+
         initUmeng();
 //        getMessageData();
     }
 
     private void initUmeng() {
         //2.在Application.oncreate()中调用预初始化函数
-        UMConfigure.preInit(this, "6188763d09a805384d5e40d7","umeng");
+        UMConfigure.preInit(this, "681dc130bc47b67d835fe54d","umeng");
         UMConfigure.setLogEnabled(true);
         //3.客户端用户同意隐私政策后,正式初始化友盟+SDK
         UMConfigure.init(
                 this,
-                "6188763d09a805384d5e40d7",
+                "681dc130bc47b67d835fe54d",
                 "umeng",
                 UMConfigure.DEVICE_TYPE_PHONE, ""
         );

+ 50 - 0
app/src/main/java/com/uas/equipment/bean/AnnexBean.java

@@ -0,0 +1,50 @@
+package com.uas.equipment.bean;
+
+public class AnnexBean {
+
+    private boolean isAddImage;     //是否是添加的图标
+    private String imagePath;   //图片路径
+    private String imageID;     //图片附件的ID,每张图片都带";"号
+    private boolean isUsable;   //是否可用
+
+    public AnnexBean(boolean isAddImage, String imagePath, String imageID, boolean isUsable) {
+        this.isAddImage = isAddImage;
+        this.imagePath = imagePath;
+        this.imageID = imageID;
+        this.isUsable = isUsable;
+    }
+
+    public boolean isAddImage() {
+        return isAddImage;
+    }
+
+    public void setAddImage(boolean addImage) {
+        isAddImage = addImage;
+    }
+
+
+    public String getImagePath() {
+        return imagePath;
+    }
+
+    public void setImagePath(String imagePath) {
+        this.imagePath = imagePath;
+    }
+
+
+    public String getImageID() {
+        return imageID;
+    }
+
+    public void setImageID(String imageID) {
+        this.imageID = imageID;
+    }
+
+    public boolean isUsable() {
+        return isUsable;
+    }
+
+    public void setUsable(boolean usable) {
+        isUsable = usable;
+    }
+}

+ 32 - 0
app/src/main/java/com/uas/equipment/bean/LineCodeEntity.java

@@ -0,0 +1,32 @@
+package com.uas.equipment.bean;
+
+
+public class LineCodeEntity {
+    private String LI_CODE;
+    private String LI_NAME;
+    private boolean checked;
+
+    public boolean getChecked() {
+        return checked;
+    }
+
+    public void setChecked(boolean checked) {
+        this.checked = checked;
+    }
+
+    public String getLI_CODE() {
+        return LI_CODE;
+    }
+
+    public void setLI_CODE(String LI_CODE) {
+        this.LI_CODE = LI_CODE;
+    }
+
+    public String getLI_NAME() {
+        return LI_NAME;
+    }
+
+    public void setLI_NAME(String LI_NAME) {
+        this.LI_NAME = LI_NAME;
+    }
+}

+ 577 - 0
app/src/main/java/com/uas/equipment/fragment/BreakdownRepairFragment.java

@@ -1,35 +1,79 @@
 package com.uas.equipment.fragment;
 
+import android.Manifest;
 import android.app.Activity;
 import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.database.Cursor;
 import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
+import android.net.Uri;
 import android.os.Bundle;
+import android.provider.MediaStore;
+import android.support.annotation.Nullable;
+import android.support.v4.app.ActivityCompat;
+import android.support.v7.widget.DividerItemDecoration;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Gravity;
 import android.view.KeyEvent;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.view.Window;
 import android.view.inputmethod.EditorInfo;
 import android.widget.Button;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.android.volley.Request;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
 import com.uas.equipment.R;
 import com.uas.equipment.activity.FunctionActivity;
+import com.uas.equipment.adapter.AnnexAdapter;
+import com.uas.equipment.bean.AnnexBean;
+import com.uas.equipment.bean.LineCodeEntity;
 import com.uas.equipment.camera.CaptureActivity;
 import com.uas.equipment.camera.CodeUtils;
 import com.uas.equipment.global.GloableParams;
+import com.uas.equipment.interfaces.ProgressListener;
 import com.uas.equipment.tools.SharedPreUtil;
 import com.uas.equipment.util.CameraUtil;
+import com.uas.equipment.util.ClickUtils;
 import com.uas.equipment.util.CommonUtil;
 import com.uas.equipment.util.Constants;
 import com.uas.equipment.util.FastjsonUtil;
 import com.uas.equipment.util.HttpCallback;
 import com.uas.equipment.util.HttpParams;
+import com.uas.equipment.util.LogUtil;
 import com.uas.equipment.util.StringUtil;
+import com.uas.equipment.util.UploadUtils;
+import com.uas.equipment.util.VolleyRequest;
 import com.uas.equipment.util.VollyRequest;
 import com.uas.equipment.view.ClearableEditText;
+import com.uas.equipment.view.business.ProgressPopup;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+import razerdp.basepopup.BasePopupWindow;
 
 /**
  * Created by cjh-sail on 2023-01-31
@@ -49,6 +93,31 @@ public class BreakdownRepairFragment extends BaseFragment{
     private ImageView storage_recharge_scan_iv;
     private int mFocusId;
     private static final int SCAN_BARCODE_CODE = 111;
+
+    private TextView tv_dc_emcode;
+    private ImageView iv_dc_emcode_delete, iv_number_search_for, iv_clear;
+    private String li_personne_id;      //人员编号
+    private GetLinePortAdapter getLinePortAdapter;
+    private ArrayList<LineCodeEntity> personnelList;
+    private ClearableEditText edit_et;
+    private RecyclerView rv_getline_ip_port_data;
+    private PopupWindow editPW;
+
+    private RecyclerView rv_qc_fujian;
+    private List<AnnexBean>  fujianList1;
+    private AnnexAdapter fuJianAdapter;
+    private final int REQUEST_EXTERNAL_STORAGE = 1;
+    private String[] PERMISSIONS_STORAGE = {
+            Manifest.permission.READ_EXTERNAL_STORAGE,
+            Manifest.permission.WRITE_EXTERNAL_STORAGE};
+    private static final int REQUEST_CODE1 = 1;
+    private int fujian = 0;
+    private List<String> selectedImagePaths = new ArrayList<>();
+    private int uploadRecords;
+    private List<AnnexBean> templist;
+    private int uploadRecordsNumber;
+    private ProgressPopup mProgressPopup;
+
     @Override
     protected int getLayout() {
         return R.layout.fragment_breakdownrepair;
@@ -65,10 +134,33 @@ public class BreakdownRepairFragment extends BaseFragment{
         btn_commit = root.findViewById(R.id.btn_commit);
         ce_de_code = root.findViewById(R.id.ce_de_code);
         storage_recharge_scan_iv = root.findViewById(R.id.storage_recharge_scan_iv);
+
+        tv_dc_emcode = root.findViewById(R.id.tv_dc_emcode);
+        iv_dc_emcode_delete = root.findViewById(R.id.iv_dc_emcode_delete);
+        iv_number_search_for = root.findViewById(R.id.iv_number_search_for);
+        iv_clear = root.findViewById(R.id.iv_clear);
+
+        rv_qc_fujian = root.findViewById(R.id.rv_qc_fujian);
     }
 
     @Override
     protected void initEvents() {
+        iv_clear.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                tv_dc_emcode.setFocusableInTouchMode(true);
+                tv_dc_emcode.setText("");
+                tv_dc_emcode.requestFocus();
+            }
+        });
+        iv_dc_emcode_delete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                tv_dc_emcode.setFocusableInTouchMode(true);
+                tv_dc_emcode.setText("");
+                tv_dc_emcode.requestFocus();
+            }
+        });
         ce_de_code.setOnEditorActionListener(new TextView.OnEditorActionListener() {
             @Override
             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
@@ -102,8 +194,254 @@ public class BreakdownRepairFragment extends BaseFragment{
                 }
             }
         });
+
+        iv_number_search_for.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                initGetPersonnelID();
+            }
+        });
     }
 
+    private void initGetPersonnelID() {
+        li_personne_id = "";
+        personnelList.clear();
+        getLinePortAdapter = new GetLinePortAdapter(personnelList);
+        View contView = LayoutInflater.from(mActivity).inflate(R.layout.index_line_pup, null);
+        edit_et = (ClearableEditText) contView.findViewById(R.id.edit_et);
+        TextView sure_tv = (TextView) contView.findViewById(R.id.sure_tv);
+        TextView cancle_tv = (TextView) contView.findViewById(R.id.cancle_tv);
+        ImageView search_im = contView.findViewById(R.id.search_im);
+        LinearLayout line_top = contView.findViewById(R.id.line_top);
+        rv_getline_ip_port_data = contView.findViewById(R.id.rv_ip_port_data);
+        rv_getline_ip_port_data.addItemDecoration(new DividerItemDecoration(mActivity, LinearLayout.VERTICAL));
+        rv_getline_ip_port_data.setLayoutManager(new LinearLayoutManager(mActivity));
+        getLinePortAdapter.setmList(personnelList);
+        rv_getline_ip_port_data.setAdapter(getLinePortAdapter);
+        getPersonnelID();
+
+        editPW = new PopupWindow(contView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
+        editPW.setTouchable(true);
+        editPW.setBackgroundDrawable(new BitmapDrawable());
+        editPW.setOnDismissListener(new BasePopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                closeListPopupWindow();
+            }
+        });
+        View parentView = mActivity.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
+        editPW.showAtLocation(parentView, Gravity.CENTER, 0, 0);
+        CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
+        search_im.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String mSearchStr = edit_et.getText().toString().trim();
+                if (!mSearchStr.isEmpty()) {
+                    List<LineCodeEntity> thisList = new ArrayList<>();
+                    for (int i = 0; i < personnelList.size(); i++) {
+                        if (personnelList.get(i).getLI_CODE().contains(mSearchStr) ||
+                                personnelList.get(i).getLI_NAME().contains(mSearchStr)
+                        ) {
+                            thisList.add(personnelList.get(i));
+                        }
+                        if (i == personnelList.size() - 1) {
+                            getLinePortAdapter = new GetLinePortAdapter(thisList);
+                            rv_getline_ip_port_data.setAdapter(getLinePortAdapter);
+                            LogUtil.i("mSearchStr", JSON.toJSONString(thisList));
+                        }
+                        List<LineCodeEntity> lineCodeEntities = getLinePortAdapter.getmList();
+                        for (int j = 0; j < lineCodeEntities.size(); j++) {
+                            lineCodeEntities.get(j).setChecked(false);
+                        }
+                        getLinePortAdapter.notifyDataSetChanged();
+                    }
+                } else {
+                    getLinePortAdapter = new GetLinePortAdapter(personnelList);
+                    rv_getline_ip_port_data.setAdapter(getLinePortAdapter);
+                    List<LineCodeEntity> lineCodeEntities = getLinePortAdapter.getmList();
+                    for (int i = 0; i < lineCodeEntities.size(); i++) {
+                        lineCodeEntities.get(i).setChecked(false);
+                    }
+                    getLinePortAdapter.notifyDataSetChanged();
+
+                }
+                getLinePortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+                    @Override
+                    public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
+                        try {
+                            List<LineCodeEntity> lineCodeEntities = getLinePortAdapter.getmList();
+                            String li_code = lineCodeEntities.get(position).getLI_CODE();
+                            if (TextUtils.isEmpty(li_personne_id)) {
+                                li_personne_id = li_code;
+                            }else{
+                                if (li_personne_id.contains(li_code)){
+                                    String[] split = li_personne_id.split(",");
+                                    for (int i = 0; i < split.length; i++) {
+                                        if (split[i].equals(li_code)) {
+                                            if (li_personne_id.length() > li_code.length()) {
+                                                int start = li_personne_id.indexOf(li_code) - 1;
+                                                int end = start + li_code.length() + 1;
+                                                if(start <= 0) {
+                                                    li_personne_id = li_personne_id.substring(end);
+                                                }else {
+                                                    li_personne_id = li_personne_id.substring(0, start).concat(li_personne_id.substring(end));
+                                                }
+                                            }else {
+                                                li_personne_id = "";
+                                            }
+                                        }
+                                    }
+                                }else {
+                                    li_personne_id += "," + li_code;
+                                }
+                            }
+                            for (int i = 0; i < lineCodeEntities.size(); i++) {
+                                String[] split = li_personne_id.split(",");
+                                for (int i1 = 0; i1 < split.length; i1++) {
+                                    if (li_code.equals(split[i1])) {
+                                        lineCodeEntities.get(position).setChecked(true);
+                                    }else {
+                                        lineCodeEntities.get(position).setChecked(false);
+                                    }
+                                }
+                            }
+                            getLinePortAdapter.notifyDataSetChanged();
+                        }catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                });
+            }
+        });
+
+        getLinePortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
+                try {
+                    List<LineCodeEntity> lineCodeEntities = getLinePortAdapter.getmList();
+                    String li_code = lineCodeEntities.get(position).getLI_CODE();
+                    if (TextUtils.isEmpty(li_personne_id)) {
+                        li_personne_id = li_code;
+                    }else{
+                        if (li_personne_id.contains(li_code)){
+                            String[] split = li_personne_id.split(",");
+                            for (int i = 0; i < split.length; i++) {
+                                if (split[i].equals(li_code)) {
+                                    if (li_personne_id.length() > li_code.length()) {
+                                        int start = li_personne_id.indexOf(li_code) - 1;
+                                        int end = start + li_code.length() + 1;
+                                        if(start <= 0) {
+                                            li_personne_id = li_personne_id.substring(end);
+                                        }else {
+                                            li_personne_id = li_personne_id.substring(0, start).concat(li_personne_id.substring(end));
+                                        }
+                                    }else {
+                                        li_personne_id = "";
+                                    }
+                                }
+                            }
+                        }else {
+                            li_personne_id += "," + li_code;
+                        }
+                    }
+                    for (int i = 0; i < lineCodeEntities.size(); i++) {
+                        String[] split = li_personne_id.split(",");
+                        for (int i1 = 0; i1 < split.length; i1++) {
+                            if (li_code.equals(split[i1])) {
+                                lineCodeEntities.get(position).setChecked(true);
+                            }else {
+                                lineCodeEntities.get(position).setChecked(false);
+                            }
+                        }
+                    }
+                    getLinePortAdapter.notifyDataSetChanged();
+                }catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+
+        //确定
+        sure_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (!StringUtil.isEmpty(li_personne_id)) {
+                    tv_dc_emcode.setText(li_personne_id);
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, "请选择人员编号");
+                    return;
+                }
+                closeListPopupWindow();
+            }
+        });
+
+        //取消
+        cancle_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeListPopupWindow();
+            }
+        });
+    }
+
+    private void setcodelineAdapter(ArrayList<LineCodeEntity> mList) {
+        getLinePortAdapter.setmList(mList);
+        getLinePortAdapter.notifyDataSetChanged();
+        rv_getline_ip_port_data.setAdapter(getLinePortAdapter);
+    }
+
+    private void closeListPopupWindow() {
+        if (editPW != null) {
+            editPW.dismiss();
+            editPW = null;
+            CommonUtil.setBackgroundAlpha(mActivity, 1f);
+        }
+    }
+
+    private void getPersonnelID() {
+        //        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADD_GET_PERSONNEL_ID)
+                .method(Request.Method.POST)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                personnelList.clear();
+                try {
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    if (dataArray != null) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+                                LineCodeEntity lineCodeEntity = new LineCodeEntity();
+                                lineCodeEntity.setLI_CODE(FastjsonUtil.getText(dataObject, "EM_CODE"));
+                                lineCodeEntity.setLI_NAME(FastjsonUtil.getText(dataObject, "EM_NAME"));
+                                personnelList.add(lineCodeEntity);
+                            }
+                        }
+                    }
+                    if (personnelList.size() == 0) {
+                        CommonUtil.toastNoRepeat(mActivity, "人员编号数据为空");
+                    } else {
+                        setcodelineAdapter(personnelList);
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+
     @Override
     protected void initDatas() {
         Bundle arguments = getArguments();
@@ -122,9 +460,183 @@ public class BreakdownRepairFragment extends BaseFragment{
             }
         });
 
+        personnelList = new ArrayList<>();
+
+        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
+        rv_qc_fujian.setLayoutManager(linearLayoutManager);
+        fujianList1 = new ArrayList<>();
+        fujianList1.add(new AnnexBean(true, "", "", true));
+        fuJianAdapter = new AnnexAdapter(getActivity(), fujianList1);
+        rv_qc_fujian.setAdapter(fuJianAdapter);
+        fuJianAdapter.setImageUpload(new AnnexAdapter.AddImage() {
+            @Override
+            public void startAdd() {
+                verifyStoragePermissions(mActivity);
+                // 启动文件选择器
+                Intent intent = new Intent(Intent.ACTION_PICK);
+                intent.setType("image/*");
+                intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
+                startActivityForResult(Intent.createChooser(intent, "Select Images"), REQUEST_CODE1);
+            }
+
+            @Override
+            public void delete(int position) {
+                if(position < fujianList1.size()) {
+                    fujianList1.remove(position);
+                    fuJianAdapter.setListNotTitle(fujianList1);
+                }
+            }
+        });
+    }
+
+    private String getRealPathFromUri(Uri uri) {
+        // 获取真实的文件路径
+        String filePath;
+        String[] projection = {MediaStore.Images.Media.DATA};
+        Cursor cursor = mActivity.getContentResolver().query(uri, projection, null, null, null);
+        if (cursor == null) {
+            filePath = uri.getPath();
+        } else {
+            cursor.moveToFirst();
+            int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
+            filePath = cursor.getString(columnIndex);
+            cursor.close();
+        }
+        return filePath;
+    }
+
+    private void uploadImages(List<String> imagePaths) {
+        uploadRecords = 0;
+        if (templist == null) {
+            templist = new ArrayList<>();
+        } else {
+            templist.clear();
+        }
+        uploadRecordsNumber = imagePaths.size();
+        for (String imagePath : imagePaths) {
+            try {
+                File mFile = new File(imagePath);
+                // 获得文件名
+                String fileName = mFile.getName();
+                MultipartBody.Builder builder = new MultipartBody.Builder();
+                builder.setType(MultipartBody.FORM);
+                //第一个参数要与Servlet中的一致
+                builder.addFormDataPart("file", fileName,
+                        RequestBody.create(MediaType.parse("application/octet-stream"), mFile))
+                        .addFormDataPart("type", "common")
+                        .addFormDataPart("master", CommonUtil.getMaster(mActivity));
+                RequestBody multipartBody = builder.build();
+                if (mProgressPopup == null) {
+                    mProgressPopup = new ProgressPopup(getActivity());
+                    mProgressPopup.setTitle("附件上传中...");
+                }
+                mProgressPopup.setProgress(0);
+                mProgressPopup.showPopupWindow();
+
+                UploadUtils.getInstance().postFile(GloableParams.ADDRESS_MOBILE_UPLOADATTACHS, multipartBody, new ProgressListener() {
+                    @Override
+                    public void onProgress(long currentBytes, long contentLength, boolean isDone) {
+                        int progress = (int) ((double) currentBytes * 100 / (double) contentLength);
+                        mProgressPopup.setProgress(progress);
+                        if (isDone || progress == 100) {
+                            mProgressPopup.dismiss();
+                        }
+                    }
+                }, new Callback() {
+                    @Override
+                    public void onFailure(Call call, IOException e) {
+                        mProgressPopup.dismiss();
+                        Log.d("raomeng_uploadf", e.getMessage());
+                        mActivity.runOnUiThread(new Runnable() {
+                            @Override
+                            public void run() {
+                                //CommonUtil.toastNoRepeat(mActivity, "附件上传失败");
+                                tv_prompt.setTextColor(getResources().getColor(R.color.red));
+                                tv_prompt.setText("附件上传失败");
+                            }
+                        });
+                    }
+
+                    @Override
+                    public void onResponse(Call call, Response response) throws IOException {
+                        mProgressPopup.dismiss();
+                        if (response.code() == 200) {
+                            try {
+                                String result = response.body().string();
+                                JSONObject resultObject = JSON.parseObject(result);
+                                String mEnclusureId = FastjsonUtil.getText(resultObject, "id");
+                                String s = removeSpace(mEnclusureId);
+                                String s1 = removeSpace2(s);
+                                Log.d("aaa", "切割后的数据: " + s1 + "");
+                                if (fujian == 1) {
+                                    fujianList1.add(new AnnexBean(false, mFile.getAbsolutePath(), s1 + ";", true));
+                                }
+                            } catch (IOException e) {
+                                e.printStackTrace();
+                            }
+                            mActivity.runOnUiThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    uploadRecords++;
+                                    if (uploadRecords == uploadRecordsNumber) {
+                                        tv_prompt.setTextColor(getResources().getColor(R.color.blue));
+                                        tv_prompt.setText("附件上传成功");
+                                        // CommonUtil.toastNoRepeat(mActivity,  "附件上传成功");
+                                        if (fujian == 1) {
+                                            //                                            Collections.reverse(fujianList1);
+                                            //                                            annexQCFuJianAdapter.addList(templist);
+                                            //                                            fujianList1.addAll(templist);
+                                            fuJianAdapter.setListNotTitle(fujianList1);
+                                            for (int i = 0; i < fujianList1.size(); i++) {
+                                                Log.e("aaa","是否为+号" + fujianList1.get(i).isAddImage() + "当前的id是:" + fujianList1.get(i).getImageID());
+                                            }
+                                        }
+                                    }
+                                }
+                            });
+                        }
+                    }
+                }, new File[]{mFile});
+            } catch (Exception e) {
+                if (mProgressPopup != null) {
+                    mProgressPopup.dismiss();
+                }
+                tv_prompt.setTextColor(getResources().getColor(R.color.red));
+                tv_prompt.setText("附件上传失败");
+                //CommonUtil.toastNoRepeat(mActivity, "附件上传失败");
+            }
+        }
+
+    }
+
+    public String removeSpace(String s) {
+        String regex = "\\[";
+        Pattern pattern = Pattern.compile(regex);
+        Matcher matcher = pattern.matcher(s);
+        return matcher.replaceAll("");
+    }
+
+    public String removeSpace2(String s) {
+        String regex = "]";
+        Pattern pattern = Pattern.compile(regex);
+        Matcher matcher = pattern.matcher(s);
+        return matcher.replaceAll("");
+    }
+
+    public void verifyStoragePermissions(Activity activity) {
+        int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
+        if (permission != PackageManager.PERMISSION_GRANTED) {
+            ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
+        }
     }
 
     public void getNewCommitData(){
+        ClickUtils.pauseTime = 2000;
+        if (ClickUtils.isFastClick()) {
+            CommonUtil.toastNoRepeat(mActivity, "请勿点击过快");
+            return;
+        }
+
         if (index_fault_phenomenon.getText().toString().trim().isEmpty()||index_position_resource.getText().toString().trim().isEmpty()){
             CommonUtil.toastNoRepeat(mActivity, "请填写故障现象!");
             return;
@@ -133,6 +645,16 @@ public class BreakdownRepairFragment extends BaseFragment{
 //            CommonUtil.toastNoRepeat(mActivity, "请填写备注!");
 //            return;
 //        }
+
+        //附件ID
+        String fujianStr1 = "";
+        if (fujianList1.size() > 0) {
+            for (int i = 1; i < fujianList1.size(); i++) {
+                String s = fujianList1.get(i).getImageID();
+                fujianStr1 += s;
+            }
+        }
+
         progressDialog.show();
         JSONObject jsonObject = new JSONObject();
         JSONArray jsonArray = new JSONArray();
@@ -147,6 +669,8 @@ public class BreakdownRepairFragment extends BaseFragment{
                 .addParam("caller", "DeviceChange!Inspect")
                 .addParam("de_code",de_code)
                 .addParam("formStore",jsonArray.toString())
+                .addParam("fp_id",fujianStr1)
+                .addParam("em_name",li_personne_id)
                 .build(), new HttpCallback() {
             @Override
             public void onSuccess(int flag, Object o) throws Exception {
@@ -237,5 +761,58 @@ public class BreakdownRepairFragment extends BaseFragment{
                 }
             }
         }
+
+        //图片附件上传相关
+        if (requestCode == REQUEST_CODE1 && data != null) {
+            fujian = 1;
+        }
+        selectedImagePaths.clear();
+        if (data.getClipData() != null) {
+            // 用户选择了多个图片
+            int count = data.getClipData().getItemCount();
+            for (int i = 0; i < count; i++) {
+                Uri imageUri = data.getClipData().getItemAt(i).getUri();
+                selectedImagePaths.add(getRealPathFromUri(imageUri));
+            }
+        } else if (data.getData() != null) {
+            // 用户选择了单个图片
+            Uri imageUri = data.getData();
+            selectedImagePaths.add(getRealPathFromUri(imageUri));
+        }
+        // 批量上传图片
+        uploadImages(selectedImagePaths);
     }
+
+    private class GetLinePortAdapter extends BaseQuickAdapter<LineCodeEntity, BaseViewHolder> {
+        private List<LineCodeEntity> mmmmList;
+
+        public List<LineCodeEntity> getmList() {
+            return mmmmList;
+        }
+
+        public void setmList(List<LineCodeEntity> mList) {
+            this.mmmmList = mList;
+        }
+
+        public LineCodeEntity getBeanByPositon(int position) {
+            return mmmmList.get(position);
+        }
+
+        private GetLinePortAdapter(@Nullable List<LineCodeEntity> data) {
+            super(R.layout.fuzzy_ipandport_item, data);
+            this.mmmmList = data;
+        }
+
+        @Override
+        protected void convert(BaseViewHolder helper, LineCodeEntity item) {
+            helper.setText(R.id.macode_ip__Tv, item.getLI_NAME() + "(" + item.getLI_CODE() + ")");
+            LinearLayout line_true = helper.itemView.findViewById(R.id.line_true);
+            if (item.getChecked()) {
+                line_true.setSelected(true);
+            } else {
+                line_true.setSelected(false);
+            }
+        }
+    }
+
 }

+ 5 - 2
app/src/main/java/com/uas/equipment/global/GloableParams.java

@@ -329,7 +329,8 @@ public class GloableParams {
     public static String ASTATIONTHE_SELECT_FUZZSERACHLINELIST;
     public static String ASTATIONTHE_SELECT_COMMIT;
     public static String ASTATIONTHE_SELECT_AUDIT;
-
+    public static String ADD_GET_PERSONNEL_ID;        //获取人员编号接口
+    public static String ADD_UPLOAD_ATTACHS;        //送修单--上传附件
 
     /**
      * 新版设备管理
@@ -352,6 +353,8 @@ public class GloableParams {
     public static String ADDRESSTAIL_GET_COMMTI="/oa/device/submitDeviceChange.action";
     //领用转移提交
     public static String ADDRESSTAIL_GET_AUDIT="/oa/device/auditDeviceChange.action";
+    //人员编号
+    public static String ADDRESSTAIL_GET_PERSONNEL_ID="/api/pda/spm/getEmployee.action";
 
     /**
      * 高登
@@ -1481,7 +1484,7 @@ public class GloableParams {
 
         GloableParams.ASTATIONTHE_SELECT_COMMIT = uriHead + GloableParams.ADDRESSTAIL_GET_COMMTI;
         GloableParams.ASTATIONTHE_SELECT_AUDIT = uriHead + GloableParams.ADDRESSTAIL_GET_AUDIT;
-
+        GloableParams.ADD_GET_PERSONNEL_ID = uriHead + GloableParams.ADDRESSTAIL_GET_PERSONNEL_ID;
 
     }
 }

+ 5 - 0
app/src/main/java/com/uas/equipment/listener/ProgressListener.java

@@ -0,0 +1,5 @@
+package com.uas.equipment.listener;
+
+public interface ProgressListener {
+    public void onProgress(long currentBytes, long contentLength, boolean isDone);
+}

+ 18 - 0
app/src/main/java/com/uas/equipment/util/ClickUtils.java

@@ -0,0 +1,18 @@
+package com.uas.equipment.util;
+
+public class ClickUtils {
+
+    private static long lastClickTime;
+    public static long pauseTime = 1000;
+
+    public static boolean isFastClick() {
+        long currentTime = System.currentTimeMillis();
+        if (currentTime - lastClickTime < pauseTime) {
+            return true;
+        }
+        lastClickTime = currentTime;
+        return false;
+    }
+
+
+}

+ 161 - 0
app/src/main/java/com/uas/equipment/util/MyLog.java

@@ -0,0 +1,161 @@
+package com.uas.equipment.util;
+
+import android.annotation.SuppressLint;
+import android.util.Log;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 带日志文件输入,又可控开关的日志调试
+ */
+@SuppressLint("SimpleDateFormat")
+public class MyLog {
+	public static Boolean MYLOG_SWITCH = true; // 日志文件总开关
+	private static Boolean MYLOG_WRITE_TO_FILE = true;// 日志写入文件开关
+	private static char MYLOG_TYPE = 'v';// 输入日志类型,w代表只输出告警信息等,v代表输出所有信息
+	@SuppressLint("SdCardPath")
+	private static String MYLOG_PATH_SDCARD_DIR1 = "/sdcard/MSShow";    // 日志文件在sdcard中的路径
+	private static String MYLOG_PATH_SDCARD_DIR2 = "/Log";
+	private static String MYLOG_PATH_SDCARD_DIR = MYLOG_PATH_SDCARD_DIR1+MYLOG_PATH_SDCARD_DIR2;
+	private static String MYLOGFILEName = "Log.txt";// 本类输出的日志文件名称
+
+	@SuppressLint("SimpleDateFormat")
+	private static SimpleDateFormat myLogSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 日志的输出格式
+
+	private static boolean isDebug = true;		//普通log的开关
+	private static String TAG = "我的天啊" +"-----------";
+
+	public static void e(String msg){
+		if(isDebug){
+			Log.e(TAG, msg);
+		}
+	}
+
+	public static void w(String msg){
+		if(isDebug){
+			Log.w(TAG, msg);
+		}
+	}
+
+	public static void d(String msg){
+		if(isDebug){
+			Log.d(TAG, msg);
+		}
+	}
+
+	public static void i(String msg){
+		if(isDebug){
+			Log.i(TAG, msg);
+		}
+	}
+
+	public static void w(String tag, Object msg) { // 警告信息
+		log(tag, msg.toString(), 'w');
+	}
+
+	public static void e(String tag, Object msg) { // 错误信息
+		log(tag, msg.toString(), 'e');
+	}
+
+	public static void d(String tag, Object msg) {// 调试信息
+		log(tag, msg.toString(), 'd');
+	}
+
+	public static void i(String tag, Object msg) {//
+		log(tag, msg.toString(), 'i');
+	}
+
+	public static void v(String tag, Object msg) {
+		log(tag, msg.toString(), 'v');
+	}
+
+	public static void w(String tag, String text) {
+		log(tag, text, 'w');
+	}
+
+	public static void e(String tag, String text) {
+		log(tag, text, 'e');
+	}
+
+	public static void d(String tag, String text) {
+		log(tag, text, 'd');
+	}
+
+	public static void i(String tag, String text) {
+		log(tag, text, 'i');
+	}
+
+	public static void v(String tag, String text) {
+		log(tag, text, 'v');
+	}
+
+	/**
+	 * 根据tag, msg和等级,输出日志
+	 */
+	private static void log(String tag, String msg, char level) {
+		msg = "\r\n"+msg;
+		if (MYLOG_SWITCH) {
+			if ('e' == level && ('e' == MYLOG_TYPE || 'v' == MYLOG_TYPE)) { // 输出错误信息
+				Log.e(tag, msg);
+			} else if ('w' == level && ('w' == MYLOG_TYPE || 'v' == MYLOG_TYPE)) {
+				Log.w(tag, msg);
+			} else if ('d' == level && ('d' == MYLOG_TYPE || 'v' == MYLOG_TYPE)) {
+				Log.d(tag, msg);
+			} else if ('i' == level && ('d' == MYLOG_TYPE || 'v' == MYLOG_TYPE)) {
+				Log.i(tag, msg);
+			} else {
+				Log.v(tag, msg);
+			}
+			if (MYLOG_WRITE_TO_FILE) {
+				writeLogtoFile(String.valueOf(level), tag, msg);
+			}
+		}
+	}
+
+	/**
+	 * 打开日志文件并写入日志
+	 * **/
+	private static void writeLogtoFile(String mylogtype, String tag, String text) {// 新建或打开日志文件
+		isExist(MYLOG_PATH_SDCARD_DIR1);
+		isExist(MYLOG_PATH_SDCARD_DIR);
+		Date nowtime = new Date();
+//		String needWriteFiel = logfile.format(nowtime);
+		String needWriteMessage = myLogSdf.format(nowtime) + "    " + mylogtype
+				+ "    " + tag + "    " + text;
+		File file = new File(MYLOG_PATH_SDCARD_DIR, MYLOGFILEName);
+		try {
+			FileWriter filerWriter = new FileWriter(file, true);// 后面这个参数代表是不是要接上文件中原来的数据,不进行覆盖
+			BufferedWriter bufWriter = new BufferedWriter(filerWriter);
+			bufWriter.write(needWriteMessage);
+			bufWriter.newLine();
+			bufWriter.close();
+			filerWriter.close();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 删除制定的日志文件
+	 * */
+	public static void delFile() {// 删除日志文件
+		File file = new File(MYLOG_PATH_SDCARD_DIR, MYLOGFILEName);
+		if (file.exists()) {
+			file.delete();
+		}
+	}
+
+	public static void isExist(String path) {
+		File file = new File(path);
+		// 判断文件夹是否存在,如果不存在则创建文件夹
+		if (!file.exists()) {
+			file.mkdir();
+		}
+
+	}
+}

BIN
app/src/main/res/drawable-hdpi/qingchu.png


BIN
app/src/main/res/drawable-xhdpi/ic_delete.png


BIN
app/src/main/res/drawable-xhdpi/tupian.png


BIN
app/src/main/res/drawable-xhdpi/zengjiatu.png


+ 110 - 6
app/src/main/res/layout/fragment_breakdownrepair.xml

@@ -5,6 +5,7 @@
     android:orientation="vertical">
 
     <LinearLayout
+        android:id="@+id/ll_devices_number"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
@@ -101,17 +102,120 @@
                 android:layout_marginRight="50dp"
                 />
         </LinearLayout>
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_below="@+id/ll_devices_number"
+        android:id="@+id/ll_personnel_ID"
+        android:layout_marginTop="15dp"
+        android:layout_marginStart="15dp"
+        android:layout_marginEnd="15dp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
         <TextView
-            android:layout_marginTop="15dp"
-            android:id="@+id/tv_prompt"
-            android:text="提交成功"
-            android:layout_marginLeft="@dimen/dp_10"
-            android:layout_width="wrap_content"
+            android:layout_width="80dp"
             android:layout_height="wrap_content"
-            android:visibility="gone">
+            android:text="人员编号:"
+            android:layout_gravity="center"
+            android:textColor="@color/red">
         </TextView>
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+            <FrameLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1">
+
+                <AutoCompleteTextView
+                    android:id="@+id/tv_dc_emcode"
+                    style="@style/EditTextLineStyle"
+                    android:layout_height="30dp"
+                    android:hint="请输入人员编号" />
+
+                <ImageView
+                    android:id="@+id/iv_dc_emcode_delete"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center|right"
+                    android:layout_marginRight="13dp"
+                    android:src="@drawable/wrong"
+                    android:visibility="gone" />
+            </FrameLayout>
+            <ImageView
+                android:id="@+id/iv_dc_emcode"
+                android:layout_width="30dp"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:layout_marginRight="5dp"
+                android:layout_marginLeft="5dp"
+                android:clickable="false"
+                android:visibility="gone"
+                />
+
+            <ImageView
+                android:id="@+id/iv_number_search_for"
+                android:layout_width="30dp"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:background="@drawable/bg_button"
+                android:layout_marginRight="5dp"
+                android:layout_marginLeft="5dp"
+                android:src="@drawable/search_48"
+                />
+
+            <ImageView
+                android:id="@+id/iv_clear"
+                android:layout_width="30dp"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:background="@drawable/bg_button"
+                android:src="@drawable/qingchu"
+                android:padding="5dp"
+                />
+
+        </LinearLayout>
     </LinearLayout>
 
+    <LinearLayout
+        android:layout_below="@+id/ll_personnel_ID"
+        android:id="@+id/ll_fujian"
+        android:layout_marginTop="5dp"
+        android:layout_marginStart="15dp"
+        android:layout_marginEnd="15dp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        >
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="附件: "
+            android:textColor="@color/red"
+            />
+
+        <android.support.v7.widget.RecyclerView
+            android:id="@+id/rv_qc_fujian"
+            android:layout_marginTop="3dp"
+            android:layout_width="match_parent"
+            android:layout_height="80dp"
+            />
+
+    </LinearLayout>
+
+    <TextView
+        android:layout_below="@+id/ll_fujian"
+        android:layout_marginTop="15dp"
+        android:id="@+id/tv_prompt"
+        android:text="提交成功"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:visibility="gone">
+    </TextView>
+
     <Button
         android:id="@+id/btn_commit"
         android:layout_width="150dp"

+ 93 - 0
app/src/main/res/layout/index_line_pup.xml

@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_margin="12dp"
+    android:background="@color/background"
+    android:orientation="vertical">
+    <TextView
+        android:visibility="gone"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:padding="14dp"
+        android:text="请采集岗位资源" />
+
+    <LinearLayout
+        android:layout_marginTop="@dimen/dp_10"
+        android:id="@+id/line_top"
+        android:layout_width="match_parent"
+        android:layout_height="36dp"
+        android:background="@color/white"
+        android:orientation="horizontal">
+
+        <com.uas.equipment.view.ClearableEditText
+            android:id="@+id/edit_et"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="16dp"
+            android:layout_marginRight="16dp"
+            android:layout_weight="1"
+            android:background="@drawable/bg_line_edittext"
+            android:gravity="center_vertical"
+            android:hint="请输入要搜索的内容"
+            android:padding="5dp"
+            android:textSize="14sp"/>
+
+        <ImageView
+            android:id="@+id/search_im"
+            android:layout_width="46dp"
+            android:layout_height="match_parent"
+            android:layout_marginRight="10dp"
+            android:background="@drawable/bg_button"
+            android:src="@drawable/search_48" />
+    </LinearLayout>
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/rv_ip_port_data"
+        android:layout_centerHorizontal="true"
+        android:layout_width="match_parent"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:layout_marginRight="@dimen/dp_10"
+        android:layout_below="@+id/line_top"
+        android:layout_height="200dp"
+        android:layout_marginTop="30dp">
+    </android.support.v7.widget.RecyclerView>
+    <LinearLayout
+        android:layout_below="@+id/rv_ip_port_data"
+        android:layout_centerHorizontal="true"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="10dp">
+
+        <Button
+            android:id="@+id/cancle_tv"
+            android:layout_width="0dp"
+            android:layout_height="36dp"
+            android:layout_margin="12dp"
+            android:layout_weight="1"
+            android:background="@drawable/selector_cancel_bg"
+            android:gravity="center"
+            android:text="取消"
+            android:textColor="@color/selector_cancel_text_color" />
+
+        <Button
+            android:id="@+id/sure_tv"
+            android:layout_width="0dp"
+            android:layout_height="36dp"
+            android:layout_margin="12dp"
+            android:layout_weight="1"
+            android:background="@drawable/selector_confirm_bg"
+            android:gravity="center"
+            android:text="确定"
+            android:textColor="@color/white" />
+
+    </LinearLayout>
+
+
+
+
+
+
+</RelativeLayout>

+ 40 - 0
app/src/main/res/layout/item_annex_image.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_margin="10dp">
+
+    <RelativeLayout
+        android:id="@+id/rl_image"
+        android:layout_width="120dp"
+        android:layout_height="80dp"
+        >
+
+        <ImageView
+            android:id="@+id/iv_fujiantu"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:src="@drawable/tupian"
+            />
+
+        <ImageView
+            android:id="@+id/iv_cancel"
+            android:layout_width="25dp"
+            android:layout_height="25dp"
+            android:src="@drawable/ic_delete"
+            android:layout_alignParentEnd="true"
+            />
+
+    </RelativeLayout>
+
+    <ImageView
+        android:visibility="gone"
+        android:id="@+id/iv_zengjiatu"
+        android:src="@drawable/zengjiatu"
+        android:layout_width="120dp"
+        android:layout_height="80dp"
+        android:padding="12dp"
+        />
+
+</RelativeLayout>

+ 3 - 3
build.gradle

@@ -58,12 +58,12 @@ task clean(type: Delete) {
 
 ext {
     android = [
-            minSdkVersion    : 16,
+            minSdkVersion    : 17,
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
-            versionCode      : 13,
-            versionName      : "v1.0.2"
+            versionCode      : 14,
+            versionName      : "v1.0.3"
     ]
 
     depsVersion = [

+ 1 - 0
pda_libs/pulltoreflashlibrary/.gitignore

@@ -0,0 +1 @@
+/build

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml

@@ -5,7 +5,7 @@
     android:versionName="2.1.1" >
 
     <uses-sdk
-        android:minSdkVersion="16"
+        android:minSdkVersion="17"
         android:targetSdkVersion="28" />
 
     <application />

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/aapt_friendly_merged_manifests/release/aapt/AndroidManifest.xml

@@ -5,7 +5,7 @@
     android:versionName="2.1.1" >
 
     <uses-sdk
-        android:minSdkVersion="16"
+        android:minSdkVersion="17"
         android:targetSdkVersion="28" />
 
     <application />

+ 14 - 14
pda_libs/pulltoreflashlibrary/build/intermediates/incremental/packageDebugResources/compile-file-map.properties

@@ -1,18 +1,18 @@
-#Thu Dec 19 17:13:00 CST 2024
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\anim\\slide_in_from_top.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\anim\\slide_in_from_top.xml
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable\\indicator_bg_bottom.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable\\indicator_bg_bottom.xml
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\layout\\pull_to_refresh_header_vertical.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\layout\\pull_to_refresh_header_vertical.xml
+#Fri May 09 15:29:06 CST 2025
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-hdpi\\default_ptr_flip.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\default_ptr_flip.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\indicator_arrow.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-mdpi-v4\\indicator_arrow.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\default_ptr_rotate.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-mdpi-v4\\default_ptr_rotate.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\anim\\slide_in_from_bottom.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\anim\\slide_in_from_bottom.xml
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-xhdpi\\default_ptr_rotate.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-xhdpi-v4\\default_ptr_rotate.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable\\indicator_bg_top.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable\\indicator_bg_top.xml
 D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-xhdpi\\indicator_arrow.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-xhdpi-v4\\indicator_arrow.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\default_ptr_flip.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-mdpi-v4\\default_ptr_flip.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-hdpi\\indicator_arrow.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\indicator_arrow.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-xhdpi\\default_ptr_flip.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-xhdpi-v4\\default_ptr_flip.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\layout\\pull_to_refresh_header_vertical.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\layout\\pull_to_refresh_header_vertical.xml
 D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-hdpi\\default_ptr_rotate.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\default_ptr_rotate.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\layout\\pull_to_refresh_header_horizontal.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\layout\\pull_to_refresh_header_horizontal.xml
 D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\anim\\slide_out_to_bottom.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\anim\\slide_out_to_bottom.xml
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\default_ptr_flip.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-mdpi-v4\\default_ptr_flip.png
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-xhdpi\\default_ptr_rotate.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-xhdpi-v4\\default_ptr_rotate.png
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\default_ptr_rotate.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-mdpi-v4\\default_ptr_rotate.png
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\indicator_arrow.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-mdpi-v4\\indicator_arrow.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable\\indicator_bg_bottom.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable\\indicator_bg_bottom.xml
 D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\anim\\slide_out_to_top.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\anim\\slide_out_to_top.xml
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\layout\\pull_to_refresh_header_horizontal.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\layout\\pull_to_refresh_header_horizontal.xml
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-xhdpi\\default_ptr_flip.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-xhdpi-v4\\default_ptr_flip.png
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-hdpi\\default_ptr_flip.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\default_ptr_flip.png
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable\\indicator_bg_top.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable\\indicator_bg_top.xml
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\anim\\slide_in_from_bottom.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\anim\\slide_in_from_bottom.xml
-D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-hdpi\\indicator_arrow.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\indicator_arrow.png
+D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\anim\\slide_in_from_top.xml=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\anim\\slide_in_from_top.xml

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties

@@ -1,4 +1,4 @@
-#Tue Dec 24 14:19:35 CST 2024
+#Fri May 09 17:04:47 CST 2025
 D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-hdpi\\default_ptr_flip.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\release\\drawable-hdpi-v4\\default_ptr_flip.png
 D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\indicator_arrow.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\release\\drawable-mdpi-v4\\indicator_arrow.png
 D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\default_ptr_rotate.png=D\:\\AndroidData\\NewEquipmentManagement\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\release\\drawable-mdpi-v4\\default_ptr_rotate.png

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt

@@ -5,7 +5,7 @@
 5    android:versionName="2.1.1" >
 6
 7    <uses-sdk
-8        android:minSdkVersion="16"
+8        android:minSdkVersion="17"
 8-->D:\AndroidData\NewEquipmentManagement\pda_libs\pulltoreflashlibrary\src\main\AndroidManifest.xml
 9        android:targetSdkVersion="28" />
 9-->D:\AndroidData\NewEquipmentManagement\pda_libs\pulltoreflashlibrary\src\main\AndroidManifest.xml

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt

@@ -5,7 +5,7 @@
 5    android:versionName="2.1.1" >
 6
 7    <uses-sdk
-8        android:minSdkVersion="16"
+8        android:minSdkVersion="17"
 8-->D:\AndroidData\NewEquipmentManagement\pda_libs\pulltoreflashlibrary\src\main\AndroidManifest.xml
 9        android:targetSdkVersion="28" />
 9-->D:\AndroidData\NewEquipmentManagement\pda_libs\pulltoreflashlibrary\src\main\AndroidManifest.xml

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/merged_manifest/debug/AndroidManifest.xml

@@ -5,7 +5,7 @@
     android:versionName="2.1.1" >
 
     <uses-sdk
-        android:minSdkVersion="16"
+        android:minSdkVersion="17"
         android:targetSdkVersion="28" />
 
     <application />

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/merged_manifest/release/AndroidManifest.xml

@@ -5,7 +5,7 @@
     android:versionName="2.1.1" >
 
     <uses-sdk
-        android:minSdkVersion="16"
+        android:minSdkVersion="17"
         android:targetSdkVersion="28" />
 
     <application />