diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java new file mode 100644 index 0000000..2092fa7 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java @@ -0,0 +1,193 @@ +package com.casic.br.app.model; + +import java.util.List; + +public class HiddenTroubleListResultModel { + + private int code; + private List data; + private String message; + private boolean success; + + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String alarmMenuId; + private String basis; + private String content; + private String id; + private List imageList; + private String inspectionId; + private String mainClass; + private String mainClassName; + private String name; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getImageList() { + return imageList; + } + + public void setImageList(List imageList) { + this.imageList = imageList; + } + + public String getInspectionId() { + return inspectionId; + } + + public void setInspectionId(String inspectionId) { + this.inspectionId = inspectionId; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public static class ImageListModel { + private String alarmImage; + private String id; + private String inspectionAlarmId; + + public String getAlarmImage() { + return alarmImage; + } + + public void setAlarmImage(String alarmImage) { + this.alarmImage = alarmImage; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInspectionAlarmId() { + return inspectionAlarmId; + } + + public void setInspectionAlarmId(String inspectionAlarmId) { + this.inspectionAlarmId = inspectionAlarmId; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java new file mode 100644 index 0000000..2092fa7 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java @@ -0,0 +1,193 @@ +package com.casic.br.app.model; + +import java.util.List; + +public class HiddenTroubleListResultModel { + + private int code; + private List data; + private String message; + private boolean success; + + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String alarmMenuId; + private String basis; + private String content; + private String id; + private List imageList; + private String inspectionId; + private String mainClass; + private String mainClassName; + private String name; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getImageList() { + return imageList; + } + + public void setImageList(List imageList) { + this.imageList = imageList; + } + + public String getInspectionId() { + return inspectionId; + } + + public void setInspectionId(String inspectionId) { + this.inspectionId = inspectionId; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public static class ImageListModel { + private String alarmImage; + private String id; + private String inspectionAlarmId; + + public String getAlarmImage() { + return alarmImage; + } + + public void setAlarmImage(String alarmImage) { + this.alarmImage = alarmImage; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInspectionAlarmId() { + return inspectionAlarmId; + } + + public void setInspectionAlarmId(String inspectionAlarmId) { + this.inspectionAlarmId = inspectionAlarmId; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5e7055c..f03f4e2 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -73,6 +73,15 @@ ): String /** + * 根据巡检获取此次巡检的隐患列表 + */ + @GET("/inspection-record/listAlarmByInspection") + suspend fun getHiddenTroublesByInspectionId( + @Header("token") token: String, + @Query("inspectionId") inspectionId: String + ): String + + /** * 结束巡检 */ @POST("/inspection-record/updateRecord") diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java new file mode 100644 index 0000000..2092fa7 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java @@ -0,0 +1,193 @@ +package com.casic.br.app.model; + +import java.util.List; + +public class HiddenTroubleListResultModel { + + private int code; + private List data; + private String message; + private boolean success; + + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String alarmMenuId; + private String basis; + private String content; + private String id; + private List imageList; + private String inspectionId; + private String mainClass; + private String mainClassName; + private String name; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getImageList() { + return imageList; + } + + public void setImageList(List imageList) { + this.imageList = imageList; + } + + public String getInspectionId() { + return inspectionId; + } + + public void setInspectionId(String inspectionId) { + this.inspectionId = inspectionId; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public static class ImageListModel { + private String alarmImage; + private String id; + private String inspectionAlarmId; + + public String getAlarmImage() { + return alarmImage; + } + + public void setAlarmImage(String alarmImage) { + this.alarmImage = alarmImage; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInspectionAlarmId() { + return inspectionAlarmId; + } + + public void setInspectionAlarmId(String inspectionAlarmId) { + this.inspectionAlarmId = inspectionAlarmId; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5e7055c..f03f4e2 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -73,6 +73,15 @@ ): String /** + * 根据巡检获取此次巡检的隐患列表 + */ + @GET("/inspection-record/listAlarmByInspection") + suspend fun getHiddenTroublesByInspectionId( + @Header("token") token: String, + @Query("inspectionId") inspectionId: String + ): String + + /** * 结束巡检 */ @POST("/inspection-record/updateRecord") diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index b740e6a..5f70985 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -107,12 +107,22 @@ } /** + * 根据巡检获取此次巡检的隐患列表 + */ + suspend fun getHiddenTroublesByInspectionId(inspectionId: String): String { + return api.getHiddenTroublesByInspectionId(AuthenticationHelper.token, inspectionId) + } + + /** * 结束巡检 */ - suspend fun stopInspection(inspectionId: String, endTime: String): String { + suspend fun stopInspection( + inspectionId: String, endTime: String, inspectionAddress: String + ): String { val param = JsonObject() param.addProperty("id", inspectionId) param.addProperty("endTime", endTime) + param.addProperty("inspectionAddress", inspectionAddress) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java new file mode 100644 index 0000000..2092fa7 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java @@ -0,0 +1,193 @@ +package com.casic.br.app.model; + +import java.util.List; + +public class HiddenTroubleListResultModel { + + private int code; + private List data; + private String message; + private boolean success; + + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String alarmMenuId; + private String basis; + private String content; + private String id; + private List imageList; + private String inspectionId; + private String mainClass; + private String mainClassName; + private String name; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getImageList() { + return imageList; + } + + public void setImageList(List imageList) { + this.imageList = imageList; + } + + public String getInspectionId() { + return inspectionId; + } + + public void setInspectionId(String inspectionId) { + this.inspectionId = inspectionId; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public static class ImageListModel { + private String alarmImage; + private String id; + private String inspectionAlarmId; + + public String getAlarmImage() { + return alarmImage; + } + + public void setAlarmImage(String alarmImage) { + this.alarmImage = alarmImage; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInspectionAlarmId() { + return inspectionAlarmId; + } + + public void setInspectionAlarmId(String inspectionAlarmId) { + this.inspectionAlarmId = inspectionAlarmId; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5e7055c..f03f4e2 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -73,6 +73,15 @@ ): String /** + * 根据巡检获取此次巡检的隐患列表 + */ + @GET("/inspection-record/listAlarmByInspection") + suspend fun getHiddenTroublesByInspectionId( + @Header("token") token: String, + @Query("inspectionId") inspectionId: String + ): String + + /** * 结束巡检 */ @POST("/inspection-record/updateRecord") diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index b740e6a..5f70985 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -107,12 +107,22 @@ } /** + * 根据巡检获取此次巡检的隐患列表 + */ + suspend fun getHiddenTroublesByInspectionId(inspectionId: String): String { + return api.getHiddenTroublesByInspectionId(AuthenticationHelper.token, inspectionId) + } + + /** * 结束巡检 */ - suspend fun stopInspection(inspectionId: String, endTime: String): String { + suspend fun stopInspection( + inspectionId: String, endTime: String, inspectionAddress: String + ): String { val param = JsonObject() param.addProperty("id", inspectionId) param.addProperty("endTime", endTime) + param.addProperty("inspectionAddress", inspectionAddress) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() diff --git a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt index 8574b52..382ab7b 100644 --- a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt @@ -2,9 +2,17 @@ import android.os.Bundle import androidx.lifecycle.ViewModelProvider +import com.amap.api.location.AMapLocation +import com.casic.br.app.R import com.casic.br.app.databinding.ActivityCheckResultBinding +import com.casic.br.app.extensions.combineFilePath +import com.casic.br.app.model.HiddenTroubleListResultModel +import com.casic.br.app.utils.LocationManager import com.casic.br.app.vm.InspectionViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.Constant @@ -14,13 +22,17 @@ private val kTag = "CheckResultActivity" private val context = this + private val locationManager by lazy { LocationManager(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var inspectionId: String override fun initEvent() { binding.confirmButton.setOnClickListener { inspectionViewModel.stopInspection( - this, inspectionId, System.currentTimeMillis().timestampToCompleteDate() + this, + inspectionId, + System.currentTimeMillis().timestampToCompleteDate(), + binding.inputSiteView.text.toString() ) } @@ -30,6 +42,44 @@ override fun initOnCreate(savedInstanceState: Bundle?) { inspectionId = intent.getStringExtra(Constant.INTENT_PARAM) as String inspectionViewModel = ViewModelProvider(this)[InspectionViewModel::class.java] + inspectionViewModel.getHiddenTroublesByInspectionId(this, inspectionId) + inspectionViewModel.troublesResultModel.observe(this) { + if (it.code == 200) { + val troublesAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_trouble_by_id_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleListResultModel.DataModel + ) { + viewHolder.setText(R.id.troubleIndexView, "${position + 1}、") + .setText(R.id.troubleNameView, item.name) + .setOnClickListener(R.id.showImageView) { + if (item.imageList.isEmpty()) { + "此隐患暂无图片".show(context) + return@setOnClickListener + } + + val images = ArrayList() + item.imageList.forEach { imageModel -> + images.add(imageModel.alarmImage.combineFilePath()) + } + context.navigatePageTo(0, images) + } + } + } + binding.recyclerView.adapter = troublesAdapter + } + } + + locationManager.getCurrentLocation(false, object : LocationManager.OnGetLocationListener { + override fun onAMapLocationGet(location: AMapLocation?) { + location?.apply { + binding.inputSiteView.setText(address) + } + } + }) } override fun initViewBinding(): ActivityCheckResultBinding { @@ -53,4 +103,9 @@ override fun setupTopBarLayout() { } + + override fun onDestroy() { + super.onDestroy() + locationManager.stopLocation() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java new file mode 100644 index 0000000..2092fa7 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java @@ -0,0 +1,193 @@ +package com.casic.br.app.model; + +import java.util.List; + +public class HiddenTroubleListResultModel { + + private int code; + private List data; + private String message; + private boolean success; + + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String alarmMenuId; + private String basis; + private String content; + private String id; + private List imageList; + private String inspectionId; + private String mainClass; + private String mainClassName; + private String name; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getImageList() { + return imageList; + } + + public void setImageList(List imageList) { + this.imageList = imageList; + } + + public String getInspectionId() { + return inspectionId; + } + + public void setInspectionId(String inspectionId) { + this.inspectionId = inspectionId; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public static class ImageListModel { + private String alarmImage; + private String id; + private String inspectionAlarmId; + + public String getAlarmImage() { + return alarmImage; + } + + public void setAlarmImage(String alarmImage) { + this.alarmImage = alarmImage; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInspectionAlarmId() { + return inspectionAlarmId; + } + + public void setInspectionAlarmId(String inspectionAlarmId) { + this.inspectionAlarmId = inspectionAlarmId; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5e7055c..f03f4e2 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -73,6 +73,15 @@ ): String /** + * 根据巡检获取此次巡检的隐患列表 + */ + @GET("/inspection-record/listAlarmByInspection") + suspend fun getHiddenTroublesByInspectionId( + @Header("token") token: String, + @Query("inspectionId") inspectionId: String + ): String + + /** * 结束巡检 */ @POST("/inspection-record/updateRecord") diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index b740e6a..5f70985 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -107,12 +107,22 @@ } /** + * 根据巡检获取此次巡检的隐患列表 + */ + suspend fun getHiddenTroublesByInspectionId(inspectionId: String): String { + return api.getHiddenTroublesByInspectionId(AuthenticationHelper.token, inspectionId) + } + + /** * 结束巡检 */ - suspend fun stopInspection(inspectionId: String, endTime: String): String { + suspend fun stopInspection( + inspectionId: String, endTime: String, inspectionAddress: String + ): String { val param = JsonObject() param.addProperty("id", inspectionId) param.addProperty("endTime", endTime) + param.addProperty("inspectionAddress", inspectionAddress) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() diff --git a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt index 8574b52..382ab7b 100644 --- a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt @@ -2,9 +2,17 @@ import android.os.Bundle import androidx.lifecycle.ViewModelProvider +import com.amap.api.location.AMapLocation +import com.casic.br.app.R import com.casic.br.app.databinding.ActivityCheckResultBinding +import com.casic.br.app.extensions.combineFilePath +import com.casic.br.app.model.HiddenTroubleListResultModel +import com.casic.br.app.utils.LocationManager import com.casic.br.app.vm.InspectionViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.Constant @@ -14,13 +22,17 @@ private val kTag = "CheckResultActivity" private val context = this + private val locationManager by lazy { LocationManager(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var inspectionId: String override fun initEvent() { binding.confirmButton.setOnClickListener { inspectionViewModel.stopInspection( - this, inspectionId, System.currentTimeMillis().timestampToCompleteDate() + this, + inspectionId, + System.currentTimeMillis().timestampToCompleteDate(), + binding.inputSiteView.text.toString() ) } @@ -30,6 +42,44 @@ override fun initOnCreate(savedInstanceState: Bundle?) { inspectionId = intent.getStringExtra(Constant.INTENT_PARAM) as String inspectionViewModel = ViewModelProvider(this)[InspectionViewModel::class.java] + inspectionViewModel.getHiddenTroublesByInspectionId(this, inspectionId) + inspectionViewModel.troublesResultModel.observe(this) { + if (it.code == 200) { + val troublesAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_trouble_by_id_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleListResultModel.DataModel + ) { + viewHolder.setText(R.id.troubleIndexView, "${position + 1}、") + .setText(R.id.troubleNameView, item.name) + .setOnClickListener(R.id.showImageView) { + if (item.imageList.isEmpty()) { + "此隐患暂无图片".show(context) + return@setOnClickListener + } + + val images = ArrayList() + item.imageList.forEach { imageModel -> + images.add(imageModel.alarmImage.combineFilePath()) + } + context.navigatePageTo(0, images) + } + } + } + binding.recyclerView.adapter = troublesAdapter + } + } + + locationManager.getCurrentLocation(false, object : LocationManager.OnGetLocationListener { + override fun onAMapLocationGet(location: AMapLocation?) { + location?.apply { + binding.inputSiteView.setText(address) + } + } + }) } override fun initViewBinding(): ActivityCheckResultBinding { @@ -53,4 +103,9 @@ override fun setupTopBarLayout() { } + + override fun onDestroy() { + super.onDestroy() + locationManager.stopLocation() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt index 710fe14..a43683f 100644 --- a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt @@ -227,9 +227,9 @@ val base64 = bitmap.rotateImage(90).encodeToBase64() if (inspectionId.isNotBlank()) { -// imageFileViewModel.getRecognizeResult( -// context, base64, binding.titleView.getTitle(), inspectionId -// ) + imageFileViewModel.getRecognizeResult( + context, base64, binding.titleView.getTitle(), inspectionId + ) } else { runOnUiThread { "巡检ID异常,请重新建立巡检任务".show(context) diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java new file mode 100644 index 0000000..2092fa7 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java @@ -0,0 +1,193 @@ +package com.casic.br.app.model; + +import java.util.List; + +public class HiddenTroubleListResultModel { + + private int code; + private List data; + private String message; + private boolean success; + + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String alarmMenuId; + private String basis; + private String content; + private String id; + private List imageList; + private String inspectionId; + private String mainClass; + private String mainClassName; + private String name; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getImageList() { + return imageList; + } + + public void setImageList(List imageList) { + this.imageList = imageList; + } + + public String getInspectionId() { + return inspectionId; + } + + public void setInspectionId(String inspectionId) { + this.inspectionId = inspectionId; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public static class ImageListModel { + private String alarmImage; + private String id; + private String inspectionAlarmId; + + public String getAlarmImage() { + return alarmImage; + } + + public void setAlarmImage(String alarmImage) { + this.alarmImage = alarmImage; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInspectionAlarmId() { + return inspectionAlarmId; + } + + public void setInspectionAlarmId(String inspectionAlarmId) { + this.inspectionAlarmId = inspectionAlarmId; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5e7055c..f03f4e2 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -73,6 +73,15 @@ ): String /** + * 根据巡检获取此次巡检的隐患列表 + */ + @GET("/inspection-record/listAlarmByInspection") + suspend fun getHiddenTroublesByInspectionId( + @Header("token") token: String, + @Query("inspectionId") inspectionId: String + ): String + + /** * 结束巡检 */ @POST("/inspection-record/updateRecord") diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index b740e6a..5f70985 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -107,12 +107,22 @@ } /** + * 根据巡检获取此次巡检的隐患列表 + */ + suspend fun getHiddenTroublesByInspectionId(inspectionId: String): String { + return api.getHiddenTroublesByInspectionId(AuthenticationHelper.token, inspectionId) + } + + /** * 结束巡检 */ - suspend fun stopInspection(inspectionId: String, endTime: String): String { + suspend fun stopInspection( + inspectionId: String, endTime: String, inspectionAddress: String + ): String { val param = JsonObject() param.addProperty("id", inspectionId) param.addProperty("endTime", endTime) + param.addProperty("inspectionAddress", inspectionAddress) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() diff --git a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt index 8574b52..382ab7b 100644 --- a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt @@ -2,9 +2,17 @@ import android.os.Bundle import androidx.lifecycle.ViewModelProvider +import com.amap.api.location.AMapLocation +import com.casic.br.app.R import com.casic.br.app.databinding.ActivityCheckResultBinding +import com.casic.br.app.extensions.combineFilePath +import com.casic.br.app.model.HiddenTroubleListResultModel +import com.casic.br.app.utils.LocationManager import com.casic.br.app.vm.InspectionViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.Constant @@ -14,13 +22,17 @@ private val kTag = "CheckResultActivity" private val context = this + private val locationManager by lazy { LocationManager(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var inspectionId: String override fun initEvent() { binding.confirmButton.setOnClickListener { inspectionViewModel.stopInspection( - this, inspectionId, System.currentTimeMillis().timestampToCompleteDate() + this, + inspectionId, + System.currentTimeMillis().timestampToCompleteDate(), + binding.inputSiteView.text.toString() ) } @@ -30,6 +42,44 @@ override fun initOnCreate(savedInstanceState: Bundle?) { inspectionId = intent.getStringExtra(Constant.INTENT_PARAM) as String inspectionViewModel = ViewModelProvider(this)[InspectionViewModel::class.java] + inspectionViewModel.getHiddenTroublesByInspectionId(this, inspectionId) + inspectionViewModel.troublesResultModel.observe(this) { + if (it.code == 200) { + val troublesAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_trouble_by_id_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleListResultModel.DataModel + ) { + viewHolder.setText(R.id.troubleIndexView, "${position + 1}、") + .setText(R.id.troubleNameView, item.name) + .setOnClickListener(R.id.showImageView) { + if (item.imageList.isEmpty()) { + "此隐患暂无图片".show(context) + return@setOnClickListener + } + + val images = ArrayList() + item.imageList.forEach { imageModel -> + images.add(imageModel.alarmImage.combineFilePath()) + } + context.navigatePageTo(0, images) + } + } + } + binding.recyclerView.adapter = troublesAdapter + } + } + + locationManager.getCurrentLocation(false, object : LocationManager.OnGetLocationListener { + override fun onAMapLocationGet(location: AMapLocation?) { + location?.apply { + binding.inputSiteView.setText(address) + } + } + }) } override fun initViewBinding(): ActivityCheckResultBinding { @@ -53,4 +103,9 @@ override fun setupTopBarLayout() { } + + override fun onDestroy() { + super.onDestroy() + locationManager.stopLocation() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt index 710fe14..a43683f 100644 --- a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt @@ -227,9 +227,9 @@ val base64 = bitmap.rotateImage(90).encodeToBase64() if (inspectionId.isNotBlank()) { -// imageFileViewModel.getRecognizeResult( -// context, base64, binding.titleView.getTitle(), inspectionId -// ) + imageFileViewModel.getRecognizeResult( + context, base64, binding.titleView.getTitle(), inspectionId + ) } else { runOnUiThread { "巡检ID异常,请重新建立巡检任务".show(context) diff --git a/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt b/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt index 8be3433..82059ee 100644 --- a/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt +++ b/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt @@ -5,6 +5,7 @@ import com.casic.br.app.extensions.getResponseCode import com.casic.br.app.extensions.getResponseMessage import com.casic.br.app.model.AddInspectionResultModel +import com.casic.br.app.model.HiddenTroubleListResultModel import com.casic.br.app.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -20,6 +21,7 @@ private val gson by lazy { Gson() } val addResultModel = MutableLiveData() + val troublesResultModel = MutableLiveData() fun startInspection( context: Context, @@ -43,9 +45,27 @@ it.printStackTrace() }) - fun stopInspection(context: Context, inspectionId: String, endTime: String) = launch({ + fun getHiddenTroublesByInspectionId(context: Context, inspectionId: String) = launch({ + val response = RetrofitServiceManager.getHiddenTroublesByInspectionId(inspectionId) + val responseCode = response.getResponseCode() + if (responseCode == 200) { + troublesResultModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.getResponseMessage().show(context) + } + }, { + it.localizedMessage?.show(context) + }) + + fun stopInspection( + context: Context, inspectionId: String, endTime: String, inspectionAddress: String + ) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.stopInspection(inspectionId, endTime) + val response = RetrofitServiceManager.stopInspection( + inspectionId, endTime, inspectionAddress + ) val responseCode = response.getResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java new file mode 100644 index 0000000..2092fa7 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java @@ -0,0 +1,193 @@ +package com.casic.br.app.model; + +import java.util.List; + +public class HiddenTroubleListResultModel { + + private int code; + private List data; + private String message; + private boolean success; + + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String alarmMenuId; + private String basis; + private String content; + private String id; + private List imageList; + private String inspectionId; + private String mainClass; + private String mainClassName; + private String name; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getImageList() { + return imageList; + } + + public void setImageList(List imageList) { + this.imageList = imageList; + } + + public String getInspectionId() { + return inspectionId; + } + + public void setInspectionId(String inspectionId) { + this.inspectionId = inspectionId; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public static class ImageListModel { + private String alarmImage; + private String id; + private String inspectionAlarmId; + + public String getAlarmImage() { + return alarmImage; + } + + public void setAlarmImage(String alarmImage) { + this.alarmImage = alarmImage; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInspectionAlarmId() { + return inspectionAlarmId; + } + + public void setInspectionAlarmId(String inspectionAlarmId) { + this.inspectionAlarmId = inspectionAlarmId; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5e7055c..f03f4e2 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -73,6 +73,15 @@ ): String /** + * 根据巡检获取此次巡检的隐患列表 + */ + @GET("/inspection-record/listAlarmByInspection") + suspend fun getHiddenTroublesByInspectionId( + @Header("token") token: String, + @Query("inspectionId") inspectionId: String + ): String + + /** * 结束巡检 */ @POST("/inspection-record/updateRecord") diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index b740e6a..5f70985 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -107,12 +107,22 @@ } /** + * 根据巡检获取此次巡检的隐患列表 + */ + suspend fun getHiddenTroublesByInspectionId(inspectionId: String): String { + return api.getHiddenTroublesByInspectionId(AuthenticationHelper.token, inspectionId) + } + + /** * 结束巡检 */ - suspend fun stopInspection(inspectionId: String, endTime: String): String { + suspend fun stopInspection( + inspectionId: String, endTime: String, inspectionAddress: String + ): String { val param = JsonObject() param.addProperty("id", inspectionId) param.addProperty("endTime", endTime) + param.addProperty("inspectionAddress", inspectionAddress) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() diff --git a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt index 8574b52..382ab7b 100644 --- a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt @@ -2,9 +2,17 @@ import android.os.Bundle import androidx.lifecycle.ViewModelProvider +import com.amap.api.location.AMapLocation +import com.casic.br.app.R import com.casic.br.app.databinding.ActivityCheckResultBinding +import com.casic.br.app.extensions.combineFilePath +import com.casic.br.app.model.HiddenTroubleListResultModel +import com.casic.br.app.utils.LocationManager import com.casic.br.app.vm.InspectionViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.Constant @@ -14,13 +22,17 @@ private val kTag = "CheckResultActivity" private val context = this + private val locationManager by lazy { LocationManager(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var inspectionId: String override fun initEvent() { binding.confirmButton.setOnClickListener { inspectionViewModel.stopInspection( - this, inspectionId, System.currentTimeMillis().timestampToCompleteDate() + this, + inspectionId, + System.currentTimeMillis().timestampToCompleteDate(), + binding.inputSiteView.text.toString() ) } @@ -30,6 +42,44 @@ override fun initOnCreate(savedInstanceState: Bundle?) { inspectionId = intent.getStringExtra(Constant.INTENT_PARAM) as String inspectionViewModel = ViewModelProvider(this)[InspectionViewModel::class.java] + inspectionViewModel.getHiddenTroublesByInspectionId(this, inspectionId) + inspectionViewModel.troublesResultModel.observe(this) { + if (it.code == 200) { + val troublesAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_trouble_by_id_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleListResultModel.DataModel + ) { + viewHolder.setText(R.id.troubleIndexView, "${position + 1}、") + .setText(R.id.troubleNameView, item.name) + .setOnClickListener(R.id.showImageView) { + if (item.imageList.isEmpty()) { + "此隐患暂无图片".show(context) + return@setOnClickListener + } + + val images = ArrayList() + item.imageList.forEach { imageModel -> + images.add(imageModel.alarmImage.combineFilePath()) + } + context.navigatePageTo(0, images) + } + } + } + binding.recyclerView.adapter = troublesAdapter + } + } + + locationManager.getCurrentLocation(false, object : LocationManager.OnGetLocationListener { + override fun onAMapLocationGet(location: AMapLocation?) { + location?.apply { + binding.inputSiteView.setText(address) + } + } + }) } override fun initViewBinding(): ActivityCheckResultBinding { @@ -53,4 +103,9 @@ override fun setupTopBarLayout() { } + + override fun onDestroy() { + super.onDestroy() + locationManager.stopLocation() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt index 710fe14..a43683f 100644 --- a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt @@ -227,9 +227,9 @@ val base64 = bitmap.rotateImage(90).encodeToBase64() if (inspectionId.isNotBlank()) { -// imageFileViewModel.getRecognizeResult( -// context, base64, binding.titleView.getTitle(), inspectionId -// ) + imageFileViewModel.getRecognizeResult( + context, base64, binding.titleView.getTitle(), inspectionId + ) } else { runOnUiThread { "巡检ID异常,请重新建立巡检任务".show(context) diff --git a/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt b/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt index 8be3433..82059ee 100644 --- a/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt +++ b/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt @@ -5,6 +5,7 @@ import com.casic.br.app.extensions.getResponseCode import com.casic.br.app.extensions.getResponseMessage import com.casic.br.app.model.AddInspectionResultModel +import com.casic.br.app.model.HiddenTroubleListResultModel import com.casic.br.app.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -20,6 +21,7 @@ private val gson by lazy { Gson() } val addResultModel = MutableLiveData() + val troublesResultModel = MutableLiveData() fun startInspection( context: Context, @@ -43,9 +45,27 @@ it.printStackTrace() }) - fun stopInspection(context: Context, inspectionId: String, endTime: String) = launch({ + fun getHiddenTroublesByInspectionId(context: Context, inspectionId: String) = launch({ + val response = RetrofitServiceManager.getHiddenTroublesByInspectionId(inspectionId) + val responseCode = response.getResponseCode() + if (responseCode == 200) { + troublesResultModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.getResponseMessage().show(context) + } + }, { + it.localizedMessage?.show(context) + }) + + fun stopInspection( + context: Context, inspectionId: String, endTime: String, inspectionAddress: String + ) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.stopInspection(inspectionId, endTime) + val response = RetrofitServiceManager.stopInspection( + inspectionId, endTime, inspectionAddress + ) val responseCode = response.getResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success diff --git a/app/src/main/res/layout/item_hidden_trouble_by_id_l.xml b/app/src/main/res/layout/item_hidden_trouble_by_id_l.xml new file mode 100644 index 0000000..49d32f8 --- /dev/null +++ b/app/src/main/res/layout/item_hidden_trouble_by_id_l.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java new file mode 100644 index 0000000..2092fa7 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleListResultModel.java @@ -0,0 +1,193 @@ +package com.casic.br.app.model; + +import java.util.List; + +public class HiddenTroubleListResultModel { + + private int code; + private List data; + private String message; + private boolean success; + + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String alarmMenuId; + private String basis; + private String content; + private String id; + private List imageList; + private String inspectionId; + private String mainClass; + private String mainClassName; + private String name; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getImageList() { + return imageList; + } + + public void setImageList(List imageList) { + this.imageList = imageList; + } + + public String getInspectionId() { + return inspectionId; + } + + public void setInspectionId(String inspectionId) { + this.inspectionId = inspectionId; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public static class ImageListModel { + private String alarmImage; + private String id; + private String inspectionAlarmId; + + public String getAlarmImage() { + return alarmImage; + } + + public void setAlarmImage(String alarmImage) { + this.alarmImage = alarmImage; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInspectionAlarmId() { + return inspectionAlarmId; + } + + public void setInspectionAlarmId(String inspectionAlarmId) { + this.inspectionAlarmId = inspectionAlarmId; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5e7055c..f03f4e2 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -73,6 +73,15 @@ ): String /** + * 根据巡检获取此次巡检的隐患列表 + */ + @GET("/inspection-record/listAlarmByInspection") + suspend fun getHiddenTroublesByInspectionId( + @Header("token") token: String, + @Query("inspectionId") inspectionId: String + ): String + + /** * 结束巡检 */ @POST("/inspection-record/updateRecord") diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index b740e6a..5f70985 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -107,12 +107,22 @@ } /** + * 根据巡检获取此次巡检的隐患列表 + */ + suspend fun getHiddenTroublesByInspectionId(inspectionId: String): String { + return api.getHiddenTroublesByInspectionId(AuthenticationHelper.token, inspectionId) + } + + /** * 结束巡检 */ - suspend fun stopInspection(inspectionId: String, endTime: String): String { + suspend fun stopInspection( + inspectionId: String, endTime: String, inspectionAddress: String + ): String { val param = JsonObject() param.addProperty("id", inspectionId) param.addProperty("endTime", endTime) + param.addProperty("inspectionAddress", inspectionAddress) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() diff --git a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt index 8574b52..382ab7b 100644 --- a/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/CheckResultActivity.kt @@ -2,9 +2,17 @@ import android.os.Bundle import androidx.lifecycle.ViewModelProvider +import com.amap.api.location.AMapLocation +import com.casic.br.app.R import com.casic.br.app.databinding.ActivityCheckResultBinding +import com.casic.br.app.extensions.combineFilePath +import com.casic.br.app.model.HiddenTroubleListResultModel +import com.casic.br.app.utils.LocationManager import com.casic.br.app.vm.InspectionViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.Constant @@ -14,13 +22,17 @@ private val kTag = "CheckResultActivity" private val context = this + private val locationManager by lazy { LocationManager(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var inspectionId: String override fun initEvent() { binding.confirmButton.setOnClickListener { inspectionViewModel.stopInspection( - this, inspectionId, System.currentTimeMillis().timestampToCompleteDate() + this, + inspectionId, + System.currentTimeMillis().timestampToCompleteDate(), + binding.inputSiteView.text.toString() ) } @@ -30,6 +42,44 @@ override fun initOnCreate(savedInstanceState: Bundle?) { inspectionId = intent.getStringExtra(Constant.INTENT_PARAM) as String inspectionViewModel = ViewModelProvider(this)[InspectionViewModel::class.java] + inspectionViewModel.getHiddenTroublesByInspectionId(this, inspectionId) + inspectionViewModel.troublesResultModel.observe(this) { + if (it.code == 200) { + val troublesAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_trouble_by_id_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleListResultModel.DataModel + ) { + viewHolder.setText(R.id.troubleIndexView, "${position + 1}、") + .setText(R.id.troubleNameView, item.name) + .setOnClickListener(R.id.showImageView) { + if (item.imageList.isEmpty()) { + "此隐患暂无图片".show(context) + return@setOnClickListener + } + + val images = ArrayList() + item.imageList.forEach { imageModel -> + images.add(imageModel.alarmImage.combineFilePath()) + } + context.navigatePageTo(0, images) + } + } + } + binding.recyclerView.adapter = troublesAdapter + } + } + + locationManager.getCurrentLocation(false, object : LocationManager.OnGetLocationListener { + override fun onAMapLocationGet(location: AMapLocation?) { + location?.apply { + binding.inputSiteView.setText(address) + } + } + }) } override fun initViewBinding(): ActivityCheckResultBinding { @@ -53,4 +103,9 @@ override fun setupTopBarLayout() { } + + override fun onDestroy() { + super.onDestroy() + locationManager.stopLocation() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt index 710fe14..a43683f 100644 --- a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt @@ -227,9 +227,9 @@ val base64 = bitmap.rotateImage(90).encodeToBase64() if (inspectionId.isNotBlank()) { -// imageFileViewModel.getRecognizeResult( -// context, base64, binding.titleView.getTitle(), inspectionId -// ) + imageFileViewModel.getRecognizeResult( + context, base64, binding.titleView.getTitle(), inspectionId + ) } else { runOnUiThread { "巡检ID异常,请重新建立巡检任务".show(context) diff --git a/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt b/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt index 8be3433..82059ee 100644 --- a/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt +++ b/app/src/main/java/com/casic/br/app/vm/InspectionViewModel.kt @@ -5,6 +5,7 @@ import com.casic.br.app.extensions.getResponseCode import com.casic.br.app.extensions.getResponseMessage import com.casic.br.app.model.AddInspectionResultModel +import com.casic.br.app.model.HiddenTroubleListResultModel import com.casic.br.app.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -20,6 +21,7 @@ private val gson by lazy { Gson() } val addResultModel = MutableLiveData() + val troublesResultModel = MutableLiveData() fun startInspection( context: Context, @@ -43,9 +45,27 @@ it.printStackTrace() }) - fun stopInspection(context: Context, inspectionId: String, endTime: String) = launch({ + fun getHiddenTroublesByInspectionId(context: Context, inspectionId: String) = launch({ + val response = RetrofitServiceManager.getHiddenTroublesByInspectionId(inspectionId) + val responseCode = response.getResponseCode() + if (responseCode == 200) { + troublesResultModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.getResponseMessage().show(context) + } + }, { + it.localizedMessage?.show(context) + }) + + fun stopInspection( + context: Context, inspectionId: String, endTime: String, inspectionAddress: String + ) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.stopInspection(inspectionId, endTime) + val response = RetrofitServiceManager.stopInspection( + inspectionId, endTime, inspectionAddress + ) val responseCode = response.getResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success diff --git a/app/src/main/res/layout/item_hidden_trouble_by_id_l.xml b/app/src/main/res/layout/item_hidden_trouble_by_id_l.xml new file mode 100644 index 0000000..49d32f8 --- /dev/null +++ b/app/src/main/res/layout/item_hidden_trouble_by_id_l.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 27a4c1e..513c513 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,6 +2,7 @@ #FF000000 #FFFFFFFF + #FF00FFFF #FF071459 #80071459