Browse Source

1.添加获取理疗报告功能

王鹏鹏 2 years ago
parent
commit
6a5ae0ddfc

+ 3 - 1
.idea/misc.xml

@@ -572,6 +572,7 @@
         <entry key="..\:/workspace/hcp-pads/webview/src/main/res/layout/activity_bridge_web.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/webview/src/main/res/layout/activity_tencent_webview.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/hcp-pads/webview/src/main/res/layout/activity_webview.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/drawable/bg_record_title.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/drawable/bg_total_training_duration.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/drawable/bg_training_daily.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/drawable/bg_work_benches_btn.xml" value="0.164" />
@@ -586,13 +587,14 @@
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/fragment_brain_ability.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/fragment_data_monitor.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/fragment_train_content.xml" value="0.23697916666666666" />
-        <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/fragment_train_report.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/fragment_train_report.xml" value="0.41704857928505956" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_data_monitor.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_free_training.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_free_training_type.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_game_list.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_service_package_type.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_task.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_train_report.xml" value="0.536" />
         <entry key="..\:/workspace/yingyangfly/app/src/main/res/layout/activity_main.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/yingyangfly/app/src/main/res/layout/activity_push.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/yingyangfly/baselib/src/main/res/drawable/bg_center_toast.xml" value="0.2265" />

+ 18 - 0
baselib/src/main/java/com/yingyangfly/baselib/ext/ExtendFun.kt

@@ -88,6 +88,24 @@ fun timeFormat(beforeTime: String): String {
     } catch (e: Exception) {
         beforeTime
     }
+}
+
 
+/**
+ * 时间格式转换工具
+ *
+ * @param beforeTime 2022-09-04T08:56:35.000+0000
+ * @return 2022-09-04 08:56:35
+ */
+@SuppressLint("SimpleDateFormat")
+fun timeFormatByTime(beforeTime: String): String {
+    return try {
+        val sdf1 = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
+        val sdf2 = SimpleDateFormat("yyyy-MM-dd")
+        val date = sdf1.parse(beforeTime)
+        sdf2.format(date)
+    } catch (e: Exception) {
+        beforeTime
+    }
 }
 

+ 0 - 1
workbenches/src/main/java/com/yingyang/workbenches/adapter/FreeTrainTypeAdapter.kt

@@ -6,7 +6,6 @@ import com.yingyang.workbenches.databinding.ItemFreeTrainingTypeBinding
 import com.yingyang.workbenches.entity.TrainTypeBean
 import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
-import com.yingyangfly.baselib.ext.setTextColorResource
 
 /**
  * 自由训练类型adapter

+ 0 - 1
workbenches/src/main/java/com/yingyang/workbenches/adapter/LeisureBrainTypeAdapter.kt

@@ -6,7 +6,6 @@ import com.yingyang.workbenches.databinding.ItemFreeTrainingTypeBinding
 import com.yingyang.workbenches.entity.TrainTypeBean
 import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
-import com.yingyangfly.baselib.ext.setTextColorResource
 
 /**
  * 休闲健脑类型adapter

+ 15 - 6
workbenches/src/main/java/com/yingyang/workbenches/adapter/TrainReportAdapter.kt

@@ -2,24 +2,33 @@ package com.yingyang.workbenches.adapter
 
 import com.yingyang.workbenches.R
 import com.yingyang.workbenches.databinding.ItemTrainReportBinding
+import com.yingyang.workbenches.entity.RecordBeans
 import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.timeFormat
+import com.yingyangfly.baselib.ext.timeFormatByTime
 
 /**
  * 训练报告adapter
  */
 class TrainReportAdapter(override val layoutId: Int = R.layout.item_train_report) :
