审批流程,已办理页面添加“未完结、已完结”筛选

main
chenglifeng 8 months ago
parent f872584122
commit a28abd9678
  1. 19
      app/src/main/java/com/project/survey/logic/viewmodel/ProjectViewModel.kt
  2. 5
      app/src/main/java/com/project/survey/network/Api.kt
  3. 61
      app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt
  4. 3
      app/src/main/java/com/project/survey/ui/lofting/LoftingListActivity.kt
  5. 3
      app/src/main/java/com/project/survey/ui/pointmeasure/PointMeasureListActivity.kt
  6. 5
      app/src/main/res/color/text_color_complete.xml
  7. 19
      app/src/main/res/drawable/bg_complete_selector.xml
  8. 37
      app/src/main/res/layout/activity_approval.xml
  9. 2
      app/src/main/res/values/strings.xml

@ -12,6 +12,7 @@ import com.project.survey.constants.Constants
import com.project.survey.constants.SPConstants import com.project.survey.constants.SPConstants
import com.project.survey.logic.bean.ListResult import com.project.survey.logic.bean.ListResult
import com.project.survey.model.ApprovalBean import com.project.survey.model.ApprovalBean
import com.project.survey.model.ApprovalResponse
import com.project.survey.model.InspectionReportBean import com.project.survey.model.InspectionReportBean
import com.project.survey.model.LoftingBean import com.project.survey.model.LoftingBean
import com.project.survey.model.LoftingPointBean import com.project.survey.model.LoftingPointBean
@ -45,18 +46,19 @@ class ProjectViewModel : BaseViewModel() {
} }
} }
val workTaskListResponse: LiveData<List<ApprovalBean>> val workTaskListResponse: LiveData<ApprovalResponse>
get() = _workTaskListResponse get() = _workTaskListResponse
private val _workTaskListResponse = MutableLiveData<List<ApprovalBean>>() private val _workTaskListResponse = MutableLiveData<ApprovalResponse>()
/** /**
* 获取流程审批列表 * 获取流程审批列表
* @param end 0,未完结1已完结
*/ */
fun fetchWorkTask(type: String, page: Int = 1) { fun fetchWorkTask(type: String, userName: String?, end: Int?, page: Int = 1) {
launch { launch {
val res = api.fetchWorkTask(type = type, page = page) val res = api.fetchWorkTask(type = type, userName = userName, end = end, page = page)
if (res.success) { if (res.success) {
_workTaskListResponse.postValue(res.data.data.rows) _workTaskListResponse.postValue(res.data)
} }
} }
} }
@ -71,9 +73,9 @@ class ProjectViewModel : BaseViewModel() {
fun fetchMeasureDataList(type: String, page: Int, keyword: String) { fun fetchMeasureDataList(type: String, page: Int, keyword: String) {
launch { launch {
val query = if (type == Constants.TYPE_BD_CLJH) val query = if (type == Constants.TYPE_BD_CLJH)
"[{\"code\":\"SY_CURRENTTASK\",\"type\":\"=\",\"value\":\"施工单位APP上开展测量工作\"},{\"type\":\"and\",\"value\":[{\"code\":\"CLJH_LCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"CLJH_BDLSH\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DWGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FBGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FXGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DYGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"}]}]" "[{\"code\":\"SY_CURRENTTASK\",\"type\":\"=\",\"value\":\"计划发起人提交成果\"},{\"type\":\"and\",\"value\":[{\"code\":\"CLJH_LCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"CLJH_BDLSH\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DWGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FBGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FXGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DYGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"}]}]"
else else
"[{\"code\":\"SY_CURRENTTASK\",\"type\":\"=\",\"value\":\"施工单位APP上开展测量工作\"},{\"type\":\"and\",\"value\":[{\"code\":\"GCJL_LCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"GCJL_BDLSH\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DWGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FBGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FXGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DYGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"}]}]" "[{\"code\":\"SY_CURRENTTASK\",\"type\":\"=\",\"value\":\"计划发起人提交成果\"},{\"type\":\"and\",\"value\":[{\"code\":\"GCJL_LCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"GCJL_BDLSH\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DWGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FBGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FXGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DYGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"}]}]"
val res = api.fetchMeasureDataList( val res = api.fetchMeasureDataList(
@ -190,7 +192,8 @@ class ProjectViewModel : BaseViewModel() {
*/ */
fun fetchLoftingList(keyword: String) { fun fetchLoftingList(keyword: String) {
launch { launch {
val query = "[{\"code\":\"ZYLB_ZYLBZT_NAME\",\"type\":\"=\",\"value\":\"执行中\"},{\"type\":\"and\",\"value\":[{\"code\":\"ZYLB_ZY_NAME\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"ZYLB_CLY\",\"type\":\"like\",\"value\":\"${keyword}\"}]}]" val query =
"[{\"code\":\"ZYLB_ZYLBZT_NAME\",\"type\":\"=\",\"value\":\"执行中\"},{\"type\":\"and\",\"value\":[{\"code\":\"ZYLB_ZY_NAME\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"ZYLB_CLY\",\"type\":\"like\",\"value\":\"${keyword}\"}]}]"
val res = api.fetchLoftingList(j_qurey = query) val res = api.fetchLoftingList(j_qurey = query)
if (res.success) { if (res.success) {
_loftingBeanListResponse.postValue(res.data) _loftingBeanListResponse.postValue(res.data)

@ -85,9 +85,10 @@ interface Api {
@FormUrlEncoded @FormUrlEncoded
@POST("je/workflow/currentUserTask/getTask") @POST("je/workflow/currentUserTask/getTask")
suspend fun fetchWorkTask( suspend fun fetchWorkTask(
@Header("Projectid") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID), @Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID),
@Field("type") type: String, @Field("type") type: String,
// @Field("userName") userName: String = "", @Field("userName") userName: String?,
@Field("end") end: Int?,
@Field("page") page: Int, @Field("page") page: Int,
@Field("limit") limit: Int = 30, @Field("limit") limit: Int = 30,
): HttpResult<ApprovalResponse> ): HttpResult<ApprovalResponse>

@ -7,6 +7,8 @@ import com.project.survey.BuildConfig
import com.project.survey.R import com.project.survey.R
import com.project.survey.constants.SPConstants import com.project.survey.constants.SPConstants
import com.project.survey.databinding.ActivityApprovalBinding import com.project.survey.databinding.ActivityApprovalBinding
import com.project.survey.extend.isVisibleOrGone
import com.project.survey.extend.setOnClickNoRepeatListener
import com.project.survey.extend.smartDismiss import com.project.survey.extend.smartDismiss
import com.project.survey.logic.viewmodel.ProjectViewModel import com.project.survey.logic.viewmodel.ProjectViewModel
import com.project.survey.ui.approval.adapter.ApprovalAdapter import com.project.survey.ui.approval.adapter.ApprovalAdapter
@ -46,17 +48,26 @@ class ApprovalActivity : BaseBindingActivity<ActivityApprovalBinding>(), OnRefre
private val adapter by lazy { ApprovalAdapter() } private val adapter by lazy { ApprovalAdapter() }
private var currentPage = 1 private var currentPage = 1
private var searchContent: String? = null
private var end: Int? = null //type为PI_APPROVED(已办理)时生效,表示是否完结:0,未完结;1,已完结
override fun initView() { override fun initView() {
type = intent.getStringExtra(TYPE) ?: "" type = intent.getStringExtra(TYPE) ?: ""
immersionToolbar( immersionToolbar(
mBinding.toolbar, mBinding.toolbar,
when (type) { when (type) {
PI_PREAPPROV -> "待处理" PI_PREAPPROV -> R.string.to_be_processed
PI_APPROVED -> "已处理" PI_APPROVED -> R.string.processed
else -> "已发起" else -> R.string.initiated
} }
) )
// type为已办理时,显示
mBinding.llScreen.isVisibleOrGone(type == PI_APPROVED)
end = if (type == PI_APPROVED) {
mBinding.tvUncompleted.isSelected = true
mBinding.tvCompleted.isSelected = false
0
} else null
// val beginTransaction = supportFragmentManager.beginTransaction() // val beginTransaction = supportFragmentManager.beginTransaction()
// val fragemnt = when (type) { // val fragemnt = when (type) {
// PI_PREAPPROV -> ApprovalWaitFragment() // PI_PREAPPROV -> ApprovalWaitFragment()
@ -82,19 +93,27 @@ class ApprovalActivity : BaseBindingActivity<ActivityApprovalBinding>(), OnRefre
viewModel.workTaskListResponse.observe(this) { viewModel.workTaskListResponse.observe(this) {
mBinding.smartRefreshLayout.smartDismiss() mBinding.smartRefreshLayout.smartDismiss()
if (currentPage == 1) { if (currentPage == 1) {
adapter.submitList(it, type) adapter.submitList(it.data.rows, type)
if (it.isEmpty()) { if (it.data.rows.isEmpty()) {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
adapter.setStateViewLayout(this, R.layout.layout_no_data) adapter.setStateViewLayout(this, R.layout.layout_no_data)
} else { } else {
currentPage++ if (adapter.itemCount < it.data.totalCount) {
currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
} }
} else { } else {
if (it.isEmpty()) { if (it.data.rows.isEmpty()) {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
} else { } else {
adapter.addAll(it) if (adapter.itemCount < it.data.totalCount) {
currentPage++ adapter.addAll(it.data.rows)
currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
} }
} }
} }
@ -110,7 +129,7 @@ class ApprovalActivity : BaseBindingActivity<ActivityApprovalBinding>(), OnRefre
} }
private fun fetchData() { private fun fetchData() {
viewModel.fetchWorkTask(type) viewModel.fetchWorkTask(type, searchContent, end, currentPage)
} }
override fun onRefresh(refreshLayout: RefreshLayout) { override fun onRefresh(refreshLayout: RefreshLayout) {
@ -123,6 +142,28 @@ class ApprovalActivity : BaseBindingActivity<ActivityApprovalBinding>(), OnRefre
} }
override fun initListener() { override fun initListener() {
// 搜索
mBinding.searchWidget.setOnEditorSearchListener {
searchContent = it
currentPage = 1
fetchData()
}
// 未完结
mBinding.tvUncompleted.setOnClickNoRepeatListener {
end = 0
mBinding.tvUncompleted.isSelected = true
mBinding.tvCompleted.isSelected = false
currentPage = 1
fetchData()
}
// 已完结
mBinding.tvCompleted.setOnClickNoRepeatListener {
end = 1
mBinding.tvUncompleted.isSelected = false
mBinding.tvCompleted.isSelected = true
currentPage = 1
fetchData()
}
adapter.setOnItemClickListener { _, _, position -> adapter.setOnItemClickListener { _, _, position ->
adapter.getItem(position)?.let { bean -> adapter.getItem(position)?.let { bean ->
// http://10.190.183.37/app/micro/func/#/pages/func/form/{功能编码}/{流程ID}?authorization={登录token}&appId=2024-0926-1104-0165 // http://10.190.183.37/app/micro/func/#/pages/func/form/{功能编码}/{流程ID}?authorization={登录token}&appId=2024-0926-1104-0165

@ -38,10 +38,8 @@ class LoftingListActivity : BaseBindingActivity<ActivityLoftingListBinding>() {
override fun initData() { override fun initData() {
viewModel.errorResponse.observe(this) { viewModel.errorResponse.observe(this) {
toast(it) toast(it)
dismissLoadingDialog()
} }
viewModel.loftingBeanListResponse.observe(this) { viewModel.loftingBeanListResponse.observe(this) {
dismissLoadingDialog()
adapter.submitList(it.rows) adapter.submitList(it.rows)
} }
@ -52,7 +50,6 @@ class LoftingListActivity : BaseBindingActivity<ActivityLoftingListBinding>() {
// 搜索 // 搜索
mBinding.searchWidget.setOnEditorSearchListener { mBinding.searchWidget.setOnEditorSearchListener {
searchContent = it searchContent = it
showLoadingDialog()
fetchData() fetchData()
} }

@ -70,12 +70,10 @@ class PointMeasureListActivity : BaseBindingActivity<ActivityPointMeasureListBin
override fun initData() { override fun initData() {
viewModel.errorResponse.observe(this) { viewModel.errorResponse.observe(this) {
toast(it) toast(it)
dismissLoadingDialog()
mBinding.smartRefreshLayout.smartDismiss() mBinding.smartRefreshLayout.smartDismiss()
} }
// 列表 // 列表
viewModel.measureBeanListResponse.observe(this) { viewModel.measureBeanListResponse.observe(this) {
dismissLoadingDialog()
mBinding.smartRefreshLayout.smartDismiss() mBinding.smartRefreshLayout.smartDismiss()
// if (currentPage == 1) { // if (currentPage == 1) {
adapter.submitList(it.rows) adapter.submitList(it.rows)
@ -126,7 +124,6 @@ class PointMeasureListActivity : BaseBindingActivity<ActivityPointMeasureListBin
mBinding.searchWidget.setOnEditorSearchListener { mBinding.searchWidget.setOnEditorSearchListener {
searchContent = it searchContent = it
// currentPage = 1 // currentPage = 1
showLoadingDialog()
fetchData() fetchData()
} }
// 生成报验单 // 生成报验单

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#396BD0" android:state_selected="true" />
<item android:color="#404145" android:state_selected="false" />
</selector>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape android:shape="rectangle">
<solid android:color="#E9F1FC" />
<corners android:radius="@dimen/sw_15dp" />
<stroke android:width="@dimen/sw_1dp" android:color="#1f396BD0" />
</shape>
</item>
<item android:state_selected="false">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
<corners android:radius="@dimen/sw_15dp" />
<stroke android:width="@dimen/sw_1dp" android:color="#DFDFDF" />
</shape>
</item>
</selector>

@ -6,9 +6,6 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<!-- <include-->
<!-- android:id="@+id/ilToolBar"-->
<!-- layout="@layout/sh_toolbar" />-->
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -26,6 +23,40 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:sw_hint="流程名称、编号、申请人" /> app:sw_hint="流程名称、编号、申请人" />
<LinearLayout
android:id="@+id/llScreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="@dimen/sw_16dp"
android:paddingVertical="@dimen/sw_14dp">
<TextView
android:id="@+id/tvUncompleted"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/sw_10dp"
android:background="@drawable/bg_complete_selector"
android:paddingHorizontal="@dimen/sw_10dp"
android:paddingVertical="@dimen/sw_5dp"
android:text="未完结"
android:textColor="@color/text_color_complete"
android:textSize="@dimen/sw_12sp" />
<TextView
android:id="@+id/tvCompleted"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/sw_8dp"
android:background="@drawable/bg_complete_selector"
android:paddingHorizontal="@dimen/sw_10dp"
android:paddingVertical="@dimen/sw_5dp"
android:text="已完结"
android:textColor="@color/text_color_complete"
android:textSize="@dimen/sw_12sp" />
</LinearLayout>
<!-- <androidx.fragment.app.FragmentContainerView--> <!-- <androidx.fragment.app.FragmentContainerView-->
<!-- android:id="@+id/container"--> <!-- android:id="@+id/container"-->
<!-- android:layout_width="match_parent"--> <!-- android:layout_width="match_parent"-->

@ -10,7 +10,7 @@
<string name="process_approval">流程审批</string> <string name="process_approval">流程审批</string>
<string name="to_be_processed">待办理</string> <string name="to_be_processed">待办理</string>
<string name="processed">已办理</string> <string name="processed">已办理</string>
<string name="initiated">已发起</string> <string name="initiated">所有流程</string>
<string name="engineering_control_network">工程控制网</string> <string name="engineering_control_network">工程控制网</string>
<string name="head_control_network">首级控制网</string> <string name="head_control_network">首级控制网</string>
<string name="dedicated_control_network">专用控制网</string> <string name="dedicated_control_network">专用控制网</string>

Loading…
Cancel
Save