diff --git a/coalMiningApp/app/build.gradle b/coalMiningApp/app/build.gradle index fb10295..9acea61 100644 --- a/coalMiningApp/app/build.gradle +++ b/coalMiningApp/app/build.gradle @@ -26,6 +26,8 @@ android { arg("room.schemaLocation", "$projectDir/schemas") } } + // 设置输出APK文件名格式 + setProperty("archivesBaseName", "煤矿数采终端v${versionName}") } signingConfigs{ @@ -105,4 +107,7 @@ dependencies { implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1" implementation 'com.google.code.gson:gson:2.10.1' + implementation("org.apache.poi:poi:5.2.3") + implementation("org.apache.poi:poi-ooxml:5.2.3") + } \ No newline at end of file diff --git a/coalMiningApp/app/src/main/AndroidManifest.xml b/coalMiningApp/app/src/main/AndroidManifest.xml index 371d9d2..fe52274 100644 --- a/coalMiningApp/app/src/main/AndroidManifest.xml +++ b/coalMiningApp/app/src/main/AndroidManifest.xml @@ -3,7 +3,11 @@ xmlns:tools="http://schemas.android.com/tools" package="com.zmkg.coaloperation"> - + + + + + + + + + diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceAdapter.kt index 53bb06e..d0f16f3 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceAdapter.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceAdapter.kt @@ -49,6 +49,9 @@ class TunnelWorkingFaceAdapter(var list: MutableList) : binding.llFaceRecord.let { if (item.isExpandRecord) it.visible() else it.gone() } + binding.ivFlagEdit.let { + if (item.dataState == "1") it.visible() else it.gone() + } binding.ivExpandRecord.setImageResource( if (item.isExpandRecord) R.drawable.ic_arrow_down_white else R.drawable.ic_arrow_right_gray ) diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceRecordAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceRecordAdapter.kt index cd751cb..50ba583 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceRecordAdapter.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceRecordAdapter.kt @@ -10,6 +10,8 @@ import com.zmkg.coaloperation.R import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity import androidx.core.graphics.toColorInt import com.zmkg.coaloperation.databinding.ListItemTunnelWorkingFaceRecordBinding +import com.zmkg.coaloperation.utils.gone +import com.zmkg.coaloperation.utils.visible class TunnelWorkingFaceRecordAdapter(var list: MutableList) : BaseQuickAdapter( @@ -50,6 +52,11 @@ class TunnelWorkingFaceRecordAdapter(var list: MutableList?=null, + var recordList: MutableList?=null, + var lithologyList: MutableList?=null +) diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/TunnelingBean.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/TunnelingBean.kt index 04d33c8..990d01f 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/TunnelingBean.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/TunnelingBean.kt @@ -33,60 +33,60 @@ import java.io.Serializable // val seamBumpPressure: String?, // val surfaceSupportForm: String? //) - -class TunnelingHomeItemBean { - var createBy: String? = null - var createTime: String? = null - var updateBy: String? = null - var updateTime: String? = null - var remark: String? = null - var recordId: String? = null - var surfaceId: String? = null - var workingDate: String? = null - var teamShift: String? = null - var teamId: String? = null - var teamName: String? = null - var teamLeader: String? = null - var workingFootage: String? = null - var seamDip: String? = null - var seamHeight: String? = null - var waterYield: String? = null - var recordPerson: String? = null - var mineWorkingLith: String? = null -} - -/** - * 新增工作面 给接口的数据 - */ -data class TunnelingFaceAddBean( - - val surfaceName: String? = null, - val totalFootage: String? = null, - - val areaId: Int? = null, - val areaName: String? = null, - val createBy: String? = null, - val createTime: String? = null, - val geologicalType: String? = null, - val hydrogeologicalType: String? = null, - val params: Params? = null, - val planEndDate: String? = null, - val planStartDate: String? = null, - val remark: String? = null, - val seamBumpPressure: String? = null, - val seamGas: String? = null, - val seamId: Int? = null, - val seamIgnition: String? = null, - val seamName: String? = null, - val surfaceAzimuth: String? = null, - val surfaceHeight: String? = null, - val surfaceId: Int? = null, - val surfaceSupportForm: String? = null, - val surfaceWidth: String? = null, - val tunnelNature: String? = null, - val updateBy: String? = null, - val updateTime: String? = null -) +// +//class TunnelingHomeItemBean { +// var createBy: String? = null +// var createTime: String? = null +// var updateBy: String? = null +// var updateTime: String? = null +// var remark: String? = null +// var recordId: String? = null +// var surfaceId: String? = null +// var workingDate: String? = null +// var teamShift: String? = null +// var teamId: String? = null +// var teamName: String? = null +// var teamLeader: String? = null +// var workingFootage: String? = null +// var seamDip: String? = null +// var seamHeight: String? = null +// var waterYield: String? = null +// var recordPerson: String? = null +// var mineWorkingLith: String? = null +//} +// +///** +// * 新增工作面 给接口的数据 +// */ +//data class TunnelingFaceAddBean( +// +// val surfaceName: String? = null, +// val totalFootage: String? = null, +// +// val areaId: Int? = null, +// val areaName: String? = null, +// val createBy: String? = null, +// val createTime: String? = null, +// val geologicalType: String? = null, +// val hydrogeologicalType: String? = null, +// val params: Params? = null, +// val planEndDate: String? = null, +// val planStartDate: String? = null, +// val remark: String? = null, +// val seamBumpPressure: String? = null, +// val seamGas: String? = null, +// val seamId: Int? = null, +// val seamIgnition: String? = null, +// val seamName: String? = null, +// val surfaceAzimuth: String? = null, +// val surfaceHeight: String? = null, +// val surfaceId: Int? = null, +// val surfaceSupportForm: String? = null, +// val surfaceWidth: String? = null, +// val tunnelNature: String? = null, +// val updateBy: String? = null, +// val updateTime: String? = null +//) data class Params( val additionalProp1: String? = null, @@ -98,73 +98,73 @@ data class Params( /** * 工作面详情 */ -data class FaceWorkDetailBean( - val accumulativeFootage: Int, - val areaId: Int, - val areaName: String, - val createBy: String, - val createTime: String, - val geologicalType: String, - val hydrogeologicalType: String, - val latestRecord: LatestRecord, - val params: Params, - val planEndDate: String, - val planStartDate: String, - val remainingFootage: Int, - val remark: String, - val seamBumpPressure: String, - val seamGas: String, - val seamId: Int, - val seamIgnition: String, - val seamName: String, - val surfaceAzimuth: String, - val surfaceHeight: String, - val surfaceId: Int, - val surfaceName: String, - val surfaceSupportForm: String, - val surfaceWidth: String, - val totalFootage: Int, - val tunnelNature: String, - val updateBy: String, - val updateTime: String, - val yesterdayFootage: String, - val monthFootage: String -): Serializable +//data class FaceWorkDetailBean( +// val accumulativeFootage: Int, +// val areaId: Int, +// val areaName: String, +// val createBy: String, +// val createTime: String, +// val geologicalType: String, +// val hydrogeologicalType: String, +// val latestRecord: LatestRecord, +// val params: Params, +// val planEndDate: String, +// val planStartDate: String, +// val remainingFootage: Int, +// val remark: String, +// val seamBumpPressure: String, +// val seamGas: String, +// val seamId: Int, +// val seamIgnition: String, +// val seamName: String, +// val surfaceAzimuth: String, +// val surfaceHeight: String, +// val surfaceId: Int, +// val surfaceName: String, +// val surfaceSupportForm: String, +// val surfaceWidth: String, +// val totalFootage: Int, +// val tunnelNature: String, +// val updateBy: String, +// val updateTime: String, +// val yesterdayFootage: String, +// val monthFootage: String +//): Serializable -data class LatestRecord( - val createBy: String, - val createTime: String, - val mineWorkingLithologyList: MutableList, - val params: Params, - val recordId: Int, - val recordPerson: String, - val remark: String, - val seamDip: Int, - val seamHeight: Int, - val surfaceId: Int, - val surfaceName: String, - val teamId: Int, - val teamLeader: String, - val teamName: String, - val teamShift: Int, - val updateBy: String, - val updateTime: String, - val waterYield: Int, - val workingDate: String, - val workingFootage: Int -):Serializable +//data class LatestRecord( +// val createBy: String, +// val createTime: String, +// val mineWorkingLithologyList: MutableList, +// val params: Params, +// val recordId: Int, +// val recordPerson: String, +// val remark: String, +// val seamDip: Int, +// val seamHeight: Int, +// val surfaceId: Int, +// val surfaceName: String, +// val teamId: Int, +// val teamLeader: String, +// val teamName: String, +// val teamShift: Int, +// val updateBy: String, +// val updateTime: String, +// val waterYield: Int, +// val workingDate: String, +// val workingFootage: Int +//):Serializable - -data class MineWorkingLithology( - val createBy: String, - val createTime: String, - val lithologyId: Int, - val lithologyType: String, - val params: Params, - val positionEnd: Int, - val positionStart: Int, - val recordId: Int, - val remark: String, - val updateBy: String, - val updateTime: String -):Serializable \ No newline at end of file +// +//data class MineWorkingLithology( +// val createBy: String, +// val createTime: String, +// val lithologyId: Int, +// val lithologyType: String, +// val params: Params, +// val positionEnd: Int, +// val positionStart: Int, +// val recordId: Int, +// val remark: String, +// val updateBy: String, +// val updateTime: String +//):Serializable \ No newline at end of file diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/api/HomeApi.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/api/HomeApi.kt index 2bb3bb8..39f3cbd 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/api/HomeApi.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/api/HomeApi.kt @@ -3,7 +3,6 @@ package com.zmkg.coaloperation.data.api import com.zmkg.coaloperation.data.bean.ApiResponse import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity import com.zmkg.coaloperation.retorfit.UrlConfig -import com.zmkg.coaloperation.bean.FaceWorkDetailBean import com.zmkg.coaloperation.ui.home.bean.WaterLedgerBean import okhttp3.RequestBody import retrofit2.http.Body @@ -35,17 +34,17 @@ interface HomeApi { // @GET("/api/mine/tunnelling/surface/record/{recordId}") // suspend fun getTunnelingHomeItemData(@Path("recordId") recordId: String?): ApiResponse> - /** - * 掘进-工作面详情 - */ - @GET("/api/mine/tunnelling/surface/detail/{surfaceId}") - suspend fun getTunnelingSurfaceDetail(@Path("surfaceId") surfaceId: String?): ApiResponse +// /** +// * 掘进-工作面详情 +// */ +// @GET("/api/mine/tunnelling/surface/detail/{surfaceId}") +// suspend fun getTunnelingSurfaceDetail(@Path("surfaceId") surfaceId: String?): ApiResponse /** * 掘进-新增工作面 */ - @POST("/api/mine/tunnelling/surface/add") - suspend fun postTunnellingSurfaceAdd(@Body requestBody: RequestBody): ApiResponse +// @POST("/api/mine/tunnelling/surface/add") +// suspend fun postTunnellingSurfaceAdd(@Body requestBody: RequestBody): ApiResponse @GET("/api/mine/tunnelling/surface/detailList") suspend fun getTunnelHomeList(): ApiResponse?> diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt index 3266ae4..84cb629 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt @@ -20,10 +20,10 @@ interface TunnelWorkingFaceDao { @Update fun update(entity: TunnelWorkingFaceEntity) - @Query("SELECT * FROM tunnel_working_face ORDER BY createTime ASC") + @Query("SELECT * FROM tunnel_working_face ORDER BY createTime DESC") fun getEntityList(): MutableList? - @Query("SELECT * FROM tunnel_working_face WHERE dataState = :dataState ORDER BY createTime ASC") + @Query("SELECT * FROM tunnel_working_face WHERE dataState = :dataState ORDER BY createTime DESC") fun getEntityListByState(dataState: String): MutableList? @Query("SELECT * FROM tunnel_working_face WHERE surfaceId = :surfaceId") diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceRecordDao.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceRecordDao.kt index 2aba4c4..edc19e7 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceRecordDao.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceRecordDao.kt @@ -21,16 +21,16 @@ interface TunnelWorkingFaceRecordDao { @Update fun update(entity: TunnelWorkingFaceRecordEntity) - @Query("SELECT * FROM tunnel_working_face_record WHERE surfaceId = :surfaceId ORDER BY createTime ASC") + @Query("SELECT * FROM tunnel_working_face_record WHERE surfaceId = :surfaceId ORDER BY createTime DESC") fun getEntityList(surfaceId: Long): MutableList? - @Query("SELECT * FROM tunnel_working_face_record WHERE dataState = :dataState ORDER BY createTime ASC") + @Query("SELECT * FROM tunnel_working_face_record WHERE dataState = :dataState ORDER BY createTime DESC") fun getEntityListByState(dataState: String): MutableList? @Query("SELECT * FROM tunnel_working_face_record WHERE surfaceId = :recordId") fun getEntityById(recordId: Long): TunnelWorkingFaceRecordEntity - @Query("SELECT * FROM tunnel_working_face_record WHERE surfaceId = :surfaceId AND latestRecordState = '1' ORDER BY createTime ASC LIMIT 1") + @Query("SELECT * FROM tunnel_working_face_record WHERE surfaceId = :surfaceId AND latestRecordState = '1' ORDER BY createTime DESC LIMIT 1") fun getLastEntity(surfaceId: Long): TunnelWorkingFaceRecordEntity? @Query("DELETE FROM tunnel_working_face_record") diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingFaceRecordActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingFaceRecordActivity.kt index 0c70aed..81ece71 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingFaceRecordActivity.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingFaceRecordActivity.kt @@ -10,17 +10,23 @@ import com.zmkg.coaloperation.R import com.zmkg.coaloperation.adapter.TunnelRoofLithologyAdapter import com.zmkg.coaloperation.base.BaseVMBActivity import com.zmkg.coaloperation.base.viewmodel.TestViewModel +import com.zmkg.coaloperation.bean.TunnelWorkingItem import com.zmkg.coaloperation.databinding.ActivityAddWorkingFaceRecordBinding import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel +import com.zmkg.coaloperation.superfuntion.hideLoading +import com.zmkg.coaloperation.superfuntion.showLoading import com.zmkg.coaloperation.superfuntion.toJson import com.zmkg.coaloperation.utils.DateTimeUtil import com.zmkg.coaloperation.utils.DictUtils +import com.zmkg.coaloperation.utils.ExcelExportUtils +import com.zmkg.coaloperation.utils.FileUtils import com.zmkg.coaloperation.utils.KeyboardUtil import com.zmkg.coaloperation.utils.PickerUtil import com.zmkg.coaloperation.utils.clickWithDebounce +import com.zmkg.coaloperation.utils.formatDecimalString import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -115,13 +121,19 @@ class AddWorkingFaceRecordActivity : mBinding.btnSave.clickWithDebounce { if (showType == 0) { - saveFaceRecord() + judgeInputParam { + saveFaceRecord() + } return@clickWithDebounce } - updateFaceRecord() + judgeInputParam { + updateFaceRecord() + } } mBinding.btnExport.clickWithDebounce { - showToast("开发中……") + judgeInputParam { + exportExcelFile() + } } mBinding.rvLithology.let { @@ -169,46 +181,6 @@ class AddWorkingFaceRecordActivity : } private fun saveFaceRecord() { - if (mBinding.tvWorkingDate.text.isBlank()) { - showToast("请选择施工日期") - return - } - if (mBinding.tvTeamShift.text.isBlank()) { - showToast("请选择施工班次") - return - } - if (mBinding.tvWorkTeam.text.isBlank()) { - showToast("请选择施工队伍") - return - } - if (mBinding.etTeamLeader.text.isBlank()) { - showToast("请输入带班队长") - return - } - if (mBinding.etWorkingFootage.text.isBlank()) { - showToast("请输入本班进尺") - return - } - if (mBinding.etSeamDip.text.isBlank()) { - showToast("请输入煤层倾角") - return - } - if (mBinding.etSeamHeight.text.isBlank()) { - showToast("请输入煤层高") - return - } - if (mBinding.etRecordPerson.text.isBlank()) { - showToast("请输入填写人") - return - } - val emptyDataList = roofLithologyList.filter { - it.positionStart.isBlank() || it.positionEnd.isBlank() || it.lithologyType.isBlank() - } - if (emptyDataList.isNotEmpty()) { - showToast("顶板岩性中存在部分编录点数据为空") - return - } - val faceRecord = TunnelWorkingFaceRecordEntity().also { it.recordId = recordId it.surfaceId = surfaceId @@ -218,9 +190,9 @@ class AddWorkingFaceRecordActivity : it.teamId = mBinding.tvWorkTeam.tag.toString() it.teamLeader = mBinding.etTeamLeader.text.toString().trim() - it.workingFootage = mBinding.etWorkingFootage.text.toString().trim() - it.seamDip = mBinding.etSeamDip.text.toString().trim() - it.seamHeight = mBinding.etSeamHeight.text.toString().trim() + it.workingFootage = mBinding.etWorkingFootage.text.toString().trim().formatDecimalString() + it.seamDip = mBinding.etSeamDip.text.toString().trim().formatDecimalString() + it.seamHeight = mBinding.etSeamHeight.text.toString().trim().formatDecimalString() it.recordPerson = mBinding.etRecordPerson.text.toString().trim() it.createTime = DateTimeUtil.formatDateTime(LocalDateTime.now()) @@ -230,8 +202,8 @@ class AddWorkingFaceRecordActivity : Log.d(TAG, "saveFaceRecord: ${roofLithologyList.toJson()}") workingFaceRecordViewModel.insert(faceRecord) { - EventBus.getDefault().post(faceRecord) roofLithologyViewModel.insertList(roofLithologyList) { + EventBus.getDefault().post(faceRecord) finish() } } @@ -263,18 +235,18 @@ class AddWorkingFaceRecordActivity : it.teamId = mBinding.tvWorkTeam.tag.toString() it.teamLeader = mBinding.etTeamLeader.text.toString().trim() - it.workingFootage = mBinding.etWorkingFootage.text.toString().trim() - it.seamDip = mBinding.etSeamDip.text.toString().trim() - it.seamHeight = mBinding.etSeamHeight.text.toString().trim() + it.workingFootage = mBinding.etWorkingFootage.text.toString().trim().formatDecimalString() + it.seamDip = mBinding.etSeamDip.text.toString().trim().formatDecimalString() + it.seamHeight = mBinding.etSeamHeight.text.toString().trim().formatDecimalString() it.recordPerson = mBinding.etRecordPerson.text.toString().trim() it.createTime = DateTimeUtil.formatDateTime(LocalDateTime.now()) it.dataState = "1" } workingFaceRecordViewModel.update(faceRecord) { - EventBus.getDefault().post(faceRecord) roofLithologyViewModel.deleteList(recordId) { roofLithologyViewModel.insertList(roofLithologyList) { + EventBus.getDefault().post(faceRecord) finish() } } @@ -286,4 +258,89 @@ class AddWorkingFaceRecordActivity : } + private fun judgeInputParam(acton:()-> Unit) { + list.clear() + list.add(TunnelWorkingItem(name = "工作面名称", value = faceName)) + + val workingDate = mBinding.tvWorkingDate.text.toString().trim() + if (workingDate.isBlank()) { + showToast("请选择施工日期") + return + } + list.add(TunnelWorkingItem(name = "施工日期", value = workingDate)) + + val teamShift = mBinding.tvTeamShift.text.toString().trim() + if (teamShift.isBlank()) { + showToast("请选择施工班次") + return + } + list.add(TunnelWorkingItem(name = "施工班次", value = teamShift)) + + val workTeam = mBinding.tvWorkTeam.text.toString().trim() + if (workTeam.isBlank()) { + showToast("请选择施工队伍") + return + } + list.add(TunnelWorkingItem(name = "施工队伍", value = workTeam)) + + val teamLeader = mBinding.etTeamLeader.text.toString().trim() + if (teamLeader.isBlank()) { + showToast("请输入带班队长") + return + } + list.add(TunnelWorkingItem(name = "带班队长", value = teamLeader)) + + val workingFootage = mBinding.etWorkingFootage.text.toString().trim().formatDecimalString() + if (workingFootage.isBlank()) { + showToast("请输入本班进尺") + return + } + list.add(TunnelWorkingItem(name = "本班进尺", value = workingFootage)) + + val seamDip = mBinding.etSeamDip.text.toString().trim().formatDecimalString() + if (seamDip.isBlank()) { + showToast("请输入煤层倾角") + return + } + list.add(TunnelWorkingItem(name = "煤层倾角", value = seamDip)) + + val seamHeight = mBinding.etSeamHeight.text.toString().trim().formatDecimalString() + if (seamHeight.isBlank()) { + showToast("请输入煤层高") + return + } + list.add(TunnelWorkingItem(name = "煤层高", value = seamHeight)) + + val recordPerson = mBinding.etRecordPerson.text.toString().trim() + if (recordPerson.isBlank()) { + showToast("请输入填写人") + return + } + list.add(TunnelWorkingItem(name = "记录人", value = recordPerson)) + + val emptyDataList = roofLithologyList.filter { + it.positionStart.isBlank() || it.positionEnd.isBlank() || it.lithologyType.isBlank() + } + if (emptyDataList.isNotEmpty()) { + showToast("顶板岩性中存在部分编录点数据为空") + return + } + list.add(TunnelWorkingItem(name = "顶板岩性", value = "", items = roofLithologyList)) + + acton() + } + + private val list: MutableList = mutableListOf() + private fun exportExcelFile() { + showLoading() + val fileName = "${faceName}_${mBinding.tvWorkingDate.text}_${System.currentTimeMillis()}.xlsx" + val filePath = FileUtils.getFilePath(fileName) + ExcelExportUtils.exportToExcel(list, filePath) { + window.decorView.postDelayed({ + hideLoading() + showToast("Excel导出完成") + }, 1500) + } + } + } \ No newline at end of file diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt index 2076f43..99977b8 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt @@ -143,8 +143,8 @@ class TunnelingActivity : val index = workingFaceList.indexOfFirst { it.surfaceId == event.surfaceId } if (index == -1) { //新增工作面 - val insertIndex = workingFaceList.size - workingFaceList.add(event) + val insertIndex = 0 + workingFaceList.add(0,event) workingFaceAdapter.notifyItemInserted(insertIndex) workingFaceAdapter.notifyItemRangeChanged(insertIndex, insertIndex+1) return @@ -166,15 +166,18 @@ class TunnelingActivity : faceEntity.records?.let { records -> val index = records.indexOfFirst { it.recordId == event.recordId } if (index == -1) { - records.add(event) + records.add(0,event) } else { records[index] = event } } val recordAdapter = getRecordAdapter(position) recordAdapter.notifyDataSetChanged() + + workingFaceAdapter.notifyItemChanged(position) } + @SuppressLint("SuspiciousIndentation") private fun getRecordAdapter(position:Int):TunnelWorkingFaceRecordAdapter { val viewHolder = mBinding.rvList.findViewHolderForLayoutPosition(position) as TunnelWorkingFaceAdapter.VH diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceRecordActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceRecordActivity.kt index ad925f7..3595138 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceRecordActivity.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceRecordActivity.kt @@ -15,6 +15,7 @@ import com.zmkg.coaloperation.databinding.ActivityWorkingFaceRecordBinding import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel import com.zmkg.coaloperation.utils.DictUtils +import com.zmkg.coaloperation.utils.formatDecimalString import com.zmkg.coaloperation.utils.toJsonString import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -65,10 +66,6 @@ class WorkingFaceRecordActivity : Log.d(TAG, "loadFaceRecord: ${faceRecord.toJsonString()}") faceRecord?.let { loadFaceRecord(it) - roofLithologyViewModel.getEntityList(it.recordId) { lithologyEntities -> - list[6].items = lithologyEntities - adapter.notifyItemChanged(6) - } } } @@ -86,17 +83,23 @@ class WorkingFaceRecordActivity : ) list.add(TunnelWorkingItem(pageType = 1, name = "施工队伍", value = it.teamName)) list.add(TunnelWorkingItem(pageType = 1, name = "带班队长", value = it.teamLeader)) - list.add(TunnelWorkingItem(pageType = 1, name = "本班进尺", value = it.workingFootage)) + list.add(TunnelWorkingItem(pageType = 1, name = "本班进尺", value = "${it.workingFootage?.formatDecimalString()}m")) // val rockList = mutableListOf() // rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "泥")) // rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "砂")) list.add(TunnelWorkingItem(pageType = 1, name = "顶板岩性", value = "", items = null)) - list.add(TunnelWorkingItem(pageType = 1, name = "煤层倾角", value = it.seamDip)) - list.add(TunnelWorkingItem(pageType = 1, name = "煤层高", value = it.seamHeight)) + list.add(TunnelWorkingItem(pageType = 1, name = "煤层倾角", value = "${it.seamDip?.formatDecimalString()}°")) + list.add(TunnelWorkingItem(pageType = 1, name = "煤层高", value = "${it.seamHeight?.formatDecimalString()}m")) list.add(TunnelWorkingItem(pageType = 1, name = "记录人", value = it.recordPerson)) adapter.notifyDataSetChanged() + + + roofLithologyViewModel.getEntityList(it.recordId) { lithologyEntities -> + list[6].items = lithologyEntities + adapter.notifyItemChanged(6) + } } override fun bindEvent() { diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceStatisticsActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceStatisticsActivity.kt index 605d66c..1d98e18 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceStatisticsActivity.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceStatisticsActivity.kt @@ -12,7 +12,6 @@ import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel import com.zmkg.coaloperation.adapter.TunnelingRockNatureAdapter import com.zmkg.coaloperation.databinding.ActivityWorkingFaceStatisticsBinding -import com.zmkg.coaloperation.bean.FaceWorkDetailBean import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel import com.zmkg.coaloperation.utils.ScreenUtil import com.zmkg.coaloperation.utils.formatDecimalString @@ -91,7 +90,7 @@ class WorkingFaceStatisticsActivity : workingFaceRecordViewModel.getLastEntity(detail.surfaceId) { record -> record?.let { mBinding.tvYesterdayLen.text = "${it.workingFootage?.formatDecimalString()}m" - mBinding.tvWorkingFaceAngle.text = "${it.seamDip?.formatDecimalString()}" + mBinding.tvWorkingFaceAngle.text = "${it.seamDip?.formatDecimalString()}°" // mBinding.tvMonthAccumulateLen.text = "${it.monthFootage}m" mBinding.tvWorkingFaceWater.text = "${it.waterYield?.formatDecimalString()}" @@ -134,9 +133,9 @@ class WorkingFaceStatisticsActivity : // } } - private fun setDataView(bean: FaceWorkDetailBean?) { - bean ?: return - } +// private fun setDataView(bean: FaceWorkDetailBean?) { +// bean ?: return +// } private fun stringToDouble(numText: String?): Double { if (numText.isNullOrEmpty() || numText.isBlank()) return 0.toDouble() diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/fragment/UserFragment.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/fragment/UserFragment.kt index 9f2fbc2..4fc71a3 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/fragment/UserFragment.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/fragment/UserFragment.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import com.zmkg.coaloperation.R import com.zmkg.coaloperation.base.BaseVMBFragment +import com.zmkg.coaloperation.bean.TunnelSubmitData import com.zmkg.coaloperation.databinding.FragmentUserBinding import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel @@ -30,9 +31,9 @@ import kotlinx.coroutines.launch class UserFragment : BaseVMBFragment(R.layout.fragment_user) { - companion object { - const val TAG = "UserFragment" - } + companion object { + const val TAG = "UserFragment" + } private val workingFaceViewModel: TunnelWorkingFaceViewModel by lazy { ViewModelProvider(this)[TunnelWorkingFaceViewModel::class.java] @@ -64,12 +65,37 @@ class UserFragment : override fun initView(root: View?, savedInstanceState: Bundle?) { mBinding.apply { - networkConfig.setOrderStateInfo("网络配置", R.mipmap.network) - dataPull.setOrderStateInfo("数据拉取", R.drawable.ic_data_pull) - cacheManage.setOrderStateInfo("缓存管理", R.mipmap.buffer) - checkUpdate.setOrderStateInfo("检查更新", R.mipmap.checkupdate) - systemExit.setOrderStateInfo("系统退出", R.mipmap.systemexit) - aboutUs.setOrderStateInfo("关于我们", R.mipmap.about_us) + networkConfig.setOrderStateInfo( + "网络配置", + R.mipmap.network, + R.drawable.bg_icon_network_config + ) + dataPull.setOrderStateInfo( + "数据拉取", + R.drawable.ic_data_pull, + R.drawable.bg_icon_data_pull + ) + dataPush.setOrderStateInfo( + "数据推送", + R.drawable.ic_data_push, + R.drawable.bg_icon_data_push + ) + cacheManage.setOrderStateInfo( + "缓存管理", + R.mipmap.buffer, + R.drawable.bg_icon_cache_manage + ) + checkUpdate.setOrderStateInfo( + "检查更新", + R.mipmap.checkupdate, + R.drawable.bg_icon_check_update + ) + systemExit.setOrderStateInfo( + "系统退出", + R.mipmap.systemexit, + R.drawable.bg_icon_system_exit + ) + aboutUs.setOrderStateInfo("关于我们", R.mipmap.about_us, R.drawable.bg_icon_about_us) } } @@ -78,6 +104,7 @@ class UserFragment : addClickViews( networkConfig, dataPull, + dataPush, cacheManage, checkUpdate, systemExit, @@ -94,13 +121,12 @@ class UserFragment : } R.id.data_pull -> { - showLoading("加载中") checkDataState { state -> if (state) { showToast("本地存在待提交的数据") return@checkDataState } - + showLoading("加载中") workingFaceViewModel.deleteAll { workingFaceRecordViewModel.deleteAll { roofLithologyViewModel.deleteAll { @@ -115,6 +141,10 @@ class UserFragment : } } + R.id.data_push -> { + dataPush() + } + R.id.cache_manage -> { toActivity(CacheManageActivity::class.java) } @@ -156,7 +186,7 @@ class UserFragment : list.forEach { faceEntity -> faceEntity.records?.let { recordList -> val lastRecordId = faceEntity.latestRecord?.recordId - val record = recordList.firstOrNull {it.recordId == lastRecordId} + val record = recordList.firstOrNull { it.recordId == lastRecordId } record?.latestRecordState = "1" //保存工作面记录数据 @@ -207,4 +237,27 @@ class UserFragment : } } + private fun dataPush() { + showLoading() + val submitData = TunnelSubmitData() + workingFaceViewModel.getEntityListByState("1") { faceList -> + submitData.faceList = faceList + workingFaceRecordViewModel.getEntityListByState("1") { recordList -> + submitData.recordList = recordList + roofLithologyViewModel.getEntityListByState("1") { lithologyList -> + hideLoading() + submitData.lithologyList = lithologyList + if (submitData.faceList.isNullOrEmpty() || + submitData.recordList.isNullOrEmpty() || + submitData.lithologyList.isNullOrEmpty() + ) { + showToast("暂无推送数据") + return@getEntityListByState + } + Log.d(TAG, "dataPush: ${submitData.toJsonString()}") + } + } + } + } + } diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DateTimeUtil.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DateTimeUtil.kt index a07207a..ae6b034 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DateTimeUtil.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DateTimeUtil.kt @@ -9,6 +9,7 @@ import java.util.Date object DateTimeUtil { const val YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss" + const val YYYY_MM_DD = "yyyy-MM-dd" fun formatDateTime(dateTime: LocalDateTime, pattern: String = YYYY_MM_DD_HH_MM_SS): String { val formatter = DateTimeFormatter.ofPattern(pattern) diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/ExcelExportUtils.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/ExcelExportUtils.kt new file mode 100644 index 0000000..2ac1576 --- /dev/null +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/ExcelExportUtils.kt @@ -0,0 +1,71 @@ +package com.zmkg.coaloperation.utils + +import android.util.Log +import com.zmkg.coaloperation.bean.TunnelWorkingItem +import org.apache.poi.ss.util.CellRangeAddress +import org.apache.poi.xssf.usermodel.XSSFWorkbook +import java.io.FileOutputStream + +object ExcelExportUtils { + fun exportToExcel(list: List, filePath: String, block:()-> Unit) { + val workbook = XSSFWorkbook() // 创建XLSX格式工作簿 + val sheet = workbook.createSheet("Sheet1") + + // 创建表头 + val mainHeader = sheet.createRow(0) + + list.forEachIndexed { index, item -> + mainHeader.createCell(index).setCellValue(item.name) + } + + val subHeader = sheet.createRow(1) + for (i in 0 until list.size - 1) { + subHeader.createCell(i).setCellValue("") + } + val subTitleList = mutableListOf("起始值", "结束值", "岩性") + subTitleList.forEachIndexed { index, subTitle -> + subHeader.createCell(list.size - 1 + index).setCellValue(subTitle) + } + sheet.addMergedRegion(CellRangeAddress(0, 0, 9, 11)) + for (i in 0 until list.size - 1) { + sheet.addMergedRegion(CellRangeAddress(0, 1, i, i)) + } + var rowNum = 2 + var row = sheet.createRow(rowNum) + for (i in 0 until list.size - 1) { + row.createCell(i).setCellValue(list[i].value) + } + + list[list.size - 1].items?.let { + for (i in 0 until it.size) { + if (i > 0) { + rowNum++ + row = sheet.createRow(rowNum) + } + row.createCell(0 + list.size - 1).setCellValue(it[i].positionStart) + row.createCell(1 + list.size - 1).setCellValue(it[i].positionEnd) + row.createCell(2 + list.size - 1).setCellValue(it[i].lithologyType) + } + } + + // 填充数据 +// data.forEachIndexed { index, item -> +// val row = sheet.createRow(index + 1) +// row.createCell(0).setCellValue(item.id) +// row.createCell(1).setCellValue(item.name) +// } + + // 自动调整列宽 +// for (i in 0 until 9) { +// sheet.autoSizeColumn(i) +// } + + // 写入文件 + FileOutputStream(filePath).use { workbook.write(it) } + workbook.close() + Log.d("ExcelExportUtils", "exportToExcel: $filePath") + block() + } +} + +data class DataBean(val id: Int, val name: String) diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/FileUtils.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/FileUtils.kt new file mode 100644 index 0000000..f182234 --- /dev/null +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/FileUtils.kt @@ -0,0 +1,47 @@ +package com.zmkg.coaloperation.utils + +import android.os.Environment +import java.io.File +import java.io.FileOutputStream +import java.io.IOException + +object FileUtils { + + fun getFilePath(fileName:String): String { + val parentPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + val path = File(parentPath, "煤矿数采终端") + if (!path.exists()) path.mkdirs() + val file = File(path, fileName) + if (!file.exists()) file.createNewFile() + return file.absolutePath + } + + fun saveToPublicDirectory(fileName: String, content: String) { + val dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + val appDir = File(dir, "dcmp") + if (!appDir.exists()) appDir.mkdirs() + + val file = File(appDir, fileName) + try { + FileOutputStream(file).use { it.write(content.toByteArray()) } + } catch (e: IOException) { + e.printStackTrace() + } + } +// private fun requestStoragePermission() { +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { +// if (!Environment.isExternalStorageManager()) { +// val intent = Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION) +// startActivity(intent) +// } +// } else { +// ActivityCompat.requestPermissions( +// this, +// arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), +// REQUEST_CODE +// ) +// } +// } + + +} \ No newline at end of file diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/CustomInfoView.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/CustomInfoView.kt index ef50d4e..f3bbcd6 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/CustomInfoView.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/CustomInfoView.kt @@ -8,6 +8,8 @@ import android.widget.RelativeLayout import androidx.databinding.DataBindingUtil import com.zmkg.coaloperation.R import com.zmkg.coaloperation.databinding.CustomMyInfoViewBinding +import com.zmkg.coaloperation.utils.gone +import com.zmkg.coaloperation.utils.visible /** * 文本和跳转 @@ -21,15 +23,14 @@ class CustomInfoView(context: Context?, attrs: AttributeSet?) : RelativeLayout(c R.layout.custom_my_info_view, this,true) - fun setOrderStateInfo(name:String, id:Int){ + fun setOrderStateInfo(name:String, imgResId:Int, bgResId: Int){ mBinding.apply { - if (id==0) { - customInfoMenuIcon.visibility=View.GONE - }else{ - customInfoMenuIcon.visibility=View.VISIBLE + customInfoMenuIcon.run { + if (imgResId == 0) gone() else visible() + setImageResource(imgResId) + setBackgroundResource(bgResId) } - customInfoMenuIcon.setImageResource(id) - customInfoMenuName.setText(name) + customInfoMenuName.text = name } } diff --git a/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_data_push.png b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_data_push.png new file mode 100644 index 0000000..97d08fb Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_data_push.png differ diff --git a/coalMiningApp/app/src/main/res/drawable/bg_icon_about_us.xml b/coalMiningApp/app/src/main/res/drawable/bg_icon_about_us.xml new file mode 100644 index 0000000..4c844ab --- /dev/null +++ b/coalMiningApp/app/src/main/res/drawable/bg_icon_about_us.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/drawable/bg_icon_cache_manage.xml b/coalMiningApp/app/src/main/res/drawable/bg_icon_cache_manage.xml new file mode 100644 index 0000000..e4fce57 --- /dev/null +++ b/coalMiningApp/app/src/main/res/drawable/bg_icon_cache_manage.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/coalMiningApp/app/src/main/res/drawable/bg_icon_check_update.xml b/coalMiningApp/app/src/main/res/drawable/bg_icon_check_update.xml new file mode 100644 index 0000000..2f1be6a --- /dev/null +++ b/coalMiningApp/app/src/main/res/drawable/bg_icon_check_update.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/drawable/bg_icon_data_pull.xml b/coalMiningApp/app/src/main/res/drawable/bg_icon_data_pull.xml new file mode 100644 index 0000000..878e3ab --- /dev/null +++ b/coalMiningApp/app/src/main/res/drawable/bg_icon_data_pull.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/drawable/bg_icon_data_push.xml b/coalMiningApp/app/src/main/res/drawable/bg_icon_data_push.xml new file mode 100644 index 0000000..2bd5c88 --- /dev/null +++ b/coalMiningApp/app/src/main/res/drawable/bg_icon_data_push.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/drawable/bg_icon_network_config.xml b/coalMiningApp/app/src/main/res/drawable/bg_icon_network_config.xml new file mode 100644 index 0000000..d94bfff --- /dev/null +++ b/coalMiningApp/app/src/main/res/drawable/bg_icon_network_config.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/drawable/bg_icon_system_exit.xml b/coalMiningApp/app/src/main/res/drawable/bg_icon_system_exit.xml new file mode 100644 index 0000000..2bbda2f --- /dev/null +++ b/coalMiningApp/app/src/main/res/drawable/bg_icon_system_exit.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/drawable/ic_avatar.png b/coalMiningApp/app/src/main/res/drawable/ic_avatar.png new file mode 100644 index 0000000..a3ec41d Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable/ic_avatar.png differ diff --git a/coalMiningApp/app/src/main/res/drawable/ic_flag_edit.xml b/coalMiningApp/app/src/main/res/drawable/ic_flag_edit.xml new file mode 100644 index 0000000..78afdd7 --- /dev/null +++ b/coalMiningApp/app/src/main/res/drawable/ic_flag_edit.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/layout/custom_my_info_view.xml b/coalMiningApp/app/src/main/res/layout/custom_my_info_view.xml index 87ee061..8c7ac1a 100644 --- a/coalMiningApp/app/src/main/res/layout/custom_my_info_view.xml +++ b/coalMiningApp/app/src/main/res/layout/custom_my_info_view.xml @@ -7,49 +7,44 @@ - + android:paddingHorizontal="15dp"> - - - - - - - + android:scaleType="fitCenter" + android:padding="11dp" + tools:src="@mipmap/network" + tools:background="@drawable/bg_icon_network_config"/> + - - + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/layout/fragment_home.xml b/coalMiningApp/app/src/main/res/layout/fragment_home.xml index 49291b7..6b2e962 100644 --- a/coalMiningApp/app/src/main/res/layout/fragment_home.xml +++ b/coalMiningApp/app/src/main/res/layout/fragment_home.xml @@ -59,6 +59,10 @@ android:layout_below="@+id/title_sec" android:layout_marginHorizontal="5dp" android:layout_marginTop="8dp" + tools:itemCount="6" + app:spanCount="2" + android:overScrollMode="never" + app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" tools:listitem="@layout/item_home_menu_left_right" /> + + @@ -92,7 +93,8 @@ android:layout_height="68dp" android:layout_centerHorizontal="true" android:layout_marginTop="60dp" - android:background="#e3e3e3" /> + app:srcCompat="@drawable/ic_avatar"/> + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/layout/item_home_menu_left_right.xml b/coalMiningApp/app/src/main/res/layout/item_home_menu_left_right.xml index 8bbfe27..e7ac021 100644 --- a/coalMiningApp/app/src/main/res/layout/item_home_menu_left_right.xml +++ b/coalMiningApp/app/src/main/res/layout/item_home_menu_left_right.xml @@ -7,34 +7,36 @@ - + + - - - + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/layout/item_home_menu_top_bottom.xml b/coalMiningApp/app/src/main/res/layout/item_home_menu_top_bottom.xml index 88c6509..a6c6022 100644 --- a/coalMiningApp/app/src/main/res/layout/item_home_menu_top_bottom.xml +++ b/coalMiningApp/app/src/main/res/layout/item_home_menu_top_bottom.xml @@ -7,9 +7,11 @@ - - + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/layout/list_item_rock.xml b/coalMiningApp/app/src/main/res/layout/list_item_rock.xml index 602d7c4..3794596 100644 --- a/coalMiningApp/app/src/main/res/layout/list_item_rock.xml +++ b/coalMiningApp/app/src/main/res/layout/list_item_rock.xml @@ -24,7 +24,7 @@ android:maxLines="1" android:textCursorDrawable="@drawable/cursor_white" android:minWidth="30dp" - android:maxWidth="35dp" + android:maxWidth="55dp" android:paddingStart="5dp" android:paddingEnd="5dp" android:textColor="@color/white" @@ -47,7 +47,7 @@ android:maxLines="1" android:textCursorDrawable="@drawable/cursor_white" android:minWidth="30dp" - android:maxWidth="35dp" + android:maxWidth="55dp" android:paddingStart="5dp" android:paddingEnd="5dp" android:textColor="@color/white" @@ -72,7 +72,7 @@ android:maxLines="1" android:textCursorDrawable="@drawable/cursor_white" android:minWidth="30dp" - android:maxWidth="35dp" + android:maxWidth="55dp" android:paddingStart="5dp" android:paddingEnd="5dp" android:textColor="@color/white" diff --git a/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face.xml b/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face.xml index cb1e861..923f70c 100644 --- a/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face.xml +++ b/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face.xml @@ -26,10 +26,22 @@ app:shapeStrokeColor="#FF26FFEB" app:shapeStrokeWidth="0.5dp"> + + + + + diff --git a/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face_record.xml b/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face_record.xml index 4263451..7117155 100644 --- a/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face_record.xml +++ b/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face_record.xml @@ -8,7 +8,7 @@ - @@ -68,7 +68,21 @@ android:layout_width="match_parent" android:layout_height="1dp" app:dividerColor="#282C38" + android:layout_gravity="bottom" android:visibility="visible"/> - + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/xml/file_paths.xml b/coalMiningApp/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..ffa74ab --- /dev/null +++ b/coalMiningApp/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file