diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
new file mode 100644
index 0000000..75a0629
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
@@ -0,0 +1,13 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ActionResultBean;
+
+public interface ISubmitMaintainView {
+ void showProgress();
+
+ void hideProgress();
+
+ void obtainSubmitResult(ActionResultBean resultBean);
+
+ void obtainDataFail();
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
new file mode 100644
index 0000000..75a0629
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
@@ -0,0 +1,13 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ActionResultBean;
+
+public interface ISubmitMaintainView {
+ void showProgress();
+
+ void hideProgress();
+
+ void obtainSubmitResult(ActionResultBean resultBean);
+
+ void obtainDataFail();
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
new file mode 100644
index 0000000..84b0eef
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
@@ -0,0 +1,239 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.location.Location;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.widgets.SignInDialog;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class BridgeMaintainActivity extends BaseActivity implements View.OnClickListener, ISubmitMaintainView {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.bridgeNameView)
+ TextView bridgeNameView;
+ @BindView(R.id.maintainView)
+ TextView maintainView;
+ @BindView(R.id.maintainDateView)
+ TextView maintainDateView;
+ @BindView(R.id.liablePersonView)
+ TextView liablePersonView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+ //以下非必填
+ @BindView(R.id.remarksView)
+ EditText remarksView;
+
+ private String bridgeId = "";
+ private SubmitMaintainPresenterImpl submitMaintainPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_bridge;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ topLayout.setTitle("路桥养护").setTextColor(ContextCompat.getColor(this, R.color.white));
+ topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ topLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ topLayout.addRightImageButton(R.drawable.ic_more, 2).setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ submitMaintainPresenter = new SubmitMaintainPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ liablePersonView.setText(StringHelper.getUserAccount());
+ liablePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ String systemDate = TimeOrDateUtil.timestampToDate(System.currentTimeMillis());
+ maintainDateView.post(new Runnable() {
+ @Override
+ public void run() {
+ maintainDateView.setText(systemDate);
+ maintainDateView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ });
+ }
+ }, 0, 1000);
+ }
+
+ @OnClick({R.id.bridgeLayout, R.id.maintainContentLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.bridgeLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("选择桥梁")
+ .addItem("永胜桥")
+ .addItem("黄洲桥")
+ .addItem("光明桥")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ bridgeId = String.valueOf((1 + position));
+ bridgeNameView.setText(tag);
+ bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.maintainContentLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ maintainView.setText(tag);
+ maintainView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ //获取定位信息
+ LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+
+ }
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (aMapLocation != null) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ ToastHelper.showToast("请先选择养护的桥梁", ToastHelper.WARING);
+ return;
+ }
+ String maintainContent = maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ ToastHelper.showToast("请选择养护的内容", ToastHelper.WARING);
+ return;
+ }
+
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ LatLonPoint latLonPoint = new LatLonPoint(gcjToWgs[1], gcjToWgs[0]);
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ SaveKeyValues.putValue("maintainAddress", address);
+ }
+ });
+ //提交养护记录
+ submitMaintainPresenter.onReadyRetrofitRequest(bridgeId, maintainContent,
+ maintainDateView.getText().toString(),
+ StringHelper.getUserId(), String.valueOf(gcjToWgs[0]),
+ String.valueOf(gcjToWgs[1]),
+ StringHelper.filterString(remarksView.getText().toString()));
+ } else {
+ ToastHelper.showToast("当前信号较弱,无法提交养护记录", ToastHelper.WARING);
+ }
+ }
+ }, true);
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value: " + v.getId());
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "养护记录签到中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainSubmitResult(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.isSuccess()) {
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ finish();
+ }
+ }).build().show();
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (submitMaintainPresenter != null) {
+ submitMaintainPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
new file mode 100644
index 0000000..75a0629
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
@@ -0,0 +1,13 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ActionResultBean;
+
+public interface ISubmitMaintainView {
+ void showProgress();
+
+ void hideProgress();
+
+ void obtainSubmitResult(ActionResultBean resultBean);
+
+ void obtainDataFail();
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
new file mode 100644
index 0000000..84b0eef
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
@@ -0,0 +1,239 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.location.Location;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.widgets.SignInDialog;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class BridgeMaintainActivity extends BaseActivity implements View.OnClickListener, ISubmitMaintainView {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.bridgeNameView)
+ TextView bridgeNameView;
+ @BindView(R.id.maintainView)
+ TextView maintainView;
+ @BindView(R.id.maintainDateView)
+ TextView maintainDateView;
+ @BindView(R.id.liablePersonView)
+ TextView liablePersonView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+ //以下非必填
+ @BindView(R.id.remarksView)
+ EditText remarksView;
+
+ private String bridgeId = "";
+ private SubmitMaintainPresenterImpl submitMaintainPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_bridge;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ topLayout.setTitle("路桥养护").setTextColor(ContextCompat.getColor(this, R.color.white));
+ topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ topLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ topLayout.addRightImageButton(R.drawable.ic_more, 2).setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ submitMaintainPresenter = new SubmitMaintainPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ liablePersonView.setText(StringHelper.getUserAccount());
+ liablePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ String systemDate = TimeOrDateUtil.timestampToDate(System.currentTimeMillis());
+ maintainDateView.post(new Runnable() {
+ @Override
+ public void run() {
+ maintainDateView.setText(systemDate);
+ maintainDateView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ });
+ }
+ }, 0, 1000);
+ }
+
+ @OnClick({R.id.bridgeLayout, R.id.maintainContentLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.bridgeLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("选择桥梁")
+ .addItem("永胜桥")
+ .addItem("黄洲桥")
+ .addItem("光明桥")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ bridgeId = String.valueOf((1 + position));
+ bridgeNameView.setText(tag);
+ bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.maintainContentLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ maintainView.setText(tag);
+ maintainView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ //获取定位信息
+ LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+
+ }
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (aMapLocation != null) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ ToastHelper.showToast("请先选择养护的桥梁", ToastHelper.WARING);
+ return;
+ }
+ String maintainContent = maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ ToastHelper.showToast("请选择养护的内容", ToastHelper.WARING);
+ return;
+ }
+
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ LatLonPoint latLonPoint = new LatLonPoint(gcjToWgs[1], gcjToWgs[0]);
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ SaveKeyValues.putValue("maintainAddress", address);
+ }
+ });
+ //提交养护记录
+ submitMaintainPresenter.onReadyRetrofitRequest(bridgeId, maintainContent,
+ maintainDateView.getText().toString(),
+ StringHelper.getUserId(), String.valueOf(gcjToWgs[0]),
+ String.valueOf(gcjToWgs[1]),
+ StringHelper.filterString(remarksView.getText().toString()));
+ } else {
+ ToastHelper.showToast("当前信号较弱,无法提交养护记录", ToastHelper.WARING);
+ }
+ }
+ }, true);
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value: " + v.getId());
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "养护记录签到中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainSubmitResult(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.isSuccess()) {
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ finish();
+ }
+ }).build().show();
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (submitMaintainPresenter != null) {
+ submitMaintainPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 7221e95..381b704 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -25,6 +25,7 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
@@ -38,8 +39,8 @@
public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
- // @BindView(R.id.emptyView)
-// QMUIEmptyView emptyView;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
@BindView(R.id.dateView)
TextView dateView;
@BindView(R.id.calendarView)
@@ -126,7 +127,6 @@
@Override
public void obtainCleanRecordResult(CleanRecordBean resultBean) {
-// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
@@ -175,9 +175,9 @@
} else {
//首次加载数据
if (resultActivity.dataBeans.size() == 0) {
-// resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
-// resultActivity.emptyView.hide();
+ resultActivity.emptyView.hide();
resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
new file mode 100644
index 0000000..75a0629
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
@@ -0,0 +1,13 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ActionResultBean;
+
+public interface ISubmitMaintainView {
+ void showProgress();
+
+ void hideProgress();
+
+ void obtainSubmitResult(ActionResultBean resultBean);
+
+ void obtainDataFail();
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
new file mode 100644
index 0000000..84b0eef
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
@@ -0,0 +1,239 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.location.Location;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.widgets.SignInDialog;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class BridgeMaintainActivity extends BaseActivity implements View.OnClickListener, ISubmitMaintainView {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.bridgeNameView)
+ TextView bridgeNameView;
+ @BindView(R.id.maintainView)
+ TextView maintainView;
+ @BindView(R.id.maintainDateView)
+ TextView maintainDateView;
+ @BindView(R.id.liablePersonView)
+ TextView liablePersonView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+ //以下非必填
+ @BindView(R.id.remarksView)
+ EditText remarksView;
+
+ private String bridgeId = "";
+ private SubmitMaintainPresenterImpl submitMaintainPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_bridge;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ topLayout.setTitle("路桥养护").setTextColor(ContextCompat.getColor(this, R.color.white));
+ topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ topLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ topLayout.addRightImageButton(R.drawable.ic_more, 2).setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ submitMaintainPresenter = new SubmitMaintainPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ liablePersonView.setText(StringHelper.getUserAccount());
+ liablePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ String systemDate = TimeOrDateUtil.timestampToDate(System.currentTimeMillis());
+ maintainDateView.post(new Runnable() {
+ @Override
+ public void run() {
+ maintainDateView.setText(systemDate);
+ maintainDateView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ });
+ }
+ }, 0, 1000);
+ }
+
+ @OnClick({R.id.bridgeLayout, R.id.maintainContentLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.bridgeLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("选择桥梁")
+ .addItem("永胜桥")
+ .addItem("黄洲桥")
+ .addItem("光明桥")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ bridgeId = String.valueOf((1 + position));
+ bridgeNameView.setText(tag);
+ bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.maintainContentLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ maintainView.setText(tag);
+ maintainView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ //获取定位信息
+ LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+
+ }
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (aMapLocation != null) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ ToastHelper.showToast("请先选择养护的桥梁", ToastHelper.WARING);
+ return;
+ }
+ String maintainContent = maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ ToastHelper.showToast("请选择养护的内容", ToastHelper.WARING);
+ return;
+ }
+
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ LatLonPoint latLonPoint = new LatLonPoint(gcjToWgs[1], gcjToWgs[0]);
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ SaveKeyValues.putValue("maintainAddress", address);
+ }
+ });
+ //提交养护记录
+ submitMaintainPresenter.onReadyRetrofitRequest(bridgeId, maintainContent,
+ maintainDateView.getText().toString(),
+ StringHelper.getUserId(), String.valueOf(gcjToWgs[0]),
+ String.valueOf(gcjToWgs[1]),
+ StringHelper.filterString(remarksView.getText().toString()));
+ } else {
+ ToastHelper.showToast("当前信号较弱,无法提交养护记录", ToastHelper.WARING);
+ }
+ }
+ }, true);
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value: " + v.getId());
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "养护记录签到中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainSubmitResult(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.isSuccess()) {
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ finish();
+ }
+ }).build().show();
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (submitMaintainPresenter != null) {
+ submitMaintainPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 7221e95..381b704 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -25,6 +25,7 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
@@ -38,8 +39,8 @@
public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
- // @BindView(R.id.emptyView)
-// QMUIEmptyView emptyView;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
@BindView(R.id.dateView)
TextView dateView;
@BindView(R.id.calendarView)
@@ -126,7 +127,6 @@
@Override
public void obtainCleanRecordResult(CleanRecordBean resultBean) {
-// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
@@ -175,9 +175,9 @@
} else {
//首次加载数据
if (resultActivity.dataBeans.size() == 0) {
-// resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
-// resultActivity.emptyView.hide();
+ resultActivity.emptyView.hide();
resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
new file mode 100644
index 0000000..05c41c9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -0,0 +1,194 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.MaintainRecordAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.presenter.MaintainRecordPresenterImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+import com.casic.dcms.utils.CalendarUtil;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class MaintainRecordActivity extends BaseCaseActivity implements IMaintainRecordView {
+
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.dateView)
+ TextView dateView;
+ @BindView(R.id.calendarView)
+ ImageView calendarView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.recordRecyclerView)
+ RecyclerView recordRecyclerView;
+
+ private Context context = this;
+ private int pageIndex = 1;
+ private boolean isRefresh, isLoadMore = false;
+ private WeakReferenceHandler weakReferenceHandler;
+ private List dataBeans = new ArrayList<>();
+ private MaintainRecordPresenterImpl recordPresenter;
+ private MaintainRecordAdapter adapter;
+ private int startGroup = -1;
+ private int endGroup = -1;
+ private int startChild = -1;
+ private int endChild = -1;
+
+ @Override
+ protected String setTitleName() {
+ return "桥梁养护记录";
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_maintain_record;
+ }
+
+ @Override
+ public void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ recordPresenter = new MaintainRecordPresenterImpl(this);
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+
+ @Override
+ public void initEvent() {
+ calendarView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ new DatePopupWindow
+ .Builder(MaintainRecordActivity.this, CalendarUtil.obtainLastTwoMonth(), v)//初始化
+ .setInitSelect(startGroup, startChild, endGroup, endChild)//设置上一次选中的区间状态
+ .setInitDay(true)//默认为true,UI内容为共几天、开始、结束;当为false时,UI内容为共几晚、入住、离开
+ .setDateOnClickListener(new DatePopupWindow.DateOnClickListener() {//设置监听
+ //点击完成按钮后回调返回方法
+ @Override
+ public void getDate(String startDate, String endDate, int startGroupPosition, int
+ startChildPosition, int endGroupPosition, int endChildPosition) {
+ startGroup = startGroupPosition;//开始月份位置
+ startChild = startChildPosition;//开始对应月份中日的位置
+ endGroup = endGroupPosition;//结束月份位置
+ endChild = endChildPosition;//结束对应月份中日的位置
+ dateView.setText(startDate + "~" + endDate);
+ recordPresenter.onReadyRetrofitRequest(startDate, endDate, pageIndex);
+ }
+ }).builder();
+ }
+ });
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ }
+
+ @Override
+ public void obtainRecordResult(MaintainRecordBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210622);
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "查询记录中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(MaintainRecordActivity activity) {
+ reference = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ super.handleMessage(msg);
+ MaintainRecordActivity resultActivity = reference.get();
+ if (msg.what == 20210622) {
+ if (resultActivity.isRefresh || resultActivity.isLoadMore) {
+ resultActivity.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (resultActivity.dataBeans.size() == 0) {
+ resultActivity.emptyView.show("抱歉,没有查到相关养护记录", null);
+ } else {
+ resultActivity.emptyView.hide();
+ resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
+ resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
+ resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
+ resultActivity.recordRecyclerView.setAdapter(resultActivity.adapter);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (recordPresenter != null) {
+ recordPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
new file mode 100644
index 0000000..75a0629
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
@@ -0,0 +1,13 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ActionResultBean;
+
+public interface ISubmitMaintainView {
+ void showProgress();
+
+ void hideProgress();
+
+ void obtainSubmitResult(ActionResultBean resultBean);
+
+ void obtainDataFail();
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
new file mode 100644
index 0000000..84b0eef
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
@@ -0,0 +1,239 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.location.Location;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.widgets.SignInDialog;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class BridgeMaintainActivity extends BaseActivity implements View.OnClickListener, ISubmitMaintainView {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.bridgeNameView)
+ TextView bridgeNameView;
+ @BindView(R.id.maintainView)
+ TextView maintainView;
+ @BindView(R.id.maintainDateView)
+ TextView maintainDateView;
+ @BindView(R.id.liablePersonView)
+ TextView liablePersonView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+ //以下非必填
+ @BindView(R.id.remarksView)
+ EditText remarksView;
+
+ private String bridgeId = "";
+ private SubmitMaintainPresenterImpl submitMaintainPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_bridge;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ topLayout.setTitle("路桥养护").setTextColor(ContextCompat.getColor(this, R.color.white));
+ topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ topLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ topLayout.addRightImageButton(R.drawable.ic_more, 2).setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ submitMaintainPresenter = new SubmitMaintainPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ liablePersonView.setText(StringHelper.getUserAccount());
+ liablePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ String systemDate = TimeOrDateUtil.timestampToDate(System.currentTimeMillis());
+ maintainDateView.post(new Runnable() {
+ @Override
+ public void run() {
+ maintainDateView.setText(systemDate);
+ maintainDateView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ });
+ }
+ }, 0, 1000);
+ }
+
+ @OnClick({R.id.bridgeLayout, R.id.maintainContentLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.bridgeLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("选择桥梁")
+ .addItem("永胜桥")
+ .addItem("黄洲桥")
+ .addItem("光明桥")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ bridgeId = String.valueOf((1 + position));
+ bridgeNameView.setText(tag);
+ bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.maintainContentLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ maintainView.setText(tag);
+ maintainView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ //获取定位信息
+ LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+
+ }
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (aMapLocation != null) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ ToastHelper.showToast("请先选择养护的桥梁", ToastHelper.WARING);
+ return;
+ }
+ String maintainContent = maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ ToastHelper.showToast("请选择养护的内容", ToastHelper.WARING);
+ return;
+ }
+
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ LatLonPoint latLonPoint = new LatLonPoint(gcjToWgs[1], gcjToWgs[0]);
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ SaveKeyValues.putValue("maintainAddress", address);
+ }
+ });
+ //提交养护记录
+ submitMaintainPresenter.onReadyRetrofitRequest(bridgeId, maintainContent,
+ maintainDateView.getText().toString(),
+ StringHelper.getUserId(), String.valueOf(gcjToWgs[0]),
+ String.valueOf(gcjToWgs[1]),
+ StringHelper.filterString(remarksView.getText().toString()));
+ } else {
+ ToastHelper.showToast("当前信号较弱,无法提交养护记录", ToastHelper.WARING);
+ }
+ }
+ }, true);
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value: " + v.getId());
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "养护记录签到中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainSubmitResult(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.isSuccess()) {
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ finish();
+ }
+ }).build().show();
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (submitMaintainPresenter != null) {
+ submitMaintainPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 7221e95..381b704 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -25,6 +25,7 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
@@ -38,8 +39,8 @@
public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
- // @BindView(R.id.emptyView)
-// QMUIEmptyView emptyView;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
@BindView(R.id.dateView)
TextView dateView;
@BindView(R.id.calendarView)
@@ -126,7 +127,6 @@
@Override
public void obtainCleanRecordResult(CleanRecordBean resultBean) {
-// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
@@ -175,9 +175,9 @@
} else {
//首次加载数据
if (resultActivity.dataBeans.size() == 0) {
-// resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
-// resultActivity.emptyView.hide();
+ resultActivity.emptyView.hide();
resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
new file mode 100644
index 0000000..05c41c9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -0,0 +1,194 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.MaintainRecordAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.presenter.MaintainRecordPresenterImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+import com.casic.dcms.utils.CalendarUtil;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class MaintainRecordActivity extends BaseCaseActivity implements IMaintainRecordView {
+
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.dateView)
+ TextView dateView;
+ @BindView(R.id.calendarView)
+ ImageView calendarView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.recordRecyclerView)
+ RecyclerView recordRecyclerView;
+
+ private Context context = this;
+ private int pageIndex = 1;
+ private boolean isRefresh, isLoadMore = false;
+ private WeakReferenceHandler weakReferenceHandler;
+ private List dataBeans = new ArrayList<>();
+ private MaintainRecordPresenterImpl recordPresenter;
+ private MaintainRecordAdapter adapter;
+ private int startGroup = -1;
+ private int endGroup = -1;
+ private int startChild = -1;
+ private int endChild = -1;
+
+ @Override
+ protected String setTitleName() {
+ return "桥梁养护记录";
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_maintain_record;
+ }
+
+ @Override
+ public void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ recordPresenter = new MaintainRecordPresenterImpl(this);
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+
+ @Override
+ public void initEvent() {
+ calendarView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ new DatePopupWindow
+ .Builder(MaintainRecordActivity.this, CalendarUtil.obtainLastTwoMonth(), v)//初始化
+ .setInitSelect(startGroup, startChild, endGroup, endChild)//设置上一次选中的区间状态
+ .setInitDay(true)//默认为true,UI内容为共几天、开始、结束;当为false时,UI内容为共几晚、入住、离开
+ .setDateOnClickListener(new DatePopupWindow.DateOnClickListener() {//设置监听
+ //点击完成按钮后回调返回方法
+ @Override
+ public void getDate(String startDate, String endDate, int startGroupPosition, int
+ startChildPosition, int endGroupPosition, int endChildPosition) {
+ startGroup = startGroupPosition;//开始月份位置
+ startChild = startChildPosition;//开始对应月份中日的位置
+ endGroup = endGroupPosition;//结束月份位置
+ endChild = endChildPosition;//结束对应月份中日的位置
+ dateView.setText(startDate + "~" + endDate);
+ recordPresenter.onReadyRetrofitRequest(startDate, endDate, pageIndex);
+ }
+ }).builder();
+ }
+ });
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ }
+
+ @Override
+ public void obtainRecordResult(MaintainRecordBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210622);
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "查询记录中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(MaintainRecordActivity activity) {
+ reference = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ super.handleMessage(msg);
+ MaintainRecordActivity resultActivity = reference.get();
+ if (msg.what == 20210622) {
+ if (resultActivity.isRefresh || resultActivity.isLoadMore) {
+ resultActivity.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (resultActivity.dataBeans.size() == 0) {
+ resultActivity.emptyView.show("抱歉,没有查到相关养护记录", null);
+ } else {
+ resultActivity.emptyView.hide();
+ resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
+ resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
+ resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
+ resultActivity.recordRecyclerView.setAdapter(resultActivity.adapter);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (recordPresenter != null) {
+ recordPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
new file mode 100644
index 0000000..fa77936
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.ui;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+
+public class PipelineManagerActivity extends BaseActivity {
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_pipe;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
new file mode 100644
index 0000000..75a0629
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
@@ -0,0 +1,13 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ActionResultBean;
+
+public interface ISubmitMaintainView {
+ void showProgress();
+
+ void hideProgress();
+
+ void obtainSubmitResult(ActionResultBean resultBean);
+
+ void obtainDataFail();
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
new file mode 100644
index 0000000..84b0eef
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
@@ -0,0 +1,239 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.location.Location;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.widgets.SignInDialog;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class BridgeMaintainActivity extends BaseActivity implements View.OnClickListener, ISubmitMaintainView {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.bridgeNameView)
+ TextView bridgeNameView;
+ @BindView(R.id.maintainView)
+ TextView maintainView;
+ @BindView(R.id.maintainDateView)
+ TextView maintainDateView;
+ @BindView(R.id.liablePersonView)
+ TextView liablePersonView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+ //以下非必填
+ @BindView(R.id.remarksView)
+ EditText remarksView;
+
+ private String bridgeId = "";
+ private SubmitMaintainPresenterImpl submitMaintainPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_bridge;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ topLayout.setTitle("路桥养护").setTextColor(ContextCompat.getColor(this, R.color.white));
+ topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ topLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ topLayout.addRightImageButton(R.drawable.ic_more, 2).setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ submitMaintainPresenter = new SubmitMaintainPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ liablePersonView.setText(StringHelper.getUserAccount());
+ liablePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ String systemDate = TimeOrDateUtil.timestampToDate(System.currentTimeMillis());
+ maintainDateView.post(new Runnable() {
+ @Override
+ public void run() {
+ maintainDateView.setText(systemDate);
+ maintainDateView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ });
+ }
+ }, 0, 1000);
+ }
+
+ @OnClick({R.id.bridgeLayout, R.id.maintainContentLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.bridgeLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("选择桥梁")
+ .addItem("永胜桥")
+ .addItem("黄洲桥")
+ .addItem("光明桥")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ bridgeId = String.valueOf((1 + position));
+ bridgeNameView.setText(tag);
+ bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.maintainContentLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ maintainView.setText(tag);
+ maintainView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ //获取定位信息
+ LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+
+ }
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (aMapLocation != null) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ ToastHelper.showToast("请先选择养护的桥梁", ToastHelper.WARING);
+ return;
+ }
+ String maintainContent = maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ ToastHelper.showToast("请选择养护的内容", ToastHelper.WARING);
+ return;
+ }
+
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ LatLonPoint latLonPoint = new LatLonPoint(gcjToWgs[1], gcjToWgs[0]);
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ SaveKeyValues.putValue("maintainAddress", address);
+ }
+ });
+ //提交养护记录
+ submitMaintainPresenter.onReadyRetrofitRequest(bridgeId, maintainContent,
+ maintainDateView.getText().toString(),
+ StringHelper.getUserId(), String.valueOf(gcjToWgs[0]),
+ String.valueOf(gcjToWgs[1]),
+ StringHelper.filterString(remarksView.getText().toString()));
+ } else {
+ ToastHelper.showToast("当前信号较弱,无法提交养护记录", ToastHelper.WARING);
+ }
+ }
+ }, true);
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value: " + v.getId());
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "养护记录签到中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainSubmitResult(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.isSuccess()) {
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ finish();
+ }
+ }).build().show();
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (submitMaintainPresenter != null) {
+ submitMaintainPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 7221e95..381b704 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -25,6 +25,7 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
@@ -38,8 +39,8 @@
public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
- // @BindView(R.id.emptyView)
-// QMUIEmptyView emptyView;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
@BindView(R.id.dateView)
TextView dateView;
@BindView(R.id.calendarView)
@@ -126,7 +127,6 @@
@Override
public void obtainCleanRecordResult(CleanRecordBean resultBean) {
-// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
@@ -175,9 +175,9 @@
} else {
//首次加载数据
if (resultActivity.dataBeans.size() == 0) {
-// resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
-// resultActivity.emptyView.hide();
+ resultActivity.emptyView.hide();
resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
new file mode 100644
index 0000000..05c41c9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -0,0 +1,194 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.MaintainRecordAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.presenter.MaintainRecordPresenterImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+import com.casic.dcms.utils.CalendarUtil;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class MaintainRecordActivity extends BaseCaseActivity implements IMaintainRecordView {
+
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.dateView)
+ TextView dateView;
+ @BindView(R.id.calendarView)
+ ImageView calendarView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.recordRecyclerView)
+ RecyclerView recordRecyclerView;
+
+ private Context context = this;
+ private int pageIndex = 1;
+ private boolean isRefresh, isLoadMore = false;
+ private WeakReferenceHandler weakReferenceHandler;
+ private List dataBeans = new ArrayList<>();
+ private MaintainRecordPresenterImpl recordPresenter;
+ private MaintainRecordAdapter adapter;
+ private int startGroup = -1;
+ private int endGroup = -1;
+ private int startChild = -1;
+ private int endChild = -1;
+
+ @Override
+ protected String setTitleName() {
+ return "桥梁养护记录";
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_maintain_record;
+ }
+
+ @Override
+ public void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ recordPresenter = new MaintainRecordPresenterImpl(this);
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+
+ @Override
+ public void initEvent() {
+ calendarView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ new DatePopupWindow
+ .Builder(MaintainRecordActivity.this, CalendarUtil.obtainLastTwoMonth(), v)//初始化
+ .setInitSelect(startGroup, startChild, endGroup, endChild)//设置上一次选中的区间状态
+ .setInitDay(true)//默认为true,UI内容为共几天、开始、结束;当为false时,UI内容为共几晚、入住、离开
+ .setDateOnClickListener(new DatePopupWindow.DateOnClickListener() {//设置监听
+ //点击完成按钮后回调返回方法
+ @Override
+ public void getDate(String startDate, String endDate, int startGroupPosition, int
+ startChildPosition, int endGroupPosition, int endChildPosition) {
+ startGroup = startGroupPosition;//开始月份位置
+ startChild = startChildPosition;//开始对应月份中日的位置
+ endGroup = endGroupPosition;//结束月份位置
+ endChild = endChildPosition;//结束对应月份中日的位置
+ dateView.setText(startDate + "~" + endDate);
+ recordPresenter.onReadyRetrofitRequest(startDate, endDate, pageIndex);
+ }
+ }).builder();
+ }
+ });
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ }
+
+ @Override
+ public void obtainRecordResult(MaintainRecordBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210622);
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "查询记录中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(MaintainRecordActivity activity) {
+ reference = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ super.handleMessage(msg);
+ MaintainRecordActivity resultActivity = reference.get();
+ if (msg.what == 20210622) {
+ if (resultActivity.isRefresh || resultActivity.isLoadMore) {
+ resultActivity.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (resultActivity.dataBeans.size() == 0) {
+ resultActivity.emptyView.show("抱歉,没有查到相关养护记录", null);
+ } else {
+ resultActivity.emptyView.hide();
+ resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
+ resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
+ resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
+ resultActivity.recordRecyclerView.setAdapter(resultActivity.adapter);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (recordPresenter != null) {
+ recordPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
new file mode 100644
index 0000000..fa77936
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.ui;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+
+public class PipelineManagerActivity extends BaseActivity {
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_pipe;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index ac995d3..4959539 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -300,7 +300,8 @@
@Override
public void onAMapLocationGet(AMapLocation aMapLocation) {
if (aMapLocation != null) {
- Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference());
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReference.create(4326));
mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示
//添加图片Marker
addPictureMarker(point);
@@ -311,11 +312,9 @@
ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING);
return;
}
- double longitude = aMapLocation.getLongitude();
- double latitude = aMapLocation.getLatitude();
String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis());
cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(),
- String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath,
+ String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), cleanTime, imagePath,
StringHelper.filterString(workContentView.getText().toString()));
}
}
@@ -416,15 +415,18 @@
@Override
public void obtainCleanResult(ActionResultBean resultBean) {
-// Log.d(TAG, "obtainCleanResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
- new SignInDialog.Builder().setContext(this).setAddress(locationStreetView.getText().toString()).setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- startActivity(new Intent(context, CleanResultListActivity.class));
- PublicToiletActivity.this.finish();
- }
- }).build().show();
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("保洁保卡成功")
+ .setAddress(locationStreetView.getText().toString())
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, CleanResultListActivity.class));
+ PublicToiletActivity.this.finish();
+ }
+ }).build().show();
}
}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
new file mode 100644
index 0000000..75a0629
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
@@ -0,0 +1,13 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ActionResultBean;
+
+public interface ISubmitMaintainView {
+ void showProgress();
+
+ void hideProgress();
+
+ void obtainSubmitResult(ActionResultBean resultBean);
+
+ void obtainDataFail();
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
new file mode 100644
index 0000000..84b0eef
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
@@ -0,0 +1,239 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.location.Location;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.widgets.SignInDialog;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class BridgeMaintainActivity extends BaseActivity implements View.OnClickListener, ISubmitMaintainView {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.bridgeNameView)
+ TextView bridgeNameView;
+ @BindView(R.id.maintainView)
+ TextView maintainView;
+ @BindView(R.id.maintainDateView)
+ TextView maintainDateView;
+ @BindView(R.id.liablePersonView)
+ TextView liablePersonView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+ //以下非必填
+ @BindView(R.id.remarksView)
+ EditText remarksView;
+
+ private String bridgeId = "";
+ private SubmitMaintainPresenterImpl submitMaintainPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_bridge;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ topLayout.setTitle("路桥养护").setTextColor(ContextCompat.getColor(this, R.color.white));
+ topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ topLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ topLayout.addRightImageButton(R.drawable.ic_more, 2).setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ submitMaintainPresenter = new SubmitMaintainPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ liablePersonView.setText(StringHelper.getUserAccount());
+ liablePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ String systemDate = TimeOrDateUtil.timestampToDate(System.currentTimeMillis());
+ maintainDateView.post(new Runnable() {
+ @Override
+ public void run() {
+ maintainDateView.setText(systemDate);
+ maintainDateView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ });
+ }
+ }, 0, 1000);
+ }
+
+ @OnClick({R.id.bridgeLayout, R.id.maintainContentLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.bridgeLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("选择桥梁")
+ .addItem("永胜桥")
+ .addItem("黄洲桥")
+ .addItem("光明桥")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ bridgeId = String.valueOf((1 + position));
+ bridgeNameView.setText(tag);
+ bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.maintainContentLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ maintainView.setText(tag);
+ maintainView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ //获取定位信息
+ LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+
+ }
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (aMapLocation != null) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ ToastHelper.showToast("请先选择养护的桥梁", ToastHelper.WARING);
+ return;
+ }
+ String maintainContent = maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ ToastHelper.showToast("请选择养护的内容", ToastHelper.WARING);
+ return;
+ }
+
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ LatLonPoint latLonPoint = new LatLonPoint(gcjToWgs[1], gcjToWgs[0]);
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ SaveKeyValues.putValue("maintainAddress", address);
+ }
+ });
+ //提交养护记录
+ submitMaintainPresenter.onReadyRetrofitRequest(bridgeId, maintainContent,
+ maintainDateView.getText().toString(),
+ StringHelper.getUserId(), String.valueOf(gcjToWgs[0]),
+ String.valueOf(gcjToWgs[1]),
+ StringHelper.filterString(remarksView.getText().toString()));
+ } else {
+ ToastHelper.showToast("当前信号较弱,无法提交养护记录", ToastHelper.WARING);
+ }
+ }
+ }, true);
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value: " + v.getId());
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "养护记录签到中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainSubmitResult(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.isSuccess()) {
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ finish();
+ }
+ }).build().show();
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (submitMaintainPresenter != null) {
+ submitMaintainPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 7221e95..381b704 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -25,6 +25,7 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
@@ -38,8 +39,8 @@
public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
- // @BindView(R.id.emptyView)
-// QMUIEmptyView emptyView;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
@BindView(R.id.dateView)
TextView dateView;
@BindView(R.id.calendarView)
@@ -126,7 +127,6 @@
@Override
public void obtainCleanRecordResult(CleanRecordBean resultBean) {
-// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
@@ -175,9 +175,9 @@
} else {
//首次加载数据
if (resultActivity.dataBeans.size() == 0) {
-// resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
-// resultActivity.emptyView.hide();
+ resultActivity.emptyView.hide();
resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
new file mode 100644
index 0000000..05c41c9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -0,0 +1,194 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.MaintainRecordAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.presenter.MaintainRecordPresenterImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+import com.casic.dcms.utils.CalendarUtil;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class MaintainRecordActivity extends BaseCaseActivity implements IMaintainRecordView {
+
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.dateView)
+ TextView dateView;
+ @BindView(R.id.calendarView)
+ ImageView calendarView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.recordRecyclerView)
+ RecyclerView recordRecyclerView;
+
+ private Context context = this;
+ private int pageIndex = 1;
+ private boolean isRefresh, isLoadMore = false;
+ private WeakReferenceHandler weakReferenceHandler;
+ private List dataBeans = new ArrayList<>();
+ private MaintainRecordPresenterImpl recordPresenter;
+ private MaintainRecordAdapter adapter;
+ private int startGroup = -1;
+ private int endGroup = -1;
+ private int startChild = -1;
+ private int endChild = -1;
+
+ @Override
+ protected String setTitleName() {
+ return "桥梁养护记录";
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_maintain_record;
+ }
+
+ @Override
+ public void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ recordPresenter = new MaintainRecordPresenterImpl(this);
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+
+ @Override
+ public void initEvent() {
+ calendarView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ new DatePopupWindow
+ .Builder(MaintainRecordActivity.this, CalendarUtil.obtainLastTwoMonth(), v)//初始化
+ .setInitSelect(startGroup, startChild, endGroup, endChild)//设置上一次选中的区间状态
+ .setInitDay(true)//默认为true,UI内容为共几天、开始、结束;当为false时,UI内容为共几晚、入住、离开
+ .setDateOnClickListener(new DatePopupWindow.DateOnClickListener() {//设置监听
+ //点击完成按钮后回调返回方法
+ @Override
+ public void getDate(String startDate, String endDate, int startGroupPosition, int
+ startChildPosition, int endGroupPosition, int endChildPosition) {
+ startGroup = startGroupPosition;//开始月份位置
+ startChild = startChildPosition;//开始对应月份中日的位置
+ endGroup = endGroupPosition;//结束月份位置
+ endChild = endChildPosition;//结束对应月份中日的位置
+ dateView.setText(startDate + "~" + endDate);
+ recordPresenter.onReadyRetrofitRequest(startDate, endDate, pageIndex);
+ }
+ }).builder();
+ }
+ });
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ }
+
+ @Override
+ public void obtainRecordResult(MaintainRecordBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210622);
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "查询记录中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(MaintainRecordActivity activity) {
+ reference = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ super.handleMessage(msg);
+ MaintainRecordActivity resultActivity = reference.get();
+ if (msg.what == 20210622) {
+ if (resultActivity.isRefresh || resultActivity.isLoadMore) {
+ resultActivity.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (resultActivity.dataBeans.size() == 0) {
+ resultActivity.emptyView.show("抱歉,没有查到相关养护记录", null);
+ } else {
+ resultActivity.emptyView.hide();
+ resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
+ resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
+ resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
+ resultActivity.recordRecyclerView.setAdapter(resultActivity.adapter);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (recordPresenter != null) {
+ recordPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
new file mode 100644
index 0000000..fa77936
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.ui;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+
+public class PipelineManagerActivity extends BaseActivity {
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_pipe;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index ac995d3..4959539 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -300,7 +300,8 @@
@Override
public void onAMapLocationGet(AMapLocation aMapLocation) {
if (aMapLocation != null) {
- Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference());
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReference.create(4326));
mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示
//添加图片Marker
addPictureMarker(point);
@@ -311,11 +312,9 @@
ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING);
return;
}
- double longitude = aMapLocation.getLongitude();
- double latitude = aMapLocation.getLatitude();
String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis());
cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(),
- String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath,
+ String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), cleanTime, imagePath,
StringHelper.filterString(workContentView.getText().toString()));
}
}
@@ -416,15 +415,18 @@
@Override
public void obtainCleanResult(ActionResultBean resultBean) {
-// Log.d(TAG, "obtainCleanResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
- new SignInDialog.Builder().setContext(this).setAddress(locationStreetView.getText().toString()).setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- startActivity(new Intent(context, CleanResultListActivity.class));
- PublicToiletActivity.this.finish();
- }
- }).build().show();
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("保洁保卡成功")
+ .setAddress(locationStreetView.getText().toString())
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, CleanResultListActivity.class));
+ PublicToiletActivity.this.finish();
+ }
+ }).build().show();
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 03438b0..42d29a4 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -18,6 +18,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IHomePageView;
import com.casic.dcms.mvp.view.IUserDataView;
+import com.casic.dcms.ui.BridgeMaintainActivity;
import com.casic.dcms.ui.CaseCheckActivity;
import com.casic.dcms.ui.CaseHandleActivity;
import com.casic.dcms.ui.CaseOnMapActivity;
@@ -32,6 +33,7 @@
import com.casic.dcms.ui.OvertimeCaseActivity;
import com.casic.dcms.ui.PackageHandleActivity;
import com.casic.dcms.ui.PersonOnlineActivity;
+import com.casic.dcms.ui.PipelineManagerActivity;
import com.casic.dcms.ui.PublicToiletActivity;
import com.casic.dcms.ui.UrgentCaseActivity;
import com.casic.dcms.utils.StringHelper;
@@ -161,6 +163,12 @@
case "部门处置":
intent.setClass(context, DeptHandleActivity.class);
break;
+ case "路桥养护":
+ intent.setClass(context, BridgeMaintainActivity.class);
+ break;
+ case "管网管理":
+ intent.setClass(context, PipelineManagerActivity.class);
+ break;
default:
break;
}
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable observable = RetrofitServiceManager.getProcessPerson();
+ Observable observable = RetrofitServiceManager.getProcessPersonResult();
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
new file mode 100644
index 0000000..2924fbe
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/SubmitMaintainModelImpl.java
@@ -0,0 +1,52 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class SubmitMaintainModelImpl implements ISubmitMaintainModel {
+
+ private OnSubmitListener listener;
+
+ public SubmitMaintainModelImpl(OnSubmitListener submitListener) {
+ this.listener = submitListener;
+ }
+
+ public interface OnSubmitListener {
+ void onSuccess(ActionResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ Observable observable = RetrofitServiceManager.getAddMaintainRecordResult(bridgeId,
+ content, maintainTime, personId, longitude, latitude, description);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ActionResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
new file mode 100644
index 0000000..938a484
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IMaintainRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IMaintainRecordPresenter {
+ void onReadyRetrofitRequest(String startDate, String endDate, int offset);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
new file mode 100644
index 0000000..511e717
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ISubmitMaintainPresenter.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ISubmitMaintainPresenter {
+ void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
new file mode 100644
index 0000000..fd99e30
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/MaintainRecordPresenterImpl.java
@@ -0,0 +1,39 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.MaintainRecordModelImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+
+public class MaintainRecordPresenterImpl extends BasePresenter implements IMaintainRecordPresenter, MaintainRecordModelImpl.OnGetRecordListener {
+
+ private IMaintainRecordView view;
+ private MaintainRecordModelImpl model;
+
+ public MaintainRecordPresenterImpl(IMaintainRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new MaintainRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String startDate, String endDate, int offset) {
+ view.showProgress();
+ addSubscription(model.sendRetrofitRequest(startDate, endDate, offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(MaintainRecordBean result) {
+ view.hideProgress();
+ view.obtainRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
new file mode 100644
index 0000000..7722427
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/SubmitMaintainPresenterImpl.java
@@ -0,0 +1,42 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.SubmitMaintainModelImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+
+public class SubmitMaintainPresenterImpl extends BasePresenter implements ISubmitMaintainPresenter, SubmitMaintainModelImpl.OnSubmitListener {
+
+ private ISubmitMaintainView view;
+ private SubmitMaintainModelImpl actionModel;
+
+ public SubmitMaintainPresenterImpl(ISubmitMaintainView submitCaseView) {
+ this.view = submitCaseView;
+ actionModel = new SubmitMaintainModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description) {
+ view.showProgress();
+ addSubscription(actionModel.sendRetrofitRequest(bridgeId, content, maintainTime, personId, longitude,
+ latitude, description));
+ }
+
+ @Override
+ public void onSuccess(ActionResultBean resultBean) {
+ view.hideProgress();
+ view.obtainSubmitResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+ view.hideProgress();
+ view.obtainDataFail();
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
new file mode 100644
index 0000000..8ff5189
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IMaintainRecordView.java
@@ -0,0 +1,11 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+
+public interface IMaintainRecordView {
+ void obtainRecordResult(MaintainRecordBean resultBean);
+
+ void showProgress();
+
+ void hideProgress();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
new file mode 100644
index 0000000..75a0629
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ISubmitMaintainView.java
@@ -0,0 +1,13 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ActionResultBean;
+
+public interface ISubmitMaintainView {
+ void showProgress();
+
+ void hideProgress();
+
+ void obtainSubmitResult(ActionResultBean resultBean);
+
+ void obtainDataFail();
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
new file mode 100644
index 0000000..84b0eef
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java
@@ -0,0 +1,239 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.location.Location;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl;
+import com.casic.dcms.mvp.view.ISubmitMaintainView;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.widgets.SignInDialog;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class BridgeMaintainActivity extends BaseActivity implements View.OnClickListener, ISubmitMaintainView {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.bridgeNameView)
+ TextView bridgeNameView;
+ @BindView(R.id.maintainView)
+ TextView maintainView;
+ @BindView(R.id.maintainDateView)
+ TextView maintainDateView;
+ @BindView(R.id.liablePersonView)
+ TextView liablePersonView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+ //以下非必填
+ @BindView(R.id.remarksView)
+ EditText remarksView;
+
+ private String bridgeId = "";
+ private SubmitMaintainPresenterImpl submitMaintainPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_bridge;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ topLayout.setTitle("路桥养护").setTextColor(ContextCompat.getColor(this, R.color.white));
+ topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ topLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ topLayout.addRightImageButton(R.drawable.ic_more, 2).setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ submitMaintainPresenter = new SubmitMaintainPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ liablePersonView.setText(StringHelper.getUserAccount());
+ liablePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ String systemDate = TimeOrDateUtil.timestampToDate(System.currentTimeMillis());
+ maintainDateView.post(new Runnable() {
+ @Override
+ public void run() {
+ maintainDateView.setText(systemDate);
+ maintainDateView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ });
+ }
+ }, 0, 1000);
+ }
+
+ @OnClick({R.id.bridgeLayout, R.id.maintainContentLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.bridgeLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("选择桥梁")
+ .addItem("永胜桥")
+ .addItem("黄洲桥")
+ .addItem("光明桥")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ bridgeId = String.valueOf((1 + position));
+ bridgeNameView.setText(tag);
+ bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.maintainContentLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+
+ maintainView.setText(tag);
+ maintainView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ //获取定位信息
+ LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+
+ }
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (aMapLocation != null) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ ToastHelper.showToast("请先选择养护的桥梁", ToastHelper.WARING);
+ return;
+ }
+ String maintainContent = maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ ToastHelper.showToast("请选择养护的内容", ToastHelper.WARING);
+ return;
+ }
+
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ LatLonPoint latLonPoint = new LatLonPoint(gcjToWgs[1], gcjToWgs[0]);
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ SaveKeyValues.putValue("maintainAddress", address);
+ }
+ });
+ //提交养护记录
+ submitMaintainPresenter.onReadyRetrofitRequest(bridgeId, maintainContent,
+ maintainDateView.getText().toString(),
+ StringHelper.getUserId(), String.valueOf(gcjToWgs[0]),
+ String.valueOf(gcjToWgs[1]),
+ StringHelper.filterString(remarksView.getText().toString()));
+ } else {
+ ToastHelper.showToast("当前信号较弱,无法提交养护记录", ToastHelper.WARING);
+ }
+ }
+ }, true);
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value: " + v.getId());
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "养护记录签到中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainSubmitResult(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.isSuccess()) {
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, MaintainRecordActivity.class));
+ finish();
+ }
+ }).build().show();
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (submitMaintainPresenter != null) {
+ submitMaintainPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 7221e95..381b704 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -25,6 +25,7 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
@@ -38,8 +39,8 @@
public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
- // @BindView(R.id.emptyView)
-// QMUIEmptyView emptyView;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
@BindView(R.id.dateView)
TextView dateView;
@BindView(R.id.calendarView)
@@ -126,7 +127,6 @@
@Override
public void obtainCleanRecordResult(CleanRecordBean resultBean) {
-// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
@@ -175,9 +175,9 @@
} else {
//首次加载数据
if (resultActivity.dataBeans.size() == 0) {
-// resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
-// resultActivity.emptyView.hide();
+ resultActivity.emptyView.hide();
resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
new file mode 100644
index 0000000..05c41c9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -0,0 +1,194 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.MaintainRecordAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.mvp.presenter.MaintainRecordPresenterImpl;
+import com.casic.dcms.mvp.view.IMaintainRecordView;
+import com.casic.dcms.utils.CalendarUtil;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.datepicker.DatePopupWindow;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class MaintainRecordActivity extends BaseCaseActivity implements IMaintainRecordView {
+
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.dateView)
+ TextView dateView;
+ @BindView(R.id.calendarView)
+ ImageView calendarView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.recordRecyclerView)
+ RecyclerView recordRecyclerView;
+
+ private Context context = this;
+ private int pageIndex = 1;
+ private boolean isRefresh, isLoadMore = false;
+ private WeakReferenceHandler weakReferenceHandler;
+ private List dataBeans = new ArrayList<>();
+ private MaintainRecordPresenterImpl recordPresenter;
+ private MaintainRecordAdapter adapter;
+ private int startGroup = -1;
+ private int endGroup = -1;
+ private int startChild = -1;
+ private int endChild = -1;
+
+ @Override
+ protected String setTitleName() {
+ return "桥梁养护记录";
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_maintain_record;
+ }
+
+ @Override
+ public void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ recordPresenter = new MaintainRecordPresenterImpl(this);
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+
+ @Override
+ public void initEvent() {
+ calendarView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ new DatePopupWindow
+ .Builder(MaintainRecordActivity.this, CalendarUtil.obtainLastTwoMonth(), v)//初始化
+ .setInitSelect(startGroup, startChild, endGroup, endChild)//设置上一次选中的区间状态
+ .setInitDay(true)//默认为true,UI内容为共几天、开始、结束;当为false时,UI内容为共几晚、入住、离开
+ .setDateOnClickListener(new DatePopupWindow.DateOnClickListener() {//设置监听
+ //点击完成按钮后回调返回方法
+ @Override
+ public void getDate(String startDate, String endDate, int startGroupPosition, int
+ startChildPosition, int endGroupPosition, int endChildPosition) {
+ startGroup = startGroupPosition;//开始月份位置
+ startChild = startChildPosition;//开始对应月份中日的位置
+ endGroup = endGroupPosition;//结束月份位置
+ endChild = endChildPosition;//结束对应月份中日的位置
+ dateView.setText(startDate + "~" + endDate);
+ recordPresenter.onReadyRetrofitRequest(startDate, endDate, pageIndex);
+ }
+ }).builder();
+ }
+ });
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
+ }
+ });
+ }
+
+ @Override
+ public void obtainRecordResult(MaintainRecordBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210622);
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "查询记录中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(MaintainRecordActivity activity) {
+ reference = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ super.handleMessage(msg);
+ MaintainRecordActivity resultActivity = reference.get();
+ if (msg.what == 20210622) {
+ if (resultActivity.isRefresh || resultActivity.isLoadMore) {
+ resultActivity.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (resultActivity.dataBeans.size() == 0) {
+ resultActivity.emptyView.show("抱歉,没有查到相关养护记录", null);
+ } else {
+ resultActivity.emptyView.hide();
+ resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
+ resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
+ resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
+ resultActivity.recordRecyclerView.setAdapter(resultActivity.adapter);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (recordPresenter != null) {
+ recordPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
new file mode 100644
index 0000000..fa77936
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.ui;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+
+public class PipelineManagerActivity extends BaseActivity {
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_pipe;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index ac995d3..4959539 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -300,7 +300,8 @@
@Override
public void onAMapLocationGet(AMapLocation aMapLocation) {
if (aMapLocation != null) {
- Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference());
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReference.create(4326));
mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示
//添加图片Marker
addPictureMarker(point);
@@ -311,11 +312,9 @@
ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING);
return;
}
- double longitude = aMapLocation.getLongitude();
- double latitude = aMapLocation.getLatitude();
String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis());
cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(),
- String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath,
+ String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), cleanTime, imagePath,
StringHelper.filterString(workContentView.getText().toString()));
}
}
@@ -416,15 +415,18 @@
@Override
public void obtainCleanResult(ActionResultBean resultBean) {
-// Log.d(TAG, "obtainCleanResult: " + new Gson().toJson(resultBean));
if (resultBean.isSuccess()) {
- new SignInDialog.Builder().setContext(this).setAddress(locationStreetView.getText().toString()).setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- startActivity(new Intent(context, CleanResultListActivity.class));
- PublicToiletActivity.this.finish();
- }
- }).build().show();
+ new SignInDialog.Builder()
+ .setContext(this)
+ .setTitle("保洁保卡成功")
+ .setAddress(locationStreetView.getText().toString())
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, CleanResultListActivity.class));
+ PublicToiletActivity.this.finish();
+ }
+ }).build().show();
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 03438b0..42d29a4 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -18,6 +18,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IHomePageView;
import com.casic.dcms.mvp.view.IUserDataView;
+import com.casic.dcms.ui.BridgeMaintainActivity;
import com.casic.dcms.ui.CaseCheckActivity;
import com.casic.dcms.ui.CaseHandleActivity;
import com.casic.dcms.ui.CaseOnMapActivity;
@@ -32,6 +33,7 @@
import com.casic.dcms.ui.OvertimeCaseActivity;
import com.casic.dcms.ui.PackageHandleActivity;
import com.casic.dcms.ui.PersonOnlineActivity;
+import com.casic.dcms.ui.PipelineManagerActivity;
import com.casic.dcms.ui.PublicToiletActivity;
import com.casic.dcms.ui.UrgentCaseActivity;
import com.casic.dcms.utils.StringHelper;
@@ -161,6 +163,12 @@
case "部门处置":
intent.setClass(context, DeptHandleActivity.class);
break;
+ case "路桥养护":
+ intent.setClass(context, BridgeMaintainActivity.class);
+ break;
+ case "管网管理":
+ intent.setClass(context, PipelineManagerActivity.class);
+ break;
default:
break;
}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index d9c1d60..9bbbdb0 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -35,7 +35,8 @@
public static final String IP_KEY = "BASE_IP";
- public static final long FIVE_YEARS = 5L * 365 * 1000 * 60 * 60 * 24L;
+ public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L;
+ public static final long ONE_YEAR = 365 * 60 * 60 * 24 * 1000L;
public static final long IMAGE_MINUS_SIZE = 100 * 1024;
public static final long HTTP_TIMEOUT = 30L;
public static final int PERMISSIONS_CODE = 999;
diff --git a/app/build.gradle b/app/build.gradle
index 6f0b518..bcfdc0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 19
- versionName "v1.0.0.11"
+ versionCode 20
+ versionName "v1.0.0.12"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 68f46c9..3090a91 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,7 +89,10 @@
-
+
+
+
+
{
+
+ private Context context;
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+ private QMUITipDialog.Builder dialogBuilder;
+
+ public MaintainRecordAdapter(Context context, List dataRows) {
+ this.context = context;
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_maintain_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView bridgeNameView;
+ private ImageView descriptionImageView;
+ private TextView maintainContentView;
+ private TextView maintainTimeView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ bridgeNameView = itemView.findViewById(R.id.bridgeNameView);
+ descriptionImageView = itemView.findViewById(R.id.descriptionImageView);
+ maintainContentView = itemView.findViewById(R.id.maintainContentView);
+ maintainTimeView = itemView.findViewById(R.id.maintainTimeView);
+ }
+
+ void bindView(MaintainRecordBean.DataBean.RowsBean rowsBean) {
+ bridgeNameView.setText(rowsBean.getBridgeName());
+ String description = rowsBean.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ descriptionImageView.setVisibility(View.GONE);
+ } else {
+ descriptionImageView.setVisibility(View.VISIBLE);
+ descriptionImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ QMUITipDialog tipDialog = new QMUITipDialog.Builder(context)
+ .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING)
+ .setTipWord(description)
+ .create();
+ tipDialog.show();
+ descriptionImageView.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ tipDialog.dismiss();
+ }
+ }, 2000);
+ }
+ });
+ }
+ maintainContentView.setText(rowsBean.getContent());
+ maintainTimeView.setText(rowsBean.getMaintainTimeStr());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
new file mode 100644
index 0000000..ded4fe1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainContentBean.java
@@ -0,0 +1,41 @@
+package com.casic.dcms.bean;
+
+public class MaintainContentBean {
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
new file mode 100644
index 0000000..2beea74
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/MaintainRecordBean.java
@@ -0,0 +1,301 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class MaintainRecordBean {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+
+ private int total;
+ private List rows;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * bridgeId : 1
+ * bridgeName : 永胜桥
+ * category : 桥梁
+ * code : 1624359572304
+ * content : 日常养护,无异常
+ * deptid : 1344110695992258561
+ * description :
+ * id : 1407292162033041409
+ * latitude : 39.914705918747295
+ * longitude : 116.26295490330527
+ * maintainTime : 2021-06-22 00:00:00
+ * maintainTimeStr : 2021-06-22
+ * name :
+ * personId : 1344179277212151809
+ * personName :
+ * phone :
+ * status :
+ * statusName :
+ * tender :
+ * tenderCompany :
+ * ts : 2021-06-22
+ * type :
+ * typeName :
+ */
+
+ private String bridgeId;
+ private String bridgeName;
+ private String category;
+ private String code;
+ private String content;
+ private String deptid;
+ private String description;
+ private String id;
+ private String latitude;
+ private String longitude;
+ private String maintainTime;
+ private String maintainTimeStr;
+ private String name;
+ private String personId;
+ private String personName;
+ private String phone;
+ private String status;
+ private String statusName;
+ private String tender;
+ private String tenderCompany;
+ private String ts;
+ private String type;
+ private String typeName;
+
+ public String getBridgeId() {
+ return bridgeId;
+ }
+
+ public void setBridgeId(String bridgeId) {
+ this.bridgeId = bridgeId;
+ }
+
+ public String getBridgeName() {
+ return bridgeName;
+ }
+
+ public void setBridgeName(String bridgeName) {
+ this.bridgeName = bridgeName;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getDeptid() {
+ return deptid;
+ }
+
+ public void setDeptid(String deptid) {
+ this.deptid = deptid;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getMaintainTime() {
+ return maintainTime;
+ }
+
+ public void setMaintainTime(String maintainTime) {
+ this.maintainTime = maintainTime;
+ }
+
+ public String getMaintainTimeStr() {
+ return maintainTimeStr;
+ }
+
+ public void setMaintainTimeStr(String maintainTimeStr) {
+ this.maintainTimeStr = maintainTimeStr;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(String personId) {
+ this.personId = personId;
+ }
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getTender() {
+ return tender;
+ }
+
+ public void setTender(String tender) {
+ this.tender = tender;
+ }
+
+ public String getTenderCompany() {
+ return tenderCompany;
+ }
+
+ public void setTenderCompany(String tenderCompany) {
+ this.tenderCompany = tenderCompany;
+ }
+
+ public String getTs() {
+ return ts;
+ }
+
+ public void setTs(String ts) {
+ this.ts = ts;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
new file mode 100644
index 0000000..4f7a588
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IMaintainRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IMaintainRecordModel {
+ Subscription sendRetrofitRequest(String startDate, String endDate, int offset);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
new file mode 100644
index 0000000..dce3f91
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ISubmitMaintainModel.java
@@ -0,0 +1,8 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ISubmitMaintainModel {
+ Subscription sendRetrofitRequest(String bridgeId, String content, String maintainTime, String personId,
+ String longitude, String latitude, String description);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
new file mode 100644
index 0000000..35fd486
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/MaintainRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.MaintainRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class MaintainRecordModelImpl implements IMaintainRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public MaintainRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(MaintainRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String startDate, String endDate, int offset) {
+ Observable observable = RetrofitServiceManager.getMaintainRecordResult(startDate, endDate, offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(MaintainRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
index 06f6fb4..9e2666d 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java
@@ -29,7 +29,7 @@
@Override
public Subscription sendRetrofitRequest() {
- Observable