diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java new file mode 100644 index 0000000..a1d6627 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java @@ -0,0 +1,100 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class LogDetailModel { + + private int code; + private List data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String createTime; + private String createUser; + private String createUserName; + private String id; + private String orderId; + private String recordContent; + private String remark; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getRecordContent() { + return recordContent; + } + + public void setRecordContent(String recordContent) { + this.recordContent = recordContent; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java new file mode 100644 index 0000000..a1d6627 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java @@ -0,0 +1,100 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class LogDetailModel { + + private int code; + private List data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String createTime; + private String createUser; + private String createUserName; + private String id; + private String orderId; + private String recordContent; + private String remark; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getRecordContent() { + return recordContent; + } + + public void setRecordContent(String recordContent) { + this.recordContent = recordContent; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 90d2aa3..6e7a0c9 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -204,6 +204,15 @@ ): String /** + * 获取委托书操作Log + */ + @POST("/business/order/optionRecord") + suspend fun getEntrustLog( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 接收委托书 */ @POST("/business/order/receive") diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java new file mode 100644 index 0000000..a1d6627 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java @@ -0,0 +1,100 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class LogDetailModel { + + private int code; + private List data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String createTime; + private String createUser; + private String createUserName; + private String id; + private String orderId; + private String recordContent; + private String remark; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getRecordContent() { + return recordContent; + } + + public void setRecordContent(String recordContent) { + this.recordContent = recordContent; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 90d2aa3..6e7a0c9 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -204,6 +204,15 @@ ): String /** + * 获取委托书操作Log + */ + @POST("/business/order/optionRecord") + suspend fun getEntrustLog( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 接收委托书 */ @POST("/business/order/receive") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index f28bb00..a6affba 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -436,6 +436,18 @@ } /** + * 获取委托书操作Log + */ + suspend fun getEntrustLog(id: String): String { + val paramObject = JSONObject() + paramObject["id"] = id + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getEntrustLog(AuthenticationHelper.token!!, requestBody) + } + + /** * 接收委托书 */ suspend fun acceptEntrust(id: String): String { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java new file mode 100644 index 0000000..a1d6627 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java @@ -0,0 +1,100 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class LogDetailModel { + + private int code; + private List data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String createTime; + private String createUser; + private String createUserName; + private String id; + private String orderId; + private String recordContent; + private String remark; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getRecordContent() { + return recordContent; + } + + public void setRecordContent(String recordContent) { + this.recordContent = recordContent; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 90d2aa3..6e7a0c9 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -204,6 +204,15 @@ ): String /** + * 获取委托书操作Log + */ + @POST("/business/order/optionRecord") + suspend fun getEntrustLog( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 接收委托书 */ @POST("/business/order/receive") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index f28bb00..a6affba 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -436,6 +436,18 @@ } /** + * 获取委托书操作Log + */ + suspend fun getEntrustLog(id: String): String { + val paramObject = JSONObject() + paramObject["id"] = id + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getEntrustLog(AuthenticationHelper.token!!, requestBody) + } + + /** * 接收委托书 */ suspend fun acceptEntrust(id: String): String { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 94ecefa..080c380 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -45,7 +45,7 @@ } fragmentPages.add(BasicInformationFragment(data)) - fragmentPages.add(LogRecordFragment()) + fragmentPages.add(LogRecordFragment(entrustId)) val entrustPageTitles = arrayOf("基础信息", "日志记录") diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java new file mode 100644 index 0000000..a1d6627 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java @@ -0,0 +1,100 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class LogDetailModel { + + private int code; + private List data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String createTime; + private String createUser; + private String createUserName; + private String id; + private String orderId; + private String recordContent; + private String remark; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getRecordContent() { + return recordContent; + } + + public void setRecordContent(String recordContent) { + this.recordContent = recordContent; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 90d2aa3..6e7a0c9 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -204,6 +204,15 @@ ): String /** + * 获取委托书操作Log + */ + @POST("/business/order/optionRecord") + suspend fun getEntrustLog( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 接收委托书 */ @POST("/business/order/receive") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index f28bb00..a6affba 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -436,6 +436,18 @@ } /** + * 获取委托书操作Log + */ + suspend fun getEntrustLog(id: String): String { + val paramObject = JSONObject() + paramObject["id"] = id + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getEntrustLog(AuthenticationHelper.token!!, requestBody) + } + + /** * 接收委托书 */ suspend fun acceptEntrust(id: String): String { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 94ecefa..080c380 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -45,7 +45,7 @@ } fragmentPages.add(BasicInformationFragment(data)) - fragmentPages.add(LogRecordFragment()) + fragmentPages.add(LogRecordFragment(entrustId)) val entrustPageTitles = arrayOf("基础信息", "日志记录") diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt index 103c002..0545762 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt @@ -4,10 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage -import com.casic.xz.meterage.model.ActionResultModel -import com.casic.xz.meterage.model.EntrustDetailModel -import com.casic.xz.meterage.model.EntrustListModel -import com.casic.xz.meterage.model.SampleListModel +import com.casic.xz.meterage.model.* import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -27,6 +24,7 @@ val acceptResult = MutableLiveData() val returnResult = MutableLiveData() val addResult = MutableLiveData() + val logDetail = MutableLiveData() fun getEntrustList( customerName: String, @@ -167,4 +165,18 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getEntrustLog(id: String) = launch({ + val response = RetrofitServiceManager.getEntrustLog(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + logDetail.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java new file mode 100644 index 0000000..a1d6627 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java @@ -0,0 +1,100 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class LogDetailModel { + + private int code; + private List data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String createTime; + private String createUser; + private String createUserName; + private String id; + private String orderId; + private String recordContent; + private String remark; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getRecordContent() { + return recordContent; + } + + public void setRecordContent(String recordContent) { + this.recordContent = recordContent; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 90d2aa3..6e7a0c9 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -204,6 +204,15 @@ ): String /** + * 获取委托书操作Log + */ + @POST("/business/order/optionRecord") + suspend fun getEntrustLog( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 接收委托书 */ @POST("/business/order/receive") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index f28bb00..a6affba 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -436,6 +436,18 @@ } /** + * 获取委托书操作Log + */ + suspend fun getEntrustLog(id: String): String { + val paramObject = JSONObject() + paramObject["id"] = id + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getEntrustLog(AuthenticationHelper.token!!, requestBody) + } + + /** * 接收委托书 */ suspend fun acceptEntrust(id: String): String { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 94ecefa..080c380 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -45,7 +45,7 @@ } fragmentPages.add(BasicInformationFragment(data)) - fragmentPages.add(LogRecordFragment()) + fragmentPages.add(LogRecordFragment(entrustId)) val entrustPageTitles = arrayOf("基础信息", "日志记录") diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt index 103c002..0545762 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt @@ -4,10 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage -import com.casic.xz.meterage.model.ActionResultModel -import com.casic.xz.meterage.model.EntrustDetailModel -import com.casic.xz.meterage.model.EntrustListModel -import com.casic.xz.meterage.model.SampleListModel +import com.casic.xz.meterage.model.* import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -27,6 +24,7 @@ val acceptResult = MutableLiveData() val returnResult = MutableLiveData() val addResult = MutableLiveData() + val logDetail = MutableLiveData() fun getEntrustList( customerName: String, @@ -167,4 +165,18 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getEntrustLog(id: String) = launch({ + val response = RetrofitServiceManager.getEntrustLog(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + logDetail.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt b/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt new file mode 100644 index 0000000..032a77c --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt @@ -0,0 +1,82 @@ +package com.casic.xz.meterage.widgets + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.Rect +import android.view.View +import androidx.recyclerview.widget.RecyclerView + + +class TimeLineDecoration(private val context: Context) : RecyclerView.ItemDecoration() { + + private var leftDotPaint: Paint = Paint() + private var leftLinePaint: Paint = Paint() + + //item左边距 + private val marginLeft = 150 + + init { + leftDotPaint.isAntiAlias = true + leftDotPaint.isDither = true + leftDotPaint.style = Paint.Style.FILL + + leftLinePaint.color = Color.LTGRAY + leftLinePaint.style = Paint.Style.FILL + } + + //可以实现类似绘制背景的效果,内容在上面 + override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + super.onDraw(c, parent, state) + + //画左边圆点 + val childCount: Int = parent.childCount + for (i in 0 until childCount) { + val childView = parent.getChildAt(i) + + /** + * 确定每个item里面dot的圆心位置 + * + * childView.top与outRect.top相等 + * item内部边距childView.paddingTop + * */ + val cx = marginLeft / 2 + + val index = parent.getChildAdapterPosition(childView) + var radius: Float + if (index == 0) { + radius = 25f + leftDotPaint.color = Color.RED +// if (childView.operatorNameView.text.contains("接收")) { +// +// }else if(childView.operatorNameView.text.contains("退回")){ +// +// } + + //竖线 +// c.drawLine(cx.toFloat(), y1, cx.toFloat(), y2, leftLinePaint) + } else { + radius = 15f + leftDotPaint.color = Color.LTGRAY + } + + val cy = childView.top + childView.height / 2 + c.drawCircle(cx.toFloat(), cy.toFloat(), radius, leftDotPaint) + } + } + + //可以绘制在内容的上面,覆盖内容 + override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + super.onDrawOver(c, parent, state) + } + + //可以实现类似padding的效果 + override fun getItemOffsets( + outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + outRect.left = marginLeft + outRect.top = 1 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java new file mode 100644 index 0000000..a1d6627 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java @@ -0,0 +1,100 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class LogDetailModel { + + private int code; + private List data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String createTime; + private String createUser; + private String createUserName; + private String id; + private String orderId; + private String recordContent; + private String remark; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getRecordContent() { + return recordContent; + } + + public void setRecordContent(String recordContent) { + this.recordContent = recordContent; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 90d2aa3..6e7a0c9 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -204,6 +204,15 @@ ): String /** + * 获取委托书操作Log + */ + @POST("/business/order/optionRecord") + suspend fun getEntrustLog( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 接收委托书 */ @POST("/business/order/receive") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index f28bb00..a6affba 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -436,6 +436,18 @@ } /** + * 获取委托书操作Log + */ + suspend fun getEntrustLog(id: String): String { + val paramObject = JSONObject() + paramObject["id"] = id + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getEntrustLog(AuthenticationHelper.token!!, requestBody) + } + + /** * 接收委托书 */ suspend fun acceptEntrust(id: String): String { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 94ecefa..080c380 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -45,7 +45,7 @@ } fragmentPages.add(BasicInformationFragment(data)) - fragmentPages.add(LogRecordFragment()) + fragmentPages.add(LogRecordFragment(entrustId)) val entrustPageTitles = arrayOf("基础信息", "日志记录") diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt index 103c002..0545762 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt @@ -4,10 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage -import com.casic.xz.meterage.model.ActionResultModel -import com.casic.xz.meterage.model.EntrustDetailModel -import com.casic.xz.meterage.model.EntrustListModel -import com.casic.xz.meterage.model.SampleListModel +import com.casic.xz.meterage.model.* import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -27,6 +24,7 @@ val acceptResult = MutableLiveData() val returnResult = MutableLiveData() val addResult = MutableLiveData() + val logDetail = MutableLiveData() fun getEntrustList( customerName: String, @@ -167,4 +165,18 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getEntrustLog(id: String) = launch({ + val response = RetrofitServiceManager.getEntrustLog(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + logDetail.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt b/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt new file mode 100644 index 0000000..032a77c --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt @@ -0,0 +1,82 @@ +package com.casic.xz.meterage.widgets + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.Rect +import android.view.View +import androidx.recyclerview.widget.RecyclerView + + +class TimeLineDecoration(private val context: Context) : RecyclerView.ItemDecoration() { + + private var leftDotPaint: Paint = Paint() + private var leftLinePaint: Paint = Paint() + + //item左边距 + private val marginLeft = 150 + + init { + leftDotPaint.isAntiAlias = true + leftDotPaint.isDither = true + leftDotPaint.style = Paint.Style.FILL + + leftLinePaint.color = Color.LTGRAY + leftLinePaint.style = Paint.Style.FILL + } + + //可以实现类似绘制背景的效果,内容在上面 + override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + super.onDraw(c, parent, state) + + //画左边圆点 + val childCount: Int = parent.childCount + for (i in 0 until childCount) { + val childView = parent.getChildAt(i) + + /** + * 确定每个item里面dot的圆心位置 + * + * childView.top与outRect.top相等 + * item内部边距childView.paddingTop + * */ + val cx = marginLeft / 2 + + val index = parent.getChildAdapterPosition(childView) + var radius: Float + if (index == 0) { + radius = 25f + leftDotPaint.color = Color.RED +// if (childView.operatorNameView.text.contains("接收")) { +// +// }else if(childView.operatorNameView.text.contains("退回")){ +// +// } + + //竖线 +// c.drawLine(cx.toFloat(), y1, cx.toFloat(), y2, leftLinePaint) + } else { + radius = 15f + leftDotPaint.color = Color.LTGRAY + } + + val cy = childView.top + childView.height / 2 + c.drawCircle(cx.toFloat(), cy.toFloat(), radius, leftDotPaint) + } + } + + //可以绘制在内容的上面,覆盖内容 + override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + super.onDrawOver(c, parent, state) + } + + //可以实现类似padding的效果 + override fun getItemOffsets( + outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + outRect.left = marginLeft + outRect.top = 1 + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_entrust_log.xml b/app/src/main/res/layout/fragment_entrust_log.xml index 77d9ef6..f5c09cf 100644 --- a/app/src/main/res/layout/fragment_entrust_log.xml +++ b/app/src/main/res/layout/fragment_entrust_log.xml @@ -1,6 +1,13 @@ - + android:layout_height="match_parent" + android:background="@color/white"> - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt index 7bc05c5..f1a4172 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt @@ -13,14 +13,13 @@ class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() { private lateinit var staffViewModel: MeterageStaffViewModel - private lateinit var staffAdapter: NormalRecyclerAdapter override fun initData() { staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java] staffViewModel.getStaffList(id) staffViewModel.staffList.observe(this) { if (it.code == 200) { - staffAdapter = object : NormalRecyclerAdapter( + val staffAdapter = object : NormalRecyclerAdapter( R.layout.item_staff_rv_l, it.data.rows ) { override fun convertView( diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt index fb5f36c..e6e7cf2 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt @@ -13,14 +13,13 @@ class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() { private lateinit var equipmentViewModel: EquipmentViewModel - private lateinit var supportAdapter: NormalRecyclerAdapter override fun initData() { equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] equipmentViewModel.getSupportEquipmentList(id) equipmentViewModel.supportEquipmentList.observe(this) { if (it.code == 200) { - supportAdapter = + val supportAdapter = object : NormalRecyclerAdapter( R.layout.item_device_support_rv_l, it.data.rows ) { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt index a4dd76d..d12fce1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt @@ -1,12 +1,54 @@ package com.casic.xz.meterage.fragment.entrust +import android.graphics.Color +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.model.LogDetailModel +import com.casic.xz.meterage.vm.EntrustViewModel +import com.casic.xz.meterage.widgets.TimeLineDecoration +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import kotlinx.android.synthetic.main.fragment_entrust_log.* -class LogRecordFragment : KotlinBaseFragment() { +class LogRecordFragment(private val entrustId: String) : KotlinBaseFragment() { + + private lateinit var entrustViewModel: EntrustViewModel override fun initData() { + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.getEntrustLog(entrustId) + entrustViewModel.logDetail.observe(this) { + if (it.code == 200) { + val logAdapter = object : NormalRecyclerAdapter( + R.layout.item_entrust_log_rv_l, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: LogDetailModel.DataModel + ) { + if (position == 0) { + //最后一项 + viewHolder.setBackgroundColor(R.id.dotView, Color.BLACK) + viewHolder.setTextColor(R.id.operatorNameView, Color.BLACK) + .setTextColor(R.id.statusView, Color.BLACK) + .setTextColor(R.id.operateTimeView, Color.BLACK) + .setTextColor(R.id.remarkView, Color.BLACK) + } else { + } + + viewHolder.setText(R.id.operatorNameView, item.createUserName) +// .setText(R.id.statusView, item.) + .setText(R.id.operateTimeView, item.createTime) + .setText(R.id.remarkView, item.recordContent) + } + } + logRecyclerView.addItemDecoration(TimeLineDecoration(requireContext())) + logRecyclerView.adapter = logAdapter + } + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java new file mode 100644 index 0000000..a1d6627 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/LogDetailModel.java @@ -0,0 +1,100 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class LogDetailModel { + + private int code; + private List data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private String createTime; + private String createUser; + private String createUserName; + private String id; + private String orderId; + private String recordContent; + private String remark; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getRecordContent() { + return recordContent; + } + + public void setRecordContent(String recordContent) { + this.recordContent = recordContent; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 90d2aa3..6e7a0c9 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -204,6 +204,15 @@ ): String /** + * 获取委托书操作Log + */ + @POST("/business/order/optionRecord") + suspend fun getEntrustLog( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 接收委托书 */ @POST("/business/order/receive") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index f28bb00..a6affba 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -436,6 +436,18 @@ } /** + * 获取委托书操作Log + */ + suspend fun getEntrustLog(id: String): String { + val paramObject = JSONObject() + paramObject["id"] = id + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.getEntrustLog(AuthenticationHelper.token!!, requestBody) + } + + /** * 接收委托书 */ suspend fun acceptEntrust(id: String): String { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 94ecefa..080c380 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -45,7 +45,7 @@ } fragmentPages.add(BasicInformationFragment(data)) - fragmentPages.add(LogRecordFragment()) + fragmentPages.add(LogRecordFragment(entrustId)) val entrustPageTitles = arrayOf("基础信息", "日志记录") diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt index 103c002..0545762 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt @@ -4,10 +4,7 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage -import com.casic.xz.meterage.model.ActionResultModel -import com.casic.xz.meterage.model.EntrustDetailModel -import com.casic.xz.meterage.model.EntrustListModel -import com.casic.xz.meterage.model.SampleListModel +import com.casic.xz.meterage.model.* import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -27,6 +24,7 @@ val acceptResult = MutableLiveData() val returnResult = MutableLiveData() val addResult = MutableLiveData() + val logDetail = MutableLiveData() fun getEntrustList( customerName: String, @@ -167,4 +165,18 @@ loadState.value = LoadState.Fail it.cause.toString().show(BaseApplication.get()) }) + + fun getEntrustLog(id: String) = launch({ + val response = RetrofitServiceManager.getEntrustLog(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + logDetail.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt b/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt new file mode 100644 index 0000000..032a77c --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/widgets/TimeLineDecoration.kt @@ -0,0 +1,82 @@ +package com.casic.xz.meterage.widgets + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.Rect +import android.view.View +import androidx.recyclerview.widget.RecyclerView + + +class TimeLineDecoration(private val context: Context) : RecyclerView.ItemDecoration() { + + private var leftDotPaint: Paint = Paint() + private var leftLinePaint: Paint = Paint() + + //item左边距 + private val marginLeft = 150 + + init { + leftDotPaint.isAntiAlias = true + leftDotPaint.isDither = true + leftDotPaint.style = Paint.Style.FILL + + leftLinePaint.color = Color.LTGRAY + leftLinePaint.style = Paint.Style.FILL + } + + //可以实现类似绘制背景的效果,内容在上面 + override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + super.onDraw(c, parent, state) + + //画左边圆点 + val childCount: Int = parent.childCount + for (i in 0 until childCount) { + val childView = parent.getChildAt(i) + + /** + * 确定每个item里面dot的圆心位置 + * + * childView.top与outRect.top相等 + * item内部边距childView.paddingTop + * */ + val cx = marginLeft / 2 + + val index = parent.getChildAdapterPosition(childView) + var radius: Float + if (index == 0) { + radius = 25f + leftDotPaint.color = Color.RED +// if (childView.operatorNameView.text.contains("接收")) { +// +// }else if(childView.operatorNameView.text.contains("退回")){ +// +// } + + //竖线 +// c.drawLine(cx.toFloat(), y1, cx.toFloat(), y2, leftLinePaint) + } else { + radius = 15f + leftDotPaint.color = Color.LTGRAY + } + + val cy = childView.top + childView.height / 2 + c.drawCircle(cx.toFloat(), cy.toFloat(), radius, leftDotPaint) + } + } + + //可以绘制在内容的上面,覆盖内容 + override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + super.onDrawOver(c, parent, state) + } + + //可以实现类似padding的效果 + override fun getItemOffsets( + outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + outRect.left = marginLeft + outRect.top = 1 + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_entrust_log.xml b/app/src/main/res/layout/fragment_entrust_log.xml index 77d9ef6..f5c09cf 100644 --- a/app/src/main/res/layout/fragment_entrust_log.xml +++ b/app/src/main/res/layout/fragment_entrust_log.xml @@ -1,6 +1,13 @@ - + android:layout_height="match_parent" + android:background="@color/white"> - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_entrust_log_rv_l.xml b/app/src/main/res/layout/item_entrust_log_rv_l.xml new file mode 100644 index 0000000..5925c41 --- /dev/null +++ b/app/src/main/res/layout/item_entrust_log_rv_l.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + \ No newline at end of file