diff --git a/app/build.gradle b/app/build.gradle
index c103eb5..70d8304 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,7 +10,7 @@ android {
applicationId "com.example.beijingnopowercon"
minSdk 28
targetSdk 33
- versionCode 1
+ versionCode 2
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -23,8 +23,8 @@ android {
}
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
+ sourceCompatibility JavaVersion.VERSION_17
+ targetCompatibility JavaVersion.VERSION_17
}
buildFeatures {
viewBinding true
@@ -51,4 +51,5 @@ dependencies {
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
implementation 'io.github.scwang90:refresh-layout-kernel:2.0.6' //核心必须依赖
implementation 'io.github.scwang90:refresh-footer-classics:2.0.6' //经典加载
+ implementation 'com.github.bumptech.glide:glide:4.16.0'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70a8ec4..349e2c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,9 +18,21 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/logo"
android:supportsRtl="true"
- android:usesCleartextTraffic="true"
android:theme="@style/Theme.BeijingNoPowerCon"
+ android:usesCleartextTraffic="true"
tools:targetApi="31">
+
+
+
+
+
+
-
-
+
+
-
-
+
+
diff --git a/app/src/main/java/com/example/beijingnopowercon/LoginActivity.java b/app/src/main/java/com/example/beijingnopowercon/LoginActivity.java
index 428f938..878df10 100644
--- a/app/src/main/java/com/example/beijingnopowercon/LoginActivity.java
+++ b/app/src/main/java/com/example/beijingnopowercon/LoginActivity.java
@@ -48,7 +48,7 @@ public class LoginActivity extends AppCompatActivity {
String name = loginVm.getName();
if (pass == null || name == null || pass.isEmpty() || name.isEmpty()) return;
- OkGo.get(MyApplication.url + "/login/finduser").tag(this).params("name", name).params("pass", pass).execute(new MyRecultCall(dialog, this) {
+ OkGo.get(MyApplication.url + "/login/finduser1").tag(this).params("name", name).params("pass", pass).execute(new MyRecultCall(dialog, this) {
@Override
public void onSuccess(Response response) {
super.onSuccess(response);
@@ -66,6 +66,7 @@ public class LoginActivity extends AppCompatActivity {
startActivity(intent);
finish();
+ return;
}
Toast.makeText(context, body.getMsg(), Toast.LENGTH_SHORT).show();
}
diff --git a/app/src/main/java/com/example/beijingnopowercon/MainActivity.java b/app/src/main/java/com/example/beijingnopowercon/MainActivity.java
index 539bf25..269f904 100644
--- a/app/src/main/java/com/example/beijingnopowercon/MainActivity.java
+++ b/app/src/main/java/com/example/beijingnopowercon/MainActivity.java
@@ -24,16 +24,12 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
-
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
-
setSupportActionBar(binding.appBarMain.toolbar);
-
DrawerLayout drawer = binding.drawerLayout;
NavigationView navigationView = binding.navView;
- // Passing each menu ID as a set of Ids because each
- // menu should be considered as top level destinations.
+
mAppBarConfiguration = new AppBarConfiguration.Builder(
R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow)
.setOpenableLayout(drawer)
diff --git a/app/src/main/java/com/example/beijingnopowercon/adapter/DisposalFileAdapter.java b/app/src/main/java/com/example/beijingnopowercon/adapter/DisposalFileAdapter.java
new file mode 100644
index 0000000..ee30b4b
--- /dev/null
+++ b/app/src/main/java/com/example/beijingnopowercon/adapter/DisposalFileAdapter.java
@@ -0,0 +1,79 @@
+package com.example.beijingnopowercon.adapter;
+
+import android.content.Context;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
+import androidx.recyclerview.widget.RecyclerView;
+
+
+import com.bumptech.glide.Glide;
+import com.example.beijingnopowercon.BR;
+import com.example.beijingnopowercon.R;
+import com.example.beijingnopowercon.data.CheckInstanceFiles;
+import com.example.beijingnopowercon.databinding.ItemDisposalImgBinding;
+
+import java.util.List;
+
+/**
+ * @author wanghao
+ * @date 2024/3/11
+ */
+public class DisposalFileAdapter extends RecyclerView.Adapter {
+ private List list;
+ private static Context context;
+ private LayoutInflater inflater;
+ private ItemClickCall clickCall;
+ public DisposalFileAdapter(Context context, ItemClickCall clickCall) {
+ this.context = context;
+ this.clickCall = clickCall;
+ inflater = LayoutInflater.from(context);
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ @NonNull
+ @Override
+ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ ItemDisposalImgBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_disposal_img, parent, false);
+ return new MyViewHolder(binding);
+ }
+
+ // @SuppressLint("CheckResult")
+ @Override
+ public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
+ var outstock = list.get(position);
+ var binding = holder.binding;
+ binding.setVariable(BR.vm,outstock);
+ Log.e("TAG", "onBindViewHolder:" + outstock.isState());
+ Glide.with(context)
+ .load(outstock.getFaultFile())
+ .into(binding.disFile);
+ binding.disFile.setOnClickListener(v -> clickCall.onClick(position,true));
+ binding.disposalDelect.setOnClickListener(v -> clickCall.onClick(position,false));
+ }
+
+ @Override
+ public int getItemCount() {
+ return list==null?0:list.size();
+ }
+
+ class MyViewHolder extends RecyclerView.ViewHolder {
+ private ItemDisposalImgBinding binding;
+
+ public MyViewHolder(ItemDisposalImgBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+
+ }
+ public interface ItemClickCall {
+ void onClick(int position,boolean type);
+ }
+}
diff --git a/app/src/main/java/com/example/beijingnopowercon/base/BaseFragment.java b/app/src/main/java/com/example/beijingnopowercon/base/BaseFragment.java
index 97c59f0..ae57fe6 100644
--- a/app/src/main/java/com/example/beijingnopowercon/base/BaseFragment.java
+++ b/app/src/main/java/com/example/beijingnopowercon/base/BaseFragment.java
@@ -1,9 +1,21 @@
package com.example.beijingnopowercon.base;
import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.core.content.FileProvider;
import androidx.fragment.app.Fragment;
+
+import android.Manifest;
import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
+import android.provider.MediaStore;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -14,12 +26,22 @@ import androidx.annotation.Nullable;
import com.example.beijingnopowercon.dialog.LoadDialog;
import com.google.gson.Gson;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
public class BaseFragment extends Fragment {
public Context context;
public LoadDialog dialog;
public String url;
public Gson gson;
+ public static final int CAMERA_PHOTO = 1;
+ public SimpleDateFormat format= new SimpleDateFormat( "yyyyMMdd_HHmmss");
@Override
public void onAttach(@NonNull Context context) {
@@ -29,4 +51,53 @@ public class BaseFragment extends Fragment {
url=MyApplication.url;
gson=new Gson();
}
+
+ // 拍照
+ private Uri img_uri;
+ private File outputImage;
+ public void teke_photo() throws IOException {
+ outputImage = new File(context.getExternalCacheDir(), "output_imgage" + format.format(new Date()) + ".jpg");
+
+ outputImage.createNewFile();
+
+ if (Build.VERSION.SDK_INT >= 24) {
+ img_uri = FileProvider.getUriForFile(context,"com.example.beijingnopowercon" , outputImage);
+ } else {
+ img_uri = Uri.fromFile(outputImage);
+ }
+ if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA)) {
+ Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
+ intent.putExtra(MediaStore.EXTRA_OUTPUT, img_uri);
+ startActivityForResult(intent, CAMERA_PHOTO);
+ } else {
+ // 提示用户开户权限 拍照和读写sd卡权限
+ String[] perms = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA};
+ ActivityCompat.requestPermissions(getActivity(), perms, CAMERA_PHOTO);
+ }
+ }
+ public void zipPhoto(){
+ Bitmap compressedImageBitmap = BitmapFactory.decodeFile(outputImage.getPath());
+ if (compressedImageBitmap==null) return;
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ compressedImageBitmap.compress(Bitmap.CompressFormat.JPEG, 10, baos); // 将Bitmap压缩成JPEG格式
+ byte[] compressedImageData = baos.toByteArray();
+ // 清空字节数组输出流
+ baos.reset();
+ // 将压缩后的字节数组保存到文件中
+ FileOutputStream fos = null;
+ try {
+ fos = new FileOutputStream(outputImage);
+ fos.write(compressedImageData);
+ fos.flush();
+ fos.close();
+ tekePhotoResult( img_uri.toString(),outputImage);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ public void tekePhotoResult(String fileUrl,File file){
+
+ }
+
+
}
diff --git a/app/src/main/java/com/example/beijingnopowercon/base/MyApplication.java b/app/src/main/java/com/example/beijingnopowercon/base/MyApplication.java
index 5c9543c..4fa14ff 100644
--- a/app/src/main/java/com/example/beijingnopowercon/base/MyApplication.java
+++ b/app/src/main/java/com/example/beijingnopowercon/base/MyApplication.java
@@ -29,8 +29,8 @@ public class MyApplication extends Application {
public static MyApplication getApplication() {
return application;
}
- // public static String url="http://192.168.137.1:8091/api";
- public static String url="http://119.45.202.115:8091/api";
+ // public static String url="http://119.45.202.115:8090/api";
+ public static String url="http://10.11.184.221:8090/api";
@Override
public void onCreate() {
super.onCreate();
diff --git a/app/src/main/java/com/example/beijingnopowercon/data/CheckInstanceFiles.java b/app/src/main/java/com/example/beijingnopowercon/data/CheckInstanceFiles.java
new file mode 100644
index 0000000..a26e62e
--- /dev/null
+++ b/app/src/main/java/com/example/beijingnopowercon/data/CheckInstanceFiles.java
@@ -0,0 +1,37 @@
+package com.example.beijingnopowercon.data;
+
+import androidx.databinding.BaseObservable;
+
+/**
+ * @author wanghao
+ * 图片用
+ * @date 2024/3/11 10:00
+ */
+public class CheckInstanceFiles extends BaseObservable {
+ private String faultFile;
+ private boolean state=false;
+
+ public boolean isState() {
+ return state;
+ }
+
+ public void setState(boolean state) {
+ this.state = state;
+
+ }
+
+ public String getFaultFile() {
+ return faultFile;
+ }
+
+ public void setFaultFile(String faultFile) {
+ this.faultFile = faultFile;
+ }
+
+ @Override
+ public String toString() {
+ return "CheckInstanceFiles{" +
+ "faultFile='" + faultFile + '\'' +
+ '}';
+ }
+}
diff --git a/app/src/main/java/com/example/beijingnopowercon/data/DeviceBaseFault.java b/app/src/main/java/com/example/beijingnopowercon/data/DeviceBaseFault.java
new file mode 100644
index 0000000..70ce0ef
--- /dev/null
+++ b/app/src/main/java/com/example/beijingnopowercon/data/DeviceBaseFault.java
@@ -0,0 +1,75 @@
+package com.example.beijingnopowercon.data;
+
+/**
+ * 故障类别维护对象 device_base_fault
+ *
+ * @author wangh
+ * @date 2025-09-24
+ */
+public class DeviceBaseFault {
+ /**
+ * 主键
+ */
+ private Long objid;
+ /**
+ * 故障代码
+ */
+ private String faultCode;
+
+ /**
+ * 故障名称
+ */
+ private String faultName;
+
+ /**
+ * 故障说明
+ */
+ private String faultInfo;
+
+ /**
+ * 应急措施
+ */
+ private String emergencyMeasures;
+
+ public Long getObjid() {
+ return objid;
+ }
+
+ public void setObjid(Long objid) {
+ this.objid = objid;
+ }
+
+ public String getFaultCode() {
+ return faultCode;
+ }
+
+ public void setFaultCode(String faultCode) {
+ this.faultCode = faultCode;
+ }
+
+ public String getFaultName() {
+ return faultName;
+ }
+
+ public void setFaultName(String faultName) {
+ this.faultName = faultName;
+ }
+
+ public String getFaultInfo() {
+ return faultInfo;
+ }
+
+ public void setFaultInfo(String faultInfo) {
+ this.faultInfo = faultInfo;
+ }
+
+ public String getEmergencyMeasures() {
+ return emergencyMeasures;
+ }
+
+ public void setEmergencyMeasures(String emergencyMeasures) {
+ this.emergencyMeasures = emergencyMeasures;
+ }
+
+
+}
diff --git a/app/src/main/java/com/example/beijingnopowercon/data/DeviceBeen.java b/app/src/main/java/com/example/beijingnopowercon/data/DeviceBeen.java
new file mode 100644
index 0000000..b57704b
--- /dev/null
+++ b/app/src/main/java/com/example/beijingnopowercon/data/DeviceBeen.java
@@ -0,0 +1,73 @@
+package com.example.beijingnopowercon.data;
+
+/**
+ * @author wanghao
+ * @date 2024/4/1 10:00
+ */
+public class DeviceBeen {
+
+
+ private int deviceId;
+ private String deviceCode;
+ private String deviceName;
+ private String deviceLocation;
+ private Long deviceTypeId;
+ private String deviceSpec;
+ private int deviceStatus;
+
+ public int getDeviceId() {
+ return deviceId;
+ }
+
+ public void setDeviceId(int deviceId) {
+ this.deviceId = deviceId;
+ }
+
+ public String getDeviceCode() {
+ return deviceCode;
+ }
+
+ public void setDeviceCode(String deviceCode) {
+ this.deviceCode = deviceCode;
+ }
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceLocation() {
+ return deviceLocation;
+ }
+
+ public void setDeviceLocation(String deviceLocation) {
+ this.deviceLocation = deviceLocation;
+ }
+
+ public Long getDeviceTypeId() {
+ return deviceTypeId;
+ }
+
+ public void setDeviceTypeId(Long deviceTypeId) {
+ this.deviceTypeId = deviceTypeId;
+ }
+
+ public String getDeviceSpec() {
+ return deviceSpec;
+ }
+
+ public void setDeviceSpec(String deviceSpec) {
+ this.deviceSpec = deviceSpec;
+ }
+
+ public int getDeviceStatus() {
+ return deviceStatus;
+ }
+
+ public void setDeviceStatus(int deviceStatus) {
+ this.deviceStatus = deviceStatus;
+ }
+}
diff --git a/app/src/main/java/com/example/beijingnopowercon/data/DeviceInfo.java b/app/src/main/java/com/example/beijingnopowercon/data/DeviceInfo.java
index eb43bee..70855c2 100644
--- a/app/src/main/java/com/example/beijingnopowercon/data/DeviceInfo.java
+++ b/app/src/main/java/com/example/beijingnopowercon/data/DeviceInfo.java
@@ -57,13 +57,40 @@ public class DeviceInfo {
private Double defaultTime;
private String remark;
- /** 用户ID */
+ /**
+ * 用户ID
+ */
private Long userId;
- /** 部门ID */
+ /**
+ * 部门ID
+ */
private Long deptId;
private String useUser;
+ // 锁编码
+ private String openCode;
+ private String useStateName;
+ private String deviceStateName;
+
+ private String asName;
+
+ public String getAsName() {
+ return asName;
+ }
+
+ public void setAsName(String asName) {
+ this.asName = asName;
+ }
+
+ public String getOpenCode() {
+ return openCode;
+ }
+
+ public void setOpenCode(String openCode) {
+ this.openCode = openCode;
+ }
+
public String getUseUser() {
return useUser;
}
@@ -164,32 +191,39 @@ public class DeviceInfo {
return deviceState;
}
- private String useStateName;
- private String deviceStateName;
+ public void setDeviceState(String deviceState) {
+ this.deviceState = deviceState;
+ }
public String getUseStateName() {
- if (useState.equals("1")){
+ if (useState.equals("1")) {
return "使用中";
}
return "空闲";
}
+ public void setUseStateName(String useStateName) {
+ this.useStateName = useStateName;
+ }
+
public String getDeviceStateName() {
- if (useState.equals("1")){
- return "使用中";
- }else if (deviceState.equals("0")){
+ if (deviceState.equals("0")) {
return "停用";
- }else if (deviceState.equals("1")){
- return "正常";
- }else if (deviceState.equals("2")){
+ } else if (deviceState.equals("2")) {
return "维修";
+ } else if (useState.equals("1")) {
+ return "使用中";
+
+ } else if (useState.equals("0")) {
+ return "空闲";
+
}
return deviceStateName;
}
- public void setDeviceState(String deviceState) {
- this.deviceState = deviceState;
+ public void setDeviceStateName(String deviceStateName) {
+ this.deviceStateName = deviceStateName;
}
public String getLocationName() {
diff --git a/app/src/main/java/com/example/beijingnopowercon/data/DeviceRepartBills.java b/app/src/main/java/com/example/beijingnopowercon/data/DeviceRepartBills.java
new file mode 100644
index 0000000..352b2a2
--- /dev/null
+++ b/app/src/main/java/com/example/beijingnopowercon/data/DeviceRepartBills.java
@@ -0,0 +1,159 @@
+package com.example.beijingnopowercon.data;
+
+import android.view.View;
+import android.widget.AdapterView;
+
+import androidx.databinding.BaseObservable;
+
+import java.util.List;
+
+/**
+ * 维修工单对象 device_repart_bills
+ *
+ * @author ruoyi
+ * @date 2022-05-26
+ */
+public class DeviceRepartBills extends BaseObservable {
+
+ /**
+ * 主键
+ */
+ private Long objid;
+
+ /**
+ * 维修单号
+ */
+ private String workOrder;
+
+ /**
+ * 设备编号
+ */
+ private String deviceID;
+
+ /**
+ * 故障类别
+ */
+ private Long faultType;
+
+ /**
+ * 涉及操作
+ */
+ private String operation;
+
+ /**
+ * 照片路径
+ */
+ private String pictures;
+
+ /**
+ * 工单状态 0-待维修,1-维修中,2-完成,3-转为外协
+ */
+ private Long orderState;
+
+ /**
+ * 工单来源
+ */
+ private Long billsType;
+ private String remark;
+ private String createBy;
+
+ private List list;
+
+
+ public String getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(String createBy) {
+ this.createBy = createBy;
+ }
+
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ setFaultType(list.get(position).getObjid());
+ }
+
+
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ notifyChange();
+ }
+
+ public Long getObjid() {
+ return objid;
+ }
+
+ public void setObjid(Long objid) {
+ this.objid = objid;
+ }
+
+ public String getWorkOrder() {
+ return workOrder;
+ }
+
+ public void setWorkOrder(String workOrder) {
+ this.workOrder = workOrder;
+ }
+
+ public String getDeviceID() {
+ return deviceID;
+ }
+
+ public void setDeviceID(String deviceID) {
+ this.deviceID = deviceID;
+ }
+
+ public Long getFaultType() {
+ return faultType;
+ }
+
+ public void setFaultType(Long faultType) {
+ this.faultType = faultType;
+ }
+
+ public String getOperation() {
+ return operation;
+ }
+
+ public void setOperation(String operation) {
+ this.operation = operation;
+ notifyChange();
+ }
+
+ public String getPictures() {
+ return pictures;
+ }
+
+ public void setPictures(String pictures) {
+ this.pictures = pictures;
+ }
+
+ public Long getOrderState() {
+ return orderState;
+ }
+
+ public void setOrderState(Long orderState) {
+ this.orderState = orderState;
+ }
+
+ public Long getBillsType() {
+ return billsType;
+ }
+
+ public void setBillsType(Long billsType) {
+ this.billsType = billsType;
+ }
+
+}
diff --git a/app/src/main/java/com/example/beijingnopowercon/data/Dict.java b/app/src/main/java/com/example/beijingnopowercon/data/Dict.java
new file mode 100644
index 0000000..d6881a9
--- /dev/null
+++ b/app/src/main/java/com/example/beijingnopowercon/data/Dict.java
@@ -0,0 +1,52 @@
+package com.example.beijingnopowercon.data;
+
+/**
+ * @author wanghao
+ * @date 2024/3/22 10:36
+ */
+public class Dict {
+ private String dictLabel;
+ private String dictValue;
+ private String dictType;
+ private String dictCode;
+
+ public String getDictLabel() {
+ return dictLabel;
+ }
+
+ public void setDictLabel(String dictLabel) {
+ this.dictLabel = dictLabel;
+ }
+
+ public String getDictValue() {
+ return dictValue;
+ }
+
+ public void setDictValue(String dictValue) {
+ this.dictValue = dictValue;
+ }
+
+ public String getDictType() {
+ return dictType;
+ }
+
+ public void setDictType(String dictType) {
+ this.dictType = dictType;
+ }
+
+ public String getDictCode() {
+ return dictCode;
+ }
+
+ public void setDictCode(String dictCode) {
+ this.dictCode = dictCode;
+ }
+
+ @Override
+ public String toString() {
+ return "Dict{" +
+ "dictLabel='" + dictLabel + '\'' +
+ ", dictValue='" + dictValue + '\'' +
+ '}';
+ }
+}
diff --git a/app/src/main/java/com/example/beijingnopowercon/data/Outsourcing.java b/app/src/main/java/com/example/beijingnopowercon/data/Outsourcing.java
new file mode 100644
index 0000000..2fb35d2
--- /dev/null
+++ b/app/src/main/java/com/example/beijingnopowercon/data/Outsourcing.java
@@ -0,0 +1,43 @@
+package com.example.beijingnopowercon.data;
+
+/**
+ * @author wanghao
+ * @date 2024/4/1 14:02
+ * 外协单位
+ */
+public class Outsourcing {
+
+ /**
+ * outsrcId : 1
+ * outsrcCode : code0001
+ * outsrcName : 青岛软控
+ */
+
+ private int outsrcId;
+ private String outsrcCode;
+ private String outsrcName;
+
+ public int getOutsrcId() {
+ return outsrcId;
+ }
+
+ public void setOutsrcId(int outsrcId) {
+ this.outsrcId = outsrcId;
+ }
+
+ public String getOutsrcCode() {
+ return outsrcCode;
+ }
+
+ public void setOutsrcCode(String outsrcCode) {
+ this.outsrcCode = outsrcCode;
+ }
+
+ public String getOutsrcName() {
+ return outsrcName;
+ }
+
+ public void setOutsrcName(String outsrcName) {
+ this.outsrcName = outsrcName;
+ }
+}
diff --git a/app/src/main/java/com/example/beijingnopowercon/dialog/ImgDialog.java b/app/src/main/java/com/example/beijingnopowercon/dialog/ImgDialog.java
new file mode 100644
index 0000000..bae5462
--- /dev/null
+++ b/app/src/main/java/com/example/beijingnopowercon/dialog/ImgDialog.java
@@ -0,0 +1,39 @@
+package com.example.beijingnopowercon.dialog;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.view.LayoutInflater;
+
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
+
+import com.bumptech.glide.Glide;
+import com.example.beijingnopowercon.R;
+import com.example.beijingnopowercon.databinding.DialogImgBinding;
+
+/**
+ * @author wanghao
+ * @date 2024/2/22 11:07
+ */
+public class ImgDialog extends Dialog {
+ private DialogImgBinding binding;
+
+ private Context context;
+
+ public void setRawReturn(String url) {
+ Glide.with(context).load(url).into(binding.dialogImg);
+ binding.executePendingBindings();
+ show();
+
+ }
+
+ public ImgDialog(@NonNull Context context) {
+ super(context,R.style.dialog);
+ this.context=context;
+ binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.dialog_img, null, false);
+ setContentView(binding.getRoot());
+ binding.dialogImgDis.setOnClickListener(v -> dismiss());
+ }
+
+
+}
diff --git a/app/src/main/java/com/example/beijingnopowercon/ui/home/HomeFragment.java b/app/src/main/java/com/example/beijingnopowercon/ui/home/HomeFragment.java
index c0f58db..45b08d4 100644
--- a/app/src/main/java/com/example/beijingnopowercon/ui/home/HomeFragment.java
+++ b/app/src/main/java/com/example/beijingnopowercon/ui/home/HomeFragment.java
@@ -37,14 +37,27 @@ public class HomeFragment extends BaseFragment implements SanInfoDialog.SanInfoD
private FragmentHomeBinding binding;
private SanInfoDialog infoDialog;
private DeviceListAdapter adapter;
+ private boolean buttonClick;
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = FragmentHomeBinding.inflate(inflater, container, false);
root = binding.getRoot();
binding.homeSan.setOnClickListener(v -> {
Intent intent = new Intent(getActivity(), CustomScannerActivity.class);
+ buttonClick = true;
startActivityForResult(intent, IntentIntegrator.REQUEST_CODE);
+
+ selectDeviceInfo("DWSW0001");
});
+
+ binding.homeSanClose.setOnClickListener(v -> {
+ Intent intent = new Intent(getActivity(), CustomScannerActivity.class);
+ buttonClick = false;
+ // startActivityForResult(intent, IntentIntegrator.REQUEST_CODE);
+ closeDevice("DWSW0001");
+ });
+
+
infoDialog = new SanInfoDialog(context);
infoDialog.setCall(this);
adapter = new DeviceListAdapter(context);
@@ -62,7 +75,7 @@ public class HomeFragment extends BaseFragment implements SanInfoDialog.SanInfoD
Log.e("TAG", "onCreateView:");
return root;
}
-
+ // 查询所有设备列表
private void initRequest() {
OkGo.post(url + "/home/selectDeviceInfoList").execute(new MyRecultCall(dialog, context) {
@Override
@@ -81,6 +94,7 @@ public class HomeFragment extends BaseFragment implements SanInfoDialog.SanInfoD
});
}
+ // 返回扫码信息
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@@ -91,11 +105,30 @@ public class HomeFragment extends BaseFragment implements SanInfoDialog.SanInfoD
Snackbar.make(root, "扫描取消", Snackbar.LENGTH_LONG).show();
} else {
// Toast.makeText(context, "扫描成功", Toast.LENGTH_SHORT).show();
- selectDeviceInfo(result.getContents());
+ if (buttonClick) {
+ selectDeviceInfo(result.getContents());
+ } else {
+ closeDevice(result.getContents());
+ }
}
}
}
}
+ // 关锁
+ private void closeDevice(String contents) {
+ OkGo.post(url + "/home/closeDevice").params("code", contents).execute(new MyRecultCall(dialog, context) {
+ @Override
+ public void onSuccess(Response response) {
+ super.onSuccess(response);
+ MyResult body = response.body();
+ Toast.makeText(getContext(), body.getMsg(), Toast.LENGTH_SHORT).show();
+ if (body.getCode() == 0) {
+ initRequest();
+ }
+ }
+ });
+
+ }
// 查询设备
private void selectDeviceInfo(String code) {
@@ -123,25 +156,27 @@ public class HomeFragment extends BaseFragment implements SanInfoDialog.SanInfoD
binding = null;
}
-
+ // 弹窗确认开锁
@Override
public void openDeviceLockRequest(DeviceInfo deviceInfo) {
deviceInfo.setUserId(SharedPreferencesUtils.getLong("userId", 0L));
deviceInfo.setDeptId(SharedPreferencesUtils.getLong("deptId", 0L));
deviceInfo.setUseUser(SharedPreferencesUtils.getstring("user", null));
- OkGo.post(url + "/home/openDeviceLock").upRequestBody(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), gson.toJson(deviceInfo))).execute(new MyRecultCall(dialog, context) {
- @Override
- public void onSuccess(Response response) {
- super.onSuccess(response);
- MyResult body = response.body();
- if (body.getCode() == 0) {
- Toast.makeText(context, "开锁成功", Toast.LENGTH_SHORT).show();
- infoDialog.dismiss();
- initRequest();
- return;
- }
- Toast.makeText(context, body.getMsg(), Toast.LENGTH_LONG).show();
- }
- });
+ OkGo.post(url + "/home/openDeviceLock")
+ .upRequestBody(RequestBody.create(MediaType.parse("application/json; charset=utf-8"),
+ gson.toJson(deviceInfo))).execute(new MyRecultCall(dialog, context) {
+ @Override
+ public void onSuccess(Response response) {
+ super.onSuccess(response);
+ MyResult body = response.body();
+ if (body.getCode() == 0) {
+ Toast.makeText(context, "开锁成功", Toast.LENGTH_SHORT).show();
+ infoDialog.dismiss();
+ initRequest();
+ return;
+ }
+ Toast.makeText(context, body.getMsg(), Toast.LENGTH_LONG).show();
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/beijingnopowercon/ui/slideshow/SlideshowFragment.java b/app/src/main/java/com/example/beijingnopowercon/ui/slideshow/SlideshowFragment.java
index f7c4cf8..fb6100b 100644
--- a/app/src/main/java/com/example/beijingnopowercon/ui/slideshow/SlideshowFragment.java
+++ b/app/src/main/java/com/example/beijingnopowercon/ui/slideshow/SlideshowFragment.java
@@ -1,32 +1,195 @@
package com.example.beijingnopowercon.ui.slideshow;
+import android.annotation.SuppressLint;
+import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.TextView;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.ListPopupWindow;
+import android.widget.Toast;
import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import androidx.lifecycle.ViewModelProvider;
+import androidx.annotation.Nullable;
+import com.example.beijingnopowercon.R;
+import com.example.beijingnopowercon.adapter.DisposalFileAdapter;
+import com.example.beijingnopowercon.base.BaseFragment;
+import com.example.beijingnopowercon.data.CheckInstanceFiles;
+import com.example.beijingnopowercon.data.DeviceBaseFault;
+import com.example.beijingnopowercon.data.DeviceInfo;
+import com.example.beijingnopowercon.data.DeviceRepartBills;
import com.example.beijingnopowercon.databinding.FragmentSlideshowBinding;
+import com.example.beijingnopowercon.dialog.ImgDialog;
+import com.example.beijingnopowercon.okgo.MyRecultCall;
+import com.example.beijingnopowercon.okgo.MyResult;
+import com.example.beijingnopowercon.uitls.SharedPreferencesUtils;
+import com.google.android.material.snackbar.Snackbar;
+import com.google.gson.reflect.TypeToken;
+import com.google.zxing.integration.android.IntentIntegrator;
+import com.google.zxing.integration.android.IntentResult;
+import com.lzy.okgo.OkGo;
+import com.lzy.okgo.model.Response;
-public class SlideshowFragment extends Fragment {
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class SlideshowFragment extends BaseFragment {
private FragmentSlideshowBinding binding;
+ private View view;
+ private ListPopupWindow lpw;
+ private DeviceRepartBills deviceRepartBills;
+ private List designOperations;
+ private List designList;
+ private DisposalFileAdapter fileAdapter;
+ private List filesList;
+ private List files;
+
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
- SlideshowViewModel slideshowViewModel =
- new ViewModelProvider(this).get(SlideshowViewModel.class);
binding = FragmentSlideshowBinding.inflate(inflater, container, false);
- View root = binding.getRoot();
+ view = binding.getRoot();
+ binding.selectNameView.setOnClickListener(v -> {
+ // startActivityForResult(new Intent(getActivity(), CustomScannerActivity.class), IntentIntegrator.REQUEST_CODE);
+ selectDeviceInfo("DWSW0001");
+
+ });
+
+ binding.bxDesOpe.setOnClickListener(v -> lpw.show());
+ binding.disposalFileAdd.setOnClickListener(v -> {
+ try {
+ teke_photo();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ });
+ binding.bxSubmitButton.setOnClickListener(v -> {
+ deviceRepartBills.setCreateBy(SharedPreferencesUtils.getstring("user",null));
+ OkGo.post(url + "/bx/subment")
+ .params("json", gson.toJson(deviceRepartBills))
+ .addFileParams("file", files)
+ .execute(new MyRecultCall(dialog, context) {
+ @Override
+ public void onSuccess(Response response) {
+ super.onSuccess(response);
+ MyResult body = response.body();
+ if (body.getCode() == 0) {
+ files.forEach(File::delete);
+ filesList.clear();
+ fileAdapter.notifyDataSetChanged();
+ binding.setDevice(null);
+ deviceRepartBills.setOperation(null);
+ deviceRepartBills.setRemark(null);
+ return;
+ }
+ Snackbar.make(view, body.getMsg(), Snackbar.LENGTH_LONG).show();
+ }
+ });
+
+ });
+
+ return view;
+
+
+ }
+
+ @SuppressLint("NotifyDataSetChanged")
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ designList = Arrays.asList(getResources().getStringArray(R.array.open));
+ initFaultType();
+ initRequestLpw();
+ deviceRepartBills = new DeviceRepartBills();
+ binding.setVm(deviceRepartBills);
+ designOperations = new ArrayList<>();
+ ImgDialog imgDialog = new ImgDialog(context);
+ filesList = new ArrayList<>(10);
+ files = new ArrayList<>(10);
+ fileAdapter = new DisposalFileAdapter(context, (position, type) -> {
+ if (type) {
+ imgDialog.setRawReturn(filesList.get(position).getFaultFile());
+ return;
+ }
+ filesList.remove(position);
+ files.remove(position);
+ fileAdapter.notifyDataSetChanged();
+ });
+ fileAdapter.setList(filesList);
+ binding.setAdapter1(fileAdapter);
+
+ }
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (requestCode == IntentIntegrator.REQUEST_CODE) {
+ IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
+ if (result != null) {
+ if (result.getContents() == null) {
+ Snackbar.make(view, "扫描取消", Snackbar.LENGTH_LONG).show();
+ } else {
+ Snackbar.make(view, "扫描成功", Snackbar.LENGTH_LONG).show();
+
+ selectDeviceInfo(result.getContents());
+ }
+ }
+ } else if (requestCode == CAMERA_PHOTO) {
+ zipPhoto();
+ }
+ }
+
+ // 查询设备
+ private void selectDeviceInfo(String code) {
+ binding.selectNameView.setText(code);
+ OkGo.post(url + "/home/selectDeviceInfo").params("code", code).execute(new MyRecultCall(dialog, context) {
+ @Override
+ public void onSuccess(Response response) {
+ super.onSuccess(response);
+ MyResult body = response.body();
+ if (body.getCode() == 0) {
+ DeviceInfo deviceInfo = gson.fromJson(body.getDataJson(), DeviceInfo.class);
+ binding.setDevice(deviceInfo);
+ deviceRepartBills.setDeviceID(String.valueOf(deviceInfo.getObjId()));
+ return;
+ }
+ Toast.makeText(context, body.getMsg(), Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+
+ private void initFaultType() {
+
+ OkGo.post(url + "/fault/selectFaultList")
+ .execute(new MyRecultCall(dialog, context) {
+ @Override
+ public void onSuccess(Response response) {
+ MyResult body = response.body();
+ if (body.getCode() == 0) {
+ List list = gson.fromJson(body.getDataJson(), new TypeToken>() {
+ }.getType());
+ if (list == null || list.isEmpty()) return;
+ List tagList = new ArrayList<>(list.size());
+ list.forEach(t -> tagList.add(t.getFaultCode() + " - " + t.getFaultName()));
+ binding.setFaultTypes(tagList);
+ deviceRepartBills.setList(list);
+ return;
+ }
+ Toast.makeText(context, body.getMsg(), Toast.LENGTH_SHORT).show();
+ }
+ });
+
+
- final TextView textView = binding.textSlideshow;
- slideshowViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
- return root;
}
@Override
@@ -34,4 +197,44 @@ public class SlideshowFragment extends Fragment {
super.onDestroyView();
binding = null;
}
+
+ private void initRequestLpw() {
+
+ lpw = new ListPopupWindow(context);
+ lpw.setAnchorView(binding.bxDesOpe);
+
+ lpw.setAdapter(new ArrayAdapter<>(context,
+ androidx.appcompat.R.layout.support_simple_spinner_dropdown_item, designList));
+
+ lpw.setOnItemClickListener((parent, view, position, id) -> {
+ String tag = designList.get(position);
+
+ if (designOperations.contains(tag)) {
+ designOperations.remove(tag);
+
+ } else {
+ designOperations.add(tag);
+ }
+ String replace = designOperations.toString()
+ .replaceFirst("\\[", "")
+ .replace("]", "");
+ binding.bxDesOpe.setText(replace);
+
+ deviceRepartBills.setOperation(replace);
+ lpw.dismiss();
+ });
+
+ }
+
+ @SuppressLint("NotifyDataSetChanged")
+ @Override
+ public void tekePhotoResult(String fileUrl, File file) {
+ super.tekePhotoResult(fileUrl, file);
+ CheckInstanceFiles checkInstanceFiles = new CheckInstanceFiles();
+ checkInstanceFiles.setFaultFile(fileUrl);
+ checkInstanceFiles.setState(true);
+ filesList.add(checkInstanceFiles);
+ fileAdapter.notifyDataSetChanged();
+ files.add(file);
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_menu_slideshow.xml b/app/src/main/res/drawable/ic_menu_slideshow.xml
index 5e9e163..c3293b9 100644
--- a/app/src/main/res/drawable/ic_menu_slideshow.xml
+++ b/app/src/main/res/drawable/ic_menu_slideshow.xml
@@ -1,9 +1,31 @@
+
+ android:width="1024dp"
+ android:height="1024dp"
+ android:viewportWidth="1024"
+ android:viewportHeight="1024">
+
-
+ android:fillColor="#000000"
+ android:pathData="M652,64 C691.187,64,724.524,89.044,736.879,124 L802,124
+C851.209,124,891.193,163.493,891.988,212.512 L892,214 L892,870
+C892,919.209,852.507,959.193,803.488,959.988 L802,960 L222,960
+C172.791,960,132.807,920.507,132.012,871.488 L132,870 L132,214
+C132,164.791,171.493,124.807,220.512,124.012 L222,124 L287.121,124
+C299.476,89.044,332.813,64,372,64 Z M282,184 L222,184
+C205.597,184,192.269,197.164,192.004,213.504 L192,214 L192,870
+C192,886.403,205.164,899.731,221.504,899.996 L222,900 L802,900
+C818.403,900,831.731,886.836,831.996,870.496 L832,870 L832,214
+C832,197.597,818.836,184.269,802.496,184.004 L802,184 L742,184 L742,204
+C742,225.87,724.448,243.641,702.661,243.995 L702,244 L322,244
+C299.909,244,282,226.091,282,204 L282,184 Z M512,330
+C647.31,330,757,439.69,757,575 S647.31,820,512,820 S267,710.31,267,575
+S376.69,330,512,330 Z M512,390 C409.827,390,327,472.827,327,575
+S409.827,760,512,760 S697,677.173,697,575 S614.173,390,512,390 Z M512,652
+C528.569,652,542,665.431,542,682 C542,698.569,528.569,712,512,712
+C495.431,712,482,698.569,482,682 C482,665.431,495.431,652,512,652 Z M512,430
+C528.569,430,542,443.431,542,460 L542,602 C542,618.569,528.569,632,512,632
+C495.431,632,482,618.569,482,602 L482,460 C482,443.431,495.431,430,512,430 Z
+M652,124 L372,124 C355.431,124,342,137.431,342,154 L342,184 L682,184 L682,154
+C682,137.597,668.836,124.269,652.496,124.004 L652,124 Z" />
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_xl.png b/app/src/main/res/drawable/ic_xl.png
new file mode 100644
index 0000000..9446e21
Binary files /dev/null and b/app/src/main/res/drawable/ic_xl.png differ
diff --git a/app/src/main/res/drawable/san_text_bg.xml b/app/src/main/res/drawable/san_text_bg.xml
new file mode 100644
index 0000000..25671e0
--- /dev/null
+++ b/app/src/main/res/drawable/san_text_bg.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/text_bg.xml b/app/src/main/res/drawable/text_bg.xml
new file mode 100644
index 0000000..4632687
--- /dev/null
+++ b/app/src/main/res/drawable/text_bg.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_img.xml b/app/src/main/res/layout/dialog_img.xml
new file mode 100644
index 0000000..0dc4e71
--- /dev/null
+++ b/app/src/main/res/layout/dialog_img.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index 7537238..094826f 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="#e1e1e1"
+ android:background="@color/activity_bg"
android:orientation="vertical"
tools:context=".ui.home.HomeFragment">
@@ -109,7 +109,17 @@
android:layout_width="match_parent"
android:layout_height="55dp"
android:layout_gravity="center"
+ android:layout_weight="1"
android:text="扫码开锁" />
+
+
diff --git a/app/src/main/res/layout/fragment_slideshow.xml b/app/src/main/res/layout/fragment_slideshow.xml
index 2141a33..dd1a925 100644
--- a/app/src/main/res/layout/fragment_slideshow.xml
+++ b/app/src/main/res/layout/fragment_slideshow.xml
@@ -1,22 +1,306 @@
-
+ xmlns:tools="http://schemas.android.com/tools">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+ android:layout_height="match_parent"
+ android:background="@color/activity_bg">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_disposal_img.xml b/app/src/main/res/layout/item_disposal_img.xml
new file mode 100644
index 0000000..8208def
--- /dev/null
+++ b/app/src/main/res/layout/item_disposal_img.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml
index c8356a3..7dd5fc1 100644
--- a/app/src/main/res/menu/activity_main_drawer.xml
+++ b/app/src/main/res/menu/activity_main_drawer.xml
@@ -12,9 +12,9 @@
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_record"
android:title="@string/menu_gallery" />
-
-
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/app/src/main/res/mipmap-anydpi/ic_launcher.xml
deleted file mode 100644
index 6f3b755..0000000
--- a/app/src/main/res/mipmap-anydpi/ic_launcher.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
deleted file mode 100644
index 6f3b755..0000000
--- a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_add_file.png b/app/src/main/res/mipmap-hdpi/ic_add_file.png
new file mode 100644
index 0000000..b6f76fc
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_add_file.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_cha2.png b/app/src/main/res/mipmap-hdpi/ic_cha2.png
new file mode 100644
index 0000000..b794016
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_cha2.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
deleted file mode 100644
index c209e78..0000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
deleted file mode 100644
index b2dfe3d..0000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_picture_err.png b/app/src/main/res/mipmap-hdpi/ic_picture_err.png
new file mode 100644
index 0000000..f788c23
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_picture_err.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_scan.png b/app/src/main/res/mipmap-hdpi/ic_scan.png
new file mode 100644
index 0000000..9584da3
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_scan.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
deleted file mode 100644
index 4f0f1d6..0000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
deleted file mode 100644
index 62b611d..0000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
deleted file mode 100644
index 948a307..0000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
deleted file mode 100644
index 1b9a695..0000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
deleted file mode 100644
index 28d4b77..0000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9287f50..0000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
deleted file mode 100644
index aa7d642..0000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9126ae3..0000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
new file mode 100644
index 0000000..cfeae4c
--- /dev/null
+++ b/app/src/main/res/values/arrays.xml
@@ -0,0 +1,26 @@
+
+
+
+ - 涂装
+ - 清洁
+ - 除锈
+ - 防腐处理
+ - 登高
+ - 脚手架搭设与拆除
+ - 泄漏点封堵
+ - 安全附件检修
+ - 电气维修
+ - 进入受限空间
+ - 起重吊装
+ - 拆卸与组装
+ - 管道维修
+ - 机械部件更换
+ - 设备调试
+ - 液压与气动系统维修
+ - 轴承拆装与维护
+ - 密封件更换
+ - 电缆敷设与接线
+ - 仪器仪表校准与维修
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 3393393..f0771b1 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -11,4 +11,5 @@
#FFA726
#387BE7
#1976D2
+ #F2F3F5
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a8e0cac..38b6f99 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -9,7 +9,7 @@
Home
借用记录
- Slideshow
+ 故障报修
LoginActivity
Email
Password
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 9aafa35..59bcf7b 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -94,4 +94,36 @@
- @anim/dialog_in
- @anim/dialog_out
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml
new file mode 100644
index 0000000..0eaf749
--- /dev/null
+++ b/app/src/main/res/xml/file_paths.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file