-    BaseDataBindingAdapter<String, ItemTrainReportBinding>() {
+    BaseDataBindingAdapter<RecordBeans, ItemTrainReportBinding>() {
 
     var onReportImageClickListener: ((
-        bean: String,
-        position: Int
+        bean: String
     ) -> Unit)? = null
 
-    override fun onBindViewHolder(binding: ItemTrainReportBinding, item: String, position: Int) {
+    override fun onBindViewHolder(
+        binding: ItemTrainReportBinding,
+        item: RecordBeans,
+        position: Int
+    ) {
         binding.data = item
-        binding.layoutReport.setOnSingleClickListener {
-            onReportImageClickListener?.invoke(item, position)
+        binding.tvDate.text = timeFormat(item.createTime)
+        val index = position + 1
+        binding.tvNum.text = index.toString()
+        binding.tvDetails.setOnSingleClickListener {
+            onReportImageClickListener?.invoke(timeFormatByTime(item.createTime))
         }
     }
 }

+ 1 - 4
workbenches/src/main/java/com/yingyang/workbenches/entity/GetTrainReportEvent.kt

@@ -3,7 +3,4 @@ package com.yingyang.workbenches.entity
 /**
  * 获取理疗报告
  */
-class GetTrainReportEvent {
-    var isRefresh = false
-    var showLoading = false
-}
+data class GetTrainReportEvent(var isRefresh: Boolean, var showLoading: Boolean)

+ 36 - 0
workbenches/src/main/java/com/yingyang/workbenches/entity/TrainReportBean.kt

@@ -0,0 +1,36 @@
+package com.yingyang.workbenches.entity
+
+data class TrainReportBean(
+    val list: TrainReportList,
+    val url: String
+)
+
+data class TrainReportList(
+    val current: Int,
+    val pages: Int,
+    val records: List<RecordBeans>,
+    val size: Int,
+    val total: Int
+)
+
+data class RecordBeans(
+    val createBy: String,
+    val createTime: String,
+    val currentTaskNum: Int,
+    val details: Any,
+    val gameCodes: String,
+    val gameNames: String,
+    val id: String,
+    val orgCode: String,
+    val orgName: String,
+    val status: String,
+    val taskCover: String,
+    val taskDesn: String,
+    val taskName: String,
+    val taskStartTime: String,
+    val totalTaskNum: Int,
+    val treatmentId: String,
+    val updateBy: String,
+    val updateTime: String,
+    val userId: String
+)

+ 1 - 1
workbenches/src/main/java/com/yingyang/workbenches/freetraining/FreeTrainViewModel.kt

@@ -1,9 +1,9 @@
 package com.yingyang.workbenches.freetraining
 
 import com.yingyang.workbenches.entity.FreeTrainBean
-import com.yingyangfly.baselib.bean.Record
 import com.yingyang.workbenches.entity.TrainTypeBean
 import com.yingyang.workbenches.net.WORKBENCHES_API
+import com.yingyangfly.baselib.bean.Record
 import com.yingyangfly.baselib.mvvm.BaseViewModel
 
 /**

+ 1 - 1
workbenches/src/main/java/com/yingyang/workbenches/net/WorkbenchesApiService.kt

@@ -92,5 +92,5 @@ interface WorkbenchesApiService {
      * 查询理疗报告列表
      */
     @POST("app/task/findMyAllTask")
-    suspend fun findMyAllTask(@Body requestBody: RequestBody): BaseResp<Any>
+    suspend fun findMyAllTask(@Body requestBody: RequestBody): BaseResp<TrainReportBean>
 }

+ 1 - 4
workbenches/src/main/java/com/yingyang/workbenches/traindata/TrainDataActivity.kt

@@ -53,10 +53,7 @@ class TrainDataActivity : BaseFragmentActivity<ActivityTrainDataBinding>(), View
                     }
 
                     3 -> {
-                        RxBus.get().send(RxBusCodes.GetTrainReport, GetTrainReportEvent().apply {
-                            showLoading = true
-                            isRefresh = true
-                        })
+                        RxBus.get().send(RxBusCodes.GetTrainReport, GetTrainReportEvent(true, true))
                     }
                 }
             }

+ 47 - 8
workbenches/src/main/java/com/yingyang/workbenches/trainreport/TrainReportFragment.kt

@@ -1,11 +1,14 @@
 package com.yingyang.workbenches.trainreport
 
-import android.util.Log
+import android.text.TextUtils
 import com.yingyang.workbenches.adapter.TrainReportAdapter
 import com.yingyang.workbenches.databinding.FragmentTrainReportBinding
 import com.yingyang.workbenches.entity.GetTrainReportEvent
+import com.yingyang.workbenches.entity.RecordBeans
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMFragment
+import com.yingyangfly.baselib.router.RouterUrlCommon
+import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.baselib.utils.User
 import gorden.rxbus2.Subscribe
@@ -16,8 +19,9 @@ import gorden.rxbus2.ThreadMode
  */
 class TrainReportFragment : BaseMVVMFragment<FragmentTrainReportBinding, TrainReportViewModel>() {
 
+    private var url = ""
     private var page = 1
-    private var reportList = mutableListOf<String>()
+    private var reportList = mutableListOf<RecordBeans>()
 
     /**
      * 训练报告adapter
@@ -31,17 +35,32 @@ class TrainReportFragment : BaseMVVMFragment<FragmentTrainReportBinding, TrainRe
             rvTrainReport.adapter = adapter
             adapter.setData(reportList)
         }
-        adapter.onReportImageClickListener = { bean, position ->
-
+        adapter.onReportImageClickListener = {
+            if (TextUtils.isEmpty(url).not()) {
+                val trainingDailyUrl = url +
+                        "?userId=" + User.getUserId() + "&time=" + it + "&userToken=" + User.getToken()
+                JumpUtil.jumpActivityWithUrl(
+                    RouterUrlCommon.load_web_view,
+                    trainingDailyUrl,
+                    mContext
+                )
+            }
         }
     }
 
     override fun initListener() {
-
+        binding {
+            swipTrainReport.setOnRefreshListener {
+                loadData(GetTrainReportEvent(true, false))
+            }
+            swipTrainReport.setOnLoadMoreListener {
+                loadData(GetTrainReportEvent(false, false))
+            }
+        }
     }
 
     override fun initData() {
-
+        loadData(GetTrainReportEvent(true, true))
     }
 
     /**
@@ -53,12 +72,32 @@ class TrainReportFragment : BaseMVVMFragment<FragmentTrainReportBinding, TrainRe
             page = 1
         } else {
             page++
+            binding.swipTrainReport.resetNoMoreData()
         }
-        Log.e("wpp", User.getToken())
         viewModel.findMyAllTask(page, event.showLoading, fail = {
+            endRefresh()
             it.toast()
         }, success = {
-
+            endRefresh()
+            if(event.isRefresh) {
+                reportList.clear()
+            }
+            if (it != null && it.list != null && it.list.records.isNullOrEmpty().not()) {
+                url = it.url
+                reportList.addAll(it.list.records)
+            }
+            adapter.showEmptyView = reportList.isEmpty()
+            adapter.setData(reportList)
         })
     }
+
+    /**
+     * 结束刷新
+     */
+    private fun endRefresh() {
+        binding {
+            swipTrainReport.finishRefresh()
+            swipTrainReport.finishLoadMore()
+        }
+    }
 }

