diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index aabd4fe..b2fd2cb 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -1253,4 +1253,26 @@
)
return api.getOutfieldDetectionDetail(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 获取实时工作统计
+ */
+ suspend fun getRealTimeWork(): String {
+ return api.getRealTimeWork(AuthenticationHelper.token!!)
+ }
+
+ /**
+ * 获取现场检测详情
+ */
+ suspend fun getDeptComprehensive(deptId: String, startTime: String, endTime: String): String {
+ val param = JsonObject()
+ param.addProperty("deptId", deptId)
+ param.addProperty("startTime", startTime)
+ param.addProperty("endTime", endTime)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getDeptComprehensive(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index aabd4fe..b2fd2cb 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -1253,4 +1253,26 @@
)
return api.getOutfieldDetectionDetail(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 获取实时工作统计
+ */
+ suspend fun getRealTimeWork(): String {
+ return api.getRealTimeWork(AuthenticationHelper.token!!)
+ }
+
+ /**
+ * 获取现场检测详情
+ */
+ suspend fun getDeptComprehensive(deptId: String, startTime: String, endTime: String): String {
+ val param = JsonObject()
+ param.addProperty("deptId", deptId)
+ param.addProperty("startTime", startTime)
+ param.addProperty("endTime", endTime)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getDeptComprehensive(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
index b4f8a8b..56b1769 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
@@ -66,7 +66,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(this)
+ "头像更新成功".show(this)
}
}
userViewModel.outResult.observe(this) {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index aabd4fe..b2fd2cb 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -1253,4 +1253,26 @@
)
return api.getOutfieldDetectionDetail(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 获取实时工作统计
+ */
+ suspend fun getRealTimeWork(): String {
+ return api.getRealTimeWork(AuthenticationHelper.token!!)
+ }
+
+ /**
+ * 获取现场检测详情
+ */
+ suspend fun getDeptComprehensive(deptId: String, startTime: String, endTime: String): String {
+ val param = JsonObject()
+ param.addProperty("deptId", deptId)
+ param.addProperty("startTime", startTime)
+ param.addProperty("endTime", endTime)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getDeptComprehensive(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
index b4f8a8b..56b1769 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
@@ -66,7 +66,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(this)
+ "头像更新成功".show(this)
}
}
userViewModel.outResult.observe(this) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
index 2d0126a..f8733bd 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
@@ -6,7 +6,9 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.base.ApplicationBaseActivity
import com.casic.xz.meterage.callback.DateSelectedCallback
-import com.casic.xz.meterage.extensions.*
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EntrustViewModel
@@ -140,12 +142,14 @@
navigatePageTo()
}
+ //实时工作
workTimeLayout.setOnClickListener {
-
+ navigatePageTo()
}
+ //部门综合分析
deptDataLayout.setOnClickListener {
-
+ navigatePageTo()
}
startDateView.setOnClickListener {
@@ -214,31 +218,9 @@
}
viewHolder.setBackgroundColor(R.id.entrustStateView, color)
- if (item.requireOverTime.isEarlierThenCurrent()) {
- viewHolder.setTextColor(
- R.id.requireOverTimeView, R.color.red.convertColor(context)
- )
- } else {
- viewHolder.setTextColor(
- R.id.requireOverTimeView,
- R.color.gray.convertColor(context)
- )
- }
-
viewHolder.setText(R.id.customerNameView, item.customerName)
.setText(R.id.entrustStateView, item.statusName)
.setText(R.id.entrustCodeView, "委托书编号:${item.orderCode}")
- .setText(
- R.id.createTimeView,
- "委托创建时间:${item.createTime.formatToYearMonthDay()}"
- ).setText(
- R.id.planDeliverTimeView,
- "预计送达时间:${item.planDeliverTime.formatToYearMonthDay()}"
- )
- .setText(
- R.id.requireOverTimeView,
- "要求检完时间:${item.requireOverTime.formatToYearMonthDay()}"
- )
}
}
entrustRecyclerView.adapter = entrustAdapter
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index aabd4fe..b2fd2cb 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -1253,4 +1253,26 @@
)
return api.getOutfieldDetectionDetail(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 获取实时工作统计
+ */
+ suspend fun getRealTimeWork(): String {
+ return api.getRealTimeWork(AuthenticationHelper.token!!)
+ }
+
+ /**
+ * 获取现场检测详情
+ */
+ suspend fun getDeptComprehensive(deptId: String, startTime: String, endTime: String): String {
+ val param = JsonObject()
+ param.addProperty("deptId", deptId)
+ param.addProperty("startTime", startTime)
+ param.addProperty("endTime", endTime)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getDeptComprehensive(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
index b4f8a8b..56b1769 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
@@ -66,7 +66,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(this)
+ "头像更新成功".show(this)
}
}
userViewModel.outResult.observe(this) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
index 2d0126a..f8733bd 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
@@ -6,7 +6,9 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.base.ApplicationBaseActivity
import com.casic.xz.meterage.callback.DateSelectedCallback
-import com.casic.xz.meterage.extensions.*
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EntrustViewModel
@@ -140,12 +142,14 @@
navigatePageTo()
}
+ //实时工作
workTimeLayout.setOnClickListener {
-
+ navigatePageTo()
}
+ //部门综合分析
deptDataLayout.setOnClickListener {
-
+ navigatePageTo()
}
startDateView.setOnClickListener {
@@ -214,31 +218,9 @@
}
viewHolder.setBackgroundColor(R.id.entrustStateView, color)
- if (item.requireOverTime.isEarlierThenCurrent()) {
- viewHolder.setTextColor(
- R.id.requireOverTimeView, R.color.red.convertColor(context)
- )
- } else {
- viewHolder.setTextColor(
- R.id.requireOverTimeView,
- R.color.gray.convertColor(context)
- )
- }
-
viewHolder.setText(R.id.customerNameView, item.customerName)
.setText(R.id.entrustStateView, item.statusName)
.setText(R.id.entrustCodeView, "委托书编号:${item.orderCode}")
- .setText(
- R.id.createTimeView,
- "委托创建时间:${item.createTime.formatToYearMonthDay()}"
- ).setText(
- R.id.planDeliverTimeView,
- "预计送达时间:${item.planDeliverTime.formatToYearMonthDay()}"
- )
- .setText(
- R.id.requireOverTimeView,
- "要求检完时间:${item.requireOverTime.formatToYearMonthDay()}"
- )
}
}
entrustRecyclerView.adapter = entrustAdapter
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
new file mode 100644
index 0000000..2c0d106
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.StatisticsViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_realtime_work.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class RealTimeWorkActivity : ApplicationBaseActivity() {
+
+ private lateinit var statisticsViewModel: StatisticsViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_realtime_work
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "实时工作"
+ }
+
+ override fun initData() {
+ statisticsViewModel = ViewModelProvider(this)[StatisticsViewModel::class.java]
+ statisticsViewModel.realTimeWorkResult.observe(this) {
+ if (it.code == 200) {
+ val workAdapter = object : NormalRecyclerAdapter(
+ R.layout.item_realtime_work_rv_l, it.data
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int, item: RealTimeWorkModel.DataModel
+ ) {
+ viewHolder.setText(R.id.libNameView, item.organizeName)
+ .setText(R.id.samplesCompletedTodayView, item.samplesCompletedToday)
+ .setText(R.id.certificatesTodayView, item.certificatesToday)
+ .setText(R.id.expireSamplesTodayView, item.expireSamplesToday)
+ .setText(R.id.samplesYearView, item.samplesYear)
+ .setText(R.id.expireSamplesYearView, item.expireSamplesYear)
+ .setText(R.id.expireRateView, item.expireRate)
+ .setText(
+ R.id.inMeasureExpireSamplesYearView, item.inMeasureExpireSamplesYear
+ )
+ }
+ }
+ workRecyclerView.adapter = workAdapter
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ statisticsViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ statisticsViewModel.getRealTimeWork()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index aabd4fe..b2fd2cb 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -1253,4 +1253,26 @@
)
return api.getOutfieldDetectionDetail(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 获取实时工作统计
+ */
+ suspend fun getRealTimeWork(): String {
+ return api.getRealTimeWork(AuthenticationHelper.token!!)
+ }
+
+ /**
+ * 获取现场检测详情
+ */
+ suspend fun getDeptComprehensive(deptId: String, startTime: String, endTime: String): String {
+ val param = JsonObject()
+ param.addProperty("deptId", deptId)
+ param.addProperty("startTime", startTime)
+ param.addProperty("endTime", endTime)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getDeptComprehensive(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
index b4f8a8b..56b1769 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
@@ -66,7 +66,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(this)
+ "头像更新成功".show(this)
}
}
userViewModel.outResult.observe(this) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
index 2d0126a..f8733bd 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
@@ -6,7 +6,9 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.base.ApplicationBaseActivity
import com.casic.xz.meterage.callback.DateSelectedCallback
-import com.casic.xz.meterage.extensions.*
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EntrustViewModel
@@ -140,12 +142,14 @@
navigatePageTo()
}
+ //实时工作
workTimeLayout.setOnClickListener {
-
+ navigatePageTo()
}
+ //部门综合分析
deptDataLayout.setOnClickListener {
-
+ navigatePageTo()
}
startDateView.setOnClickListener {
@@ -214,31 +218,9 @@
}
viewHolder.setBackgroundColor(R.id.entrustStateView, color)
- if (item.requireOverTime.isEarlierThenCurrent()) {
- viewHolder.setTextColor(
- R.id.requireOverTimeView, R.color.red.convertColor(context)
- )
- } else {
- viewHolder.setTextColor(
- R.id.requireOverTimeView,
- R.color.gray.convertColor(context)
- )
- }
-
viewHolder.setText(R.id.customerNameView, item.customerName)
.setText(R.id.entrustStateView, item.statusName)
.setText(R.id.entrustCodeView, "委托书编号:${item.orderCode}")
- .setText(
- R.id.createTimeView,
- "委托创建时间:${item.createTime.formatToYearMonthDay()}"
- ).setText(
- R.id.planDeliverTimeView,
- "预计送达时间:${item.planDeliverTime.formatToYearMonthDay()}"
- )
- .setText(
- R.id.requireOverTimeView,
- "要求检完时间:${item.requireOverTime.formatToYearMonthDay()}"
- )
}
}
entrustRecyclerView.adapter = entrustAdapter
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
new file mode 100644
index 0000000..2c0d106
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.StatisticsViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_realtime_work.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class RealTimeWorkActivity : ApplicationBaseActivity() {
+
+ private lateinit var statisticsViewModel: StatisticsViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_realtime_work
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "实时工作"
+ }
+
+ override fun initData() {
+ statisticsViewModel = ViewModelProvider(this)[StatisticsViewModel::class.java]
+ statisticsViewModel.realTimeWorkResult.observe(this) {
+ if (it.code == 200) {
+ val workAdapter = object : NormalRecyclerAdapter(
+ R.layout.item_realtime_work_rv_l, it.data
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int, item: RealTimeWorkModel.DataModel
+ ) {
+ viewHolder.setText(R.id.libNameView, item.organizeName)
+ .setText(R.id.samplesCompletedTodayView, item.samplesCompletedToday)
+ .setText(R.id.certificatesTodayView, item.certificatesToday)
+ .setText(R.id.expireSamplesTodayView, item.expireSamplesToday)
+ .setText(R.id.samplesYearView, item.samplesYear)
+ .setText(R.id.expireSamplesYearView, item.expireSamplesYear)
+ .setText(R.id.expireRateView, item.expireRate)
+ .setText(
+ R.id.inMeasureExpireSamplesYearView, item.inMeasureExpireSamplesYear
+ )
+ }
+ }
+ workRecyclerView.adapter = workAdapter
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ statisticsViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ statisticsViewModel.getRealTimeWork()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
index 665b3be..36c9f2d 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
@@ -1,7 +1,18 @@
package com.casic.xz.meterage.vm
+import androidx.lifecycle.MutableLiveData
+import com.casic.xz.meterage.base.BaseApplication
+import com.casic.xz.meterage.extensions.separateResponseCode
+import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.DeptComprehensiveModel
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 业务统计 VM
@@ -9,24 +20,44 @@
class StatisticsViewModel : BaseViewModel() {
private val gson by lazy { Gson() }
-// val capabilityDetail = MutableLiveData()
-//
-// fun getCapabilityDetail(id: String) = launch({
-// loadState.value = LoadState.Loading
-// val response = RetrofitServiceManager.getCapabilityDetail(id)
-// val responseCode = response.separateResponseCode()
-// if (responseCode == 200) {
-// loadState.value = LoadState.Success
-// capabilityDetail.value = gson.fromJson(
-// response, object : TypeToken() {}.type
-// )
-// } else {
-// loadState.value = LoadState.Fail
-// response.toErrorMessage().show(BaseApplication.get())
-// }
-// }, {
-// loadState.value = LoadState.Fail
-// it.cause.toString().show(BaseApplication.get())
-// it.printStackTrace()
-// })
+ val realTimeWorkResult = MutableLiveData()
+ val deptComprehensiveResult = MutableLiveData()
+
+ fun getRealTimeWork() = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getRealTimeWork()
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ realTimeWorkResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+
+ fun getDeptComprehensive(deptId: String, startTime: String, endTime: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getDeptComprehensive(deptId, startTime, endTime)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deptComprehensiveResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index aabd4fe..b2fd2cb 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -1253,4 +1253,26 @@
)
return api.getOutfieldDetectionDetail(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 获取实时工作统计
+ */
+ suspend fun getRealTimeWork(): String {
+ return api.getRealTimeWork(AuthenticationHelper.token!!)
+ }
+
+ /**
+ * 获取现场检测详情
+ */
+ suspend fun getDeptComprehensive(deptId: String, startTime: String, endTime: String): String {
+ val param = JsonObject()
+ param.addProperty("deptId", deptId)
+ param.addProperty("startTime", startTime)
+ param.addProperty("endTime", endTime)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getDeptComprehensive(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
index b4f8a8b..56b1769 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
@@ -66,7 +66,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(this)
+ "头像更新成功".show(this)
}
}
userViewModel.outResult.observe(this) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
index 2d0126a..f8733bd 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
@@ -6,7 +6,9 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.base.ApplicationBaseActivity
import com.casic.xz.meterage.callback.DateSelectedCallback
-import com.casic.xz.meterage.extensions.*
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EntrustViewModel
@@ -140,12 +142,14 @@
navigatePageTo()
}
+ //实时工作
workTimeLayout.setOnClickListener {
-
+ navigatePageTo()
}
+ //部门综合分析
deptDataLayout.setOnClickListener {
-
+ navigatePageTo()
}
startDateView.setOnClickListener {
@@ -214,31 +218,9 @@
}
viewHolder.setBackgroundColor(R.id.entrustStateView, color)
- if (item.requireOverTime.isEarlierThenCurrent()) {
- viewHolder.setTextColor(
- R.id.requireOverTimeView, R.color.red.convertColor(context)
- )
- } else {
- viewHolder.setTextColor(
- R.id.requireOverTimeView,
- R.color.gray.convertColor(context)
- )
- }
-
viewHolder.setText(R.id.customerNameView, item.customerName)
.setText(R.id.entrustStateView, item.statusName)
.setText(R.id.entrustCodeView, "委托书编号:${item.orderCode}")
- .setText(
- R.id.createTimeView,
- "委托创建时间:${item.createTime.formatToYearMonthDay()}"
- ).setText(
- R.id.planDeliverTimeView,
- "预计送达时间:${item.planDeliverTime.formatToYearMonthDay()}"
- )
- .setText(
- R.id.requireOverTimeView,
- "要求检完时间:${item.requireOverTime.formatToYearMonthDay()}"
- )
}
}
entrustRecyclerView.adapter = entrustAdapter
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
new file mode 100644
index 0000000..2c0d106
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.StatisticsViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_realtime_work.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class RealTimeWorkActivity : ApplicationBaseActivity() {
+
+ private lateinit var statisticsViewModel: StatisticsViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_realtime_work
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "实时工作"
+ }
+
+ override fun initData() {
+ statisticsViewModel = ViewModelProvider(this)[StatisticsViewModel::class.java]
+ statisticsViewModel.realTimeWorkResult.observe(this) {
+ if (it.code == 200) {
+ val workAdapter = object : NormalRecyclerAdapter(
+ R.layout.item_realtime_work_rv_l, it.data
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int, item: RealTimeWorkModel.DataModel
+ ) {
+ viewHolder.setText(R.id.libNameView, item.organizeName)
+ .setText(R.id.samplesCompletedTodayView, item.samplesCompletedToday)
+ .setText(R.id.certificatesTodayView, item.certificatesToday)
+ .setText(R.id.expireSamplesTodayView, item.expireSamplesToday)
+ .setText(R.id.samplesYearView, item.samplesYear)
+ .setText(R.id.expireSamplesYearView, item.expireSamplesYear)
+ .setText(R.id.expireRateView, item.expireRate)
+ .setText(
+ R.id.inMeasureExpireSamplesYearView, item.inMeasureExpireSamplesYear
+ )
+ }
+ }
+ workRecyclerView.adapter = workAdapter
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ statisticsViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ statisticsViewModel.getRealTimeWork()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
index 665b3be..36c9f2d 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
@@ -1,7 +1,18 @@
package com.casic.xz.meterage.vm
+import androidx.lifecycle.MutableLiveData
+import com.casic.xz.meterage.base.BaseApplication
+import com.casic.xz.meterage.extensions.separateResponseCode
+import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.DeptComprehensiveModel
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 业务统计 VM
@@ -9,24 +20,44 @@
class StatisticsViewModel : BaseViewModel() {
private val gson by lazy { Gson() }
-// val capabilityDetail = MutableLiveData()
-//
-// fun getCapabilityDetail(id: String) = launch({
-// loadState.value = LoadState.Loading
-// val response = RetrofitServiceManager.getCapabilityDetail(id)
-// val responseCode = response.separateResponseCode()
-// if (responseCode == 200) {
-// loadState.value = LoadState.Success
-// capabilityDetail.value = gson.fromJson(
-// response, object : TypeToken() {}.type
-// )
-// } else {
-// loadState.value = LoadState.Fail
-// response.toErrorMessage().show(BaseApplication.get())
-// }
-// }, {
-// loadState.value = LoadState.Fail
-// it.cause.toString().show(BaseApplication.get())
-// it.printStackTrace()
-// })
+ val realTimeWorkResult = MutableLiveData()
+ val deptComprehensiveResult = MutableLiveData()
+
+ fun getRealTimeWork() = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getRealTimeWork()
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ realTimeWorkResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+
+ fun getDeptComprehensive(deptId: String, startTime: String, endTime: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getDeptComprehensive(deptId, startTime, endTime)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deptComprehensiveResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_realtime_work.xml b/app/src/main/res/layout/activity_realtime_work.xml
new file mode 100644
index 0000000..c8af0ad
--- /dev/null
+++ b/app/src/main/res/layout/activity_realtime_work.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index aabd4fe..b2fd2cb 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -1253,4 +1253,26 @@
)
return api.getOutfieldDetectionDetail(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 获取实时工作统计
+ */
+ suspend fun getRealTimeWork(): String {
+ return api.getRealTimeWork(AuthenticationHelper.token!!)
+ }
+
+ /**
+ * 获取现场检测详情
+ */
+ suspend fun getDeptComprehensive(deptId: String, startTime: String, endTime: String): String {
+ val param = JsonObject()
+ param.addProperty("deptId", deptId)
+ param.addProperty("startTime", startTime)
+ param.addProperty("endTime", endTime)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getDeptComprehensive(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
index b4f8a8b..56b1769 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
@@ -66,7 +66,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(this)
+ "头像更新成功".show(this)
}
}
userViewModel.outResult.observe(this) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
index 2d0126a..f8733bd 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
@@ -6,7 +6,9 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.base.ApplicationBaseActivity
import com.casic.xz.meterage.callback.DateSelectedCallback
-import com.casic.xz.meterage.extensions.*
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EntrustViewModel
@@ -140,12 +142,14 @@
navigatePageTo()
}
+ //实时工作
workTimeLayout.setOnClickListener {
-
+ navigatePageTo()
}
+ //部门综合分析
deptDataLayout.setOnClickListener {
-
+ navigatePageTo()
}
startDateView.setOnClickListener {
@@ -214,31 +218,9 @@
}
viewHolder.setBackgroundColor(R.id.entrustStateView, color)
- if (item.requireOverTime.isEarlierThenCurrent()) {
- viewHolder.setTextColor(
- R.id.requireOverTimeView, R.color.red.convertColor(context)
- )
- } else {
- viewHolder.setTextColor(
- R.id.requireOverTimeView,
- R.color.gray.convertColor(context)
- )
- }
-
viewHolder.setText(R.id.customerNameView, item.customerName)
.setText(R.id.entrustStateView, item.statusName)
.setText(R.id.entrustCodeView, "委托书编号:${item.orderCode}")
- .setText(
- R.id.createTimeView,
- "委托创建时间:${item.createTime.formatToYearMonthDay()}"
- ).setText(
- R.id.planDeliverTimeView,
- "预计送达时间:${item.planDeliverTime.formatToYearMonthDay()}"
- )
- .setText(
- R.id.requireOverTimeView,
- "要求检完时间:${item.requireOverTime.formatToYearMonthDay()}"
- )
}
}
entrustRecyclerView.adapter = entrustAdapter
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
new file mode 100644
index 0000000..2c0d106
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.StatisticsViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_realtime_work.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class RealTimeWorkActivity : ApplicationBaseActivity() {
+
+ private lateinit var statisticsViewModel: StatisticsViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_realtime_work
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "实时工作"
+ }
+
+ override fun initData() {
+ statisticsViewModel = ViewModelProvider(this)[StatisticsViewModel::class.java]
+ statisticsViewModel.realTimeWorkResult.observe(this) {
+ if (it.code == 200) {
+ val workAdapter = object : NormalRecyclerAdapter(
+ R.layout.item_realtime_work_rv_l, it.data
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int, item: RealTimeWorkModel.DataModel
+ ) {
+ viewHolder.setText(R.id.libNameView, item.organizeName)
+ .setText(R.id.samplesCompletedTodayView, item.samplesCompletedToday)
+ .setText(R.id.certificatesTodayView, item.certificatesToday)
+ .setText(R.id.expireSamplesTodayView, item.expireSamplesToday)
+ .setText(R.id.samplesYearView, item.samplesYear)
+ .setText(R.id.expireSamplesYearView, item.expireSamplesYear)
+ .setText(R.id.expireRateView, item.expireRate)
+ .setText(
+ R.id.inMeasureExpireSamplesYearView, item.inMeasureExpireSamplesYear
+ )
+ }
+ }
+ workRecyclerView.adapter = workAdapter
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ statisticsViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ statisticsViewModel.getRealTimeWork()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
index 665b3be..36c9f2d 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
@@ -1,7 +1,18 @@
package com.casic.xz.meterage.vm
+import androidx.lifecycle.MutableLiveData
+import com.casic.xz.meterage.base.BaseApplication
+import com.casic.xz.meterage.extensions.separateResponseCode
+import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.DeptComprehensiveModel
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 业务统计 VM
@@ -9,24 +20,44 @@
class StatisticsViewModel : BaseViewModel() {
private val gson by lazy { Gson() }
-// val capabilityDetail = MutableLiveData()
-//
-// fun getCapabilityDetail(id: String) = launch({
-// loadState.value = LoadState.Loading
-// val response = RetrofitServiceManager.getCapabilityDetail(id)
-// val responseCode = response.separateResponseCode()
-// if (responseCode == 200) {
-// loadState.value = LoadState.Success
-// capabilityDetail.value = gson.fromJson(
-// response, object : TypeToken() {}.type
-// )
-// } else {
-// loadState.value = LoadState.Fail
-// response.toErrorMessage().show(BaseApplication.get())
-// }
-// }, {
-// loadState.value = LoadState.Fail
-// it.cause.toString().show(BaseApplication.get())
-// it.printStackTrace()
-// })
+ val realTimeWorkResult = MutableLiveData()
+ val deptComprehensiveResult = MutableLiveData()
+
+ fun getRealTimeWork() = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getRealTimeWork()
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ realTimeWorkResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+
+ fun getDeptComprehensive(deptId: String, startTime: String, endTime: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getDeptComprehensive(deptId, startTime, endTime)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deptComprehensiveResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_realtime_work.xml b/app/src/main/res/layout/activity_realtime_work.xml
new file mode 100644
index 0000000..c8af0ad
--- /dev/null
+++ b/app/src/main/res/layout/activity_realtime_work.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_entrust_bs_rv_l.xml b/app/src/main/res/layout/item_entrust_bs_rv_l.xml
index 59c6aef..e956521 100644
--- a/app/src/main/res/layout/item_entrust_bs_rv_l.xml
+++ b/app/src/main/res/layout/item_entrust_bs_rv_l.xml
@@ -10,68 +10,36 @@
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_5">
-
+
+
+ android:text="委托书编号:wt1231232455454553223"
+ android:textColor="@color/gray"
+ android:textSize="@dimen/sp_14" />
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 968c535..5ea6bd7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b12a0bf..77c77d4 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -68,7 +68,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(requireContext())
+ "头像更新成功".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
new file mode 100644
index 0000000..f37fda0
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/RealTimeWorkModel.java
@@ -0,0 +1,127 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class RealTimeWorkModel {
+
+ private int code;
+ private List data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certificatesToday;
+ private String deptId;
+ private String expireRate;
+ private String expireSamplesToday;
+ private String expireSamplesYear;
+ private String inMeasureExpireSamplesYear;
+ private String organizeName;
+ private String organizeNo;
+ private String samplesCompletedToday;
+ private String samplesYear;
+
+ public String getCertificatesToday() {
+ return certificatesToday;
+ }
+
+ public void setCertificatesToday(String certificatesToday) {
+ this.certificatesToday = certificatesToday;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getExpireRate() {
+ return expireRate;
+ }
+
+ public void setExpireRate(String expireRate) {
+ this.expireRate = expireRate;
+ }
+
+ public String getExpireSamplesToday() {
+ return expireSamplesToday;
+ }
+
+ public void setExpireSamplesToday(String expireSamplesToday) {
+ this.expireSamplesToday = expireSamplesToday;
+ }
+
+ public String getExpireSamplesYear() {
+ return expireSamplesYear;
+ }
+
+ public void setExpireSamplesYear(String expireSamplesYear) {
+ this.expireSamplesYear = expireSamplesYear;
+ }
+
+ public String getInMeasureExpireSamplesYear() {
+ return inMeasureExpireSamplesYear;
+ }
+
+ public void setInMeasureExpireSamplesYear(String inMeasureExpireSamplesYear) {
+ this.inMeasureExpireSamplesYear = inMeasureExpireSamplesYear;
+ }
+
+ public String getOrganizeName() {
+ return organizeName;
+ }
+
+ public void setOrganizeName(String organizeName) {
+ this.organizeName = organizeName;
+ }
+
+ public String getOrganizeNo() {
+ return organizeNo;
+ }
+
+ public void setOrganizeNo(String organizeNo) {
+ this.organizeNo = organizeNo;
+ }
+
+ public String getSamplesCompletedToday() {
+ return samplesCompletedToday;
+ }
+
+ public void setSamplesCompletedToday(String samplesCompletedToday) {
+ this.samplesCompletedToday = samplesCompletedToday;
+ }
+
+ public String getSamplesYear() {
+ return samplesYear;
+ }
+
+ public void setSamplesYear(String samplesYear) {
+ this.samplesYear = samplesYear;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 01627ed..1b05568 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -538,4 +538,19 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 获取实时工作统计
+ */
+ @GET("/business/board/workStatistics")
+ suspend fun getRealTimeWork(@Header("token") token: String): String
+
+ /**
+ * 获取部门综合分析
+ */
+ @POST("/business/board/deptComprehensive")
+ suspend fun getDeptComprehensive(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index aabd4fe..b2fd2cb 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -1253,4 +1253,26 @@
)
return api.getOutfieldDetectionDetail(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 获取实时工作统计
+ */
+ suspend fun getRealTimeWork(): String {
+ return api.getRealTimeWork(AuthenticationHelper.token!!)
+ }
+
+ /**
+ * 获取现场检测详情
+ */
+ suspend fun getDeptComprehensive(deptId: String, startTime: String, endTime: String): String {
+ val param = JsonObject()
+ param.addProperty("deptId", deptId)
+ param.addProperty("startTime", startTime)
+ param.addProperty("endTime", endTime)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getDeptComprehensive(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
index b4f8a8b..56b1769 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt
@@ -66,7 +66,7 @@
}
userViewModel.updateResult.observe(this) {
if (it.code == 200) {
- "头像更新成功,下次登录生效".show(this)
+ "头像更新成功".show(this)
}
}
userViewModel.outResult.observe(this) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
index 2d0126a..f8733bd 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt
@@ -6,7 +6,9 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.base.ApplicationBaseActivity
import com.casic.xz.meterage.callback.DateSelectedCallback
-import com.casic.xz.meterage.extensions.*
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EntrustViewModel
@@ -140,12 +142,14 @@
navigatePageTo()
}
+ //实时工作
workTimeLayout.setOnClickListener {
-
+ navigatePageTo()
}
+ //部门综合分析
deptDataLayout.setOnClickListener {
-
+ navigatePageTo()
}
startDateView.setOnClickListener {
@@ -214,31 +218,9 @@
}
viewHolder.setBackgroundColor(R.id.entrustStateView, color)
- if (item.requireOverTime.isEarlierThenCurrent()) {
- viewHolder.setTextColor(
- R.id.requireOverTimeView, R.color.red.convertColor(context)
- )
- } else {
- viewHolder.setTextColor(
- R.id.requireOverTimeView,
- R.color.gray.convertColor(context)
- )
- }
-
viewHolder.setText(R.id.customerNameView, item.customerName)
.setText(R.id.entrustStateView, item.statusName)
.setText(R.id.entrustCodeView, "委托书编号:${item.orderCode}")
- .setText(
- R.id.createTimeView,
- "委托创建时间:${item.createTime.formatToYearMonthDay()}"
- ).setText(
- R.id.planDeliverTimeView,
- "预计送达时间:${item.planDeliverTime.formatToYearMonthDay()}"
- )
- .setText(
- R.id.requireOverTimeView,
- "要求检完时间:${item.requireOverTime.formatToYearMonthDay()}"
- )
}
}
entrustRecyclerView.adapter = entrustAdapter
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
new file mode 100644
index 0000000..2c0d106
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/RealTimeWorkActivity.kt
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.StatisticsViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_realtime_work.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class RealTimeWorkActivity : ApplicationBaseActivity() {
+
+ private lateinit var statisticsViewModel: StatisticsViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_realtime_work
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "实时工作"
+ }
+
+ override fun initData() {
+ statisticsViewModel = ViewModelProvider(this)[StatisticsViewModel::class.java]
+ statisticsViewModel.realTimeWorkResult.observe(this) {
+ if (it.code == 200) {
+ val workAdapter = object : NormalRecyclerAdapter(
+ R.layout.item_realtime_work_rv_l, it.data
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int, item: RealTimeWorkModel.DataModel
+ ) {
+ viewHolder.setText(R.id.libNameView, item.organizeName)
+ .setText(R.id.samplesCompletedTodayView, item.samplesCompletedToday)
+ .setText(R.id.certificatesTodayView, item.certificatesToday)
+ .setText(R.id.expireSamplesTodayView, item.expireSamplesToday)
+ .setText(R.id.samplesYearView, item.samplesYear)
+ .setText(R.id.expireSamplesYearView, item.expireSamplesYear)
+ .setText(R.id.expireRateView, item.expireRate)
+ .setText(
+ R.id.inMeasureExpireSamplesYearView, item.inMeasureExpireSamplesYear
+ )
+ }
+ }
+ workRecyclerView.adapter = workAdapter
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ statisticsViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ statisticsViewModel.getRealTimeWork()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
index 665b3be..36c9f2d 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/StatisticsViewModel.kt
@@ -1,7 +1,18 @@
package com.casic.xz.meterage.vm
+import androidx.lifecycle.MutableLiveData
+import com.casic.xz.meterage.base.BaseApplication
+import com.casic.xz.meterage.extensions.separateResponseCode
+import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.DeptComprehensiveModel
+import com.casic.xz.meterage.model.RealTimeWorkModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 业务统计 VM
@@ -9,24 +20,44 @@
class StatisticsViewModel : BaseViewModel() {
private val gson by lazy { Gson() }
-// val capabilityDetail = MutableLiveData()
-//
-// fun getCapabilityDetail(id: String) = launch({
-// loadState.value = LoadState.Loading
-// val response = RetrofitServiceManager.getCapabilityDetail(id)
-// val responseCode = response.separateResponseCode()
-// if (responseCode == 200) {
-// loadState.value = LoadState.Success
-// capabilityDetail.value = gson.fromJson(
-// response, object : TypeToken() {}.type
-// )
-// } else {
-// loadState.value = LoadState.Fail
-// response.toErrorMessage().show(BaseApplication.get())
-// }
-// }, {
-// loadState.value = LoadState.Fail
-// it.cause.toString().show(BaseApplication.get())
-// it.printStackTrace()
-// })
+ val realTimeWorkResult = MutableLiveData()
+ val deptComprehensiveResult = MutableLiveData()
+
+ fun getRealTimeWork() = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getRealTimeWork()
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ realTimeWorkResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+
+ fun getDeptComprehensive(deptId: String, startTime: String, endTime: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getDeptComprehensive(deptId, startTime, endTime)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deptComprehensiveResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_realtime_work.xml b/app/src/main/res/layout/activity_realtime_work.xml
new file mode 100644
index 0000000..c8af0ad
--- /dev/null
+++ b/app/src/main/res/layout/activity_realtime_work.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_entrust_bs_rv_l.xml b/app/src/main/res/layout/item_entrust_bs_rv_l.xml
index 59c6aef..e956521 100644
--- a/app/src/main/res/layout/item_entrust_bs_rv_l.xml
+++ b/app/src/main/res/layout/item_entrust_bs_rv_l.xml
@@ -10,68 +10,36 @@
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_5">
-
+
+
+ android:text="委托书编号:wt1231232455454553223"
+ android:textColor="@color/gray"
+ android:textSize="@dimen/sp_14" />
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_realtime_work_rv_l.xml b/app/src/main/res/layout/item_realtime_work_rv_l.xml
new file mode 100644
index 0000000..c43a50c
--- /dev/null
+++ b/app/src/main/res/layout/item_realtime_work_rv_l.xml
@@ -0,0 +1,269 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file