+ 2 - 3
workbenches/src/main/java/com/yingyang/workbenches/trainreport/TrainReportViewModel.kt

@@ -1,9 +1,8 @@
 package com.yingyang.workbenches.trainreport
 
-import com.yingyang.workbenches.entity.*
+import com.yingyang.workbenches.entity.TrainReportBean
 import com.yingyang.workbenches.net.WORKBENCHES_API
 import com.yingyangfly.baselib.bean.PagingBean
-import com.yingyangfly.baselib.dialog.GameLoadingDialog
 import com.yingyangfly.baselib.mvvm.BaseViewModel
 import com.yingyangfly.baselib.net.XUtils
 import com.yingyangfly.baselib.utils.GsonUtil
@@ -21,7 +20,7 @@ class TrainReportViewModel : BaseViewModel() {
         index: Int,
         showLoading: Boolean,
         fail: ((msg: String) -> Unit)? = null,
-        success: ((success: Any?) -> Unit)? = null,
+        success: ((success: TrainReportBean?) -> Unit)? = null,
     ) = launchFlow(showLoading) {
         val requestBean = PagingBean().apply {
             page = index

+ 9 - 6
workbenches/src/main/res/layout/fragment_train_report.xml

@@ -28,22 +28,28 @@
 
             <TextView
                 style="@style/text_report_item"
-                android:paddingStart="@dimen/divider_88px"
                 android:text="@string/report_number"
-                android:textColor="@android:color/white"
-                tools:ignore="RtlSymmetry" />
+                android:gravity="center"
+                android:textColor="@android:color/white" />
 
             <TextView
                 style="@style/text_report_item"
                 android:text="@string/date"
+                android:gravity="center"
                 android:textColor="@android:color/white" />
 
+            <TextView
+                style="@style/text_report_item" />
+
         </LinearLayout>
 
         <com.scwang.smartrefresh.layout.SmartRefreshLayout
             android:id="@+id/swipTrainReport"
             android:layout_width="match_parent"
             android:layout_height="0dp"
+            android:layout_marginStart="@dimen/divider_36px"
+            android:layout_marginTop="@dimen/divider_2px"
+            android:layout_marginEnd="@dimen/divider_36px"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -53,9 +59,6 @@
                 android:id="@+id/rvTrainReport"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:layout_marginStart="@dimen/divider_36px"
-                android:layout_marginTop="@dimen/divider_2px"
-                android:layout_marginEnd="@dimen/divider_36px"
                 app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
 
         </com.scwang.smartrefresh.layout.SmartRefreshLayout>

+ 9 - 6
workbenches/src/main/res/layout/item_train_report.xml

@@ -7,7 +7,7 @@
 
         <variable
             name="data"
-            type="java.lang.String" />
+            type="com.yingyang.workbenches.entity.RecordBeans" />
     </data>
 
     <LinearLayout
@@ -21,15 +21,18 @@
 
         <TextView
             android:id="@+id/tvNum"
-            style="@style/text_report_item"
-            android:paddingStart="@dimen/divider_88px"
-            android:text="01"
-            tools:ignore="RtlSymmetry" />
+            style="@style/text_report_item" />
 
         <TextView
             android:id="@+id/tvDate"
             style="@style/text_report_item"
-            android:text="2023年08月05日" />
+            android:gravity="center" />
+
+        <TextView
+            android:id="@+id/tvDetails"
+            style="@style/text_report_item"
+            android:gravity="center"
+            android:text="@string/detail" />
 
     </LinearLayout>
 </layout>

+ 2 - 1
workbenches/src/main/res/values/styles.xml

@@ -100,8 +100,9 @@
 
     <style name="text_report_item" tools:ignore="ResourceName">
         <item name="android:layout_width">0dp</item>
-        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_height">match_parent</item>
         <item name="android:layout_weight">1</item>
+        <item name="android:gravity">center</item>
         <item name="android:textSize">@dimen/divider_24px</item>
         <item name="android:textColor">@color/color_FF2B70FF</item>
     </style>