diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") 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 269f5ec..912889f 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 @@ -846,7 +846,7 @@ } /** - * 提交证书报告 + * 证书报告-提交 */ suspend fun submit(id: String): String { val param = JsonObject() @@ -859,6 +859,32 @@ } /** + * 证书报告-审批同意 + */ + suspend fun agree(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.agree(AuthenticationHelper.token!!, requestBody) + } + + /** + * 证书报告-审批驳回 + */ + suspend fun reject(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.reject(AuthenticationHelper.token!!, requestBody) + } + + /** * 全局搜索 */ suspend fun getGlobalSearchResult( diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") 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 269f5ec..912889f 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 @@ -846,7 +846,7 @@ } /** - * 提交证书报告 + * 证书报告-提交 */ suspend fun submit(id: String): String { val param = JsonObject() @@ -859,6 +859,32 @@ } /** + * 证书报告-审批同意 + */ + suspend fun agree(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.agree(AuthenticationHelper.token!!, requestBody) + } + + /** + * 证书报告-审批驳回 + */ + suspend fun reject(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.reject(AuthenticationHelper.token!!, requestBody) + } + + /** * 全局搜索 */ suspend fun getGlobalSearchResult( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt new file mode 100644 index 0000000..020a181 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -0,0 +1,111 @@ +package com.casic.xz.meterage.view.home + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.CertificateViewModel +import com.casic.xz.meterage.vm.UserViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.android.synthetic.main.activity_approval_operation.* +import kotlinx.android.synthetic.main.include_base_title.* + +class ApprovalOperationActivity : KotlinBaseActivity() { + + private lateinit var taskId: String + private lateinit var certificateViewModel: CertificateViewModel + + override fun initData() { + taskId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + approverView.text = it.data.name + } + } + + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.agreeResult.observe(this) { + if (it.code == 200) { + finish() + } + } + + certificateViewModel.rejectResult.observe(this) { + if (it.code == 200) { + finish() + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + submitButton.setOnClickListener { + if (remarkView.text.isNullOrBlank()) { + "审批结论/意见不能为空".show(this) + return@setOnClickListener + } + + if (agreeButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否通过该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.agree(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + if (overruleButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否驳回该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.reject(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + } + + cancelButton.setOnClickListener { finish() } + } + + override fun initLayoutView(): Int = R.layout.activity_approval_operation + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + + titleView.text = "审批" + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") 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 269f5ec..912889f 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 @@ -846,7 +846,7 @@ } /** - * 提交证书报告 + * 证书报告-提交 */ suspend fun submit(id: String): String { val param = JsonObject() @@ -859,6 +859,32 @@ } /** + * 证书报告-审批同意 + */ + suspend fun agree(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.agree(AuthenticationHelper.token!!, requestBody) + } + + /** + * 证书报告-审批驳回 + */ + suspend fun reject(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.reject(AuthenticationHelper.token!!, requestBody) + } + + /** * 全局搜索 */ suspend fun getGlobalSearchResult( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt new file mode 100644 index 0000000..020a181 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -0,0 +1,111 @@ +package com.casic.xz.meterage.view.home + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.CertificateViewModel +import com.casic.xz.meterage.vm.UserViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.android.synthetic.main.activity_approval_operation.* +import kotlinx.android.synthetic.main.include_base_title.* + +class ApprovalOperationActivity : KotlinBaseActivity() { + + private lateinit var taskId: String + private lateinit var certificateViewModel: CertificateViewModel + + override fun initData() { + taskId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + approverView.text = it.data.name + } + } + + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.agreeResult.observe(this) { + if (it.code == 200) { + finish() + } + } + + certificateViewModel.rejectResult.observe(this) { + if (it.code == 200) { + finish() + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + submitButton.setOnClickListener { + if (remarkView.text.isNullOrBlank()) { + "审批结论/意见不能为空".show(this) + return@setOnClickListener + } + + if (agreeButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否通过该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.agree(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + if (overruleButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否驳回该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.reject(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + } + + cancelButton.setOnClickListener { finish() } + } + + override fun initLayoutView(): Int = R.layout.activity_approval_operation + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + + titleView.text = "审批" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index d14c729..f4ea0c1 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,6 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.vm.LoadState @@ -22,11 +23,12 @@ class CertificateReportDetailActivity : KotlinBaseActivity() { private var fragmentPages: ArrayList = ArrayList() + private lateinit var args: ArrayList private lateinit var certificateViewModel: CertificateViewModel private lateinit var detailModel: CertificateDetailModel.DataModel override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! when (args[0]) { "草稿箱" -> { @@ -82,7 +84,8 @@ if (approvalView.text == "提交") { certificateViewModel.submit(detailModel.id) } else if (approvalView.text == "审批") { - + //taskId + navigatePageTo(args[2]) } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") 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 269f5ec..912889f 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 @@ -846,7 +846,7 @@ } /** - * 提交证书报告 + * 证书报告-提交 */ suspend fun submit(id: String): String { val param = JsonObject() @@ -859,6 +859,32 @@ } /** + * 证书报告-审批同意 + */ + suspend fun agree(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.agree(AuthenticationHelper.token!!, requestBody) + } + + /** + * 证书报告-审批驳回 + */ + suspend fun reject(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.reject(AuthenticationHelper.token!!, requestBody) + } + + /** * 全局搜索 */ suspend fun getGlobalSearchResult( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt new file mode 100644 index 0000000..020a181 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -0,0 +1,111 @@ +package com.casic.xz.meterage.view.home + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.CertificateViewModel +import com.casic.xz.meterage.vm.UserViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.android.synthetic.main.activity_approval_operation.* +import kotlinx.android.synthetic.main.include_base_title.* + +class ApprovalOperationActivity : KotlinBaseActivity() { + + private lateinit var taskId: String + private lateinit var certificateViewModel: CertificateViewModel + + override fun initData() { + taskId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + approverView.text = it.data.name + } + } + + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.agreeResult.observe(this) { + if (it.code == 200) { + finish() + } + } + + certificateViewModel.rejectResult.observe(this) { + if (it.code == 200) { + finish() + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + submitButton.setOnClickListener { + if (remarkView.text.isNullOrBlank()) { + "审批结论/意见不能为空".show(this) + return@setOnClickListener + } + + if (agreeButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否通过该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.agree(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + if (overruleButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否驳回该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.reject(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + } + + cancelButton.setOnClickListener { finish() } + } + + override fun initLayoutView(): Int = R.layout.activity_approval_operation + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + + titleView.text = "审批" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index d14c729..f4ea0c1 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,6 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.vm.LoadState @@ -22,11 +23,12 @@ class CertificateReportDetailActivity : KotlinBaseActivity() { private var fragmentPages: ArrayList = ArrayList() + private lateinit var args: ArrayList private lateinit var certificateViewModel: CertificateViewModel private lateinit var detailModel: CertificateDetailModel.DataModel override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! when (args[0]) { "草稿箱" -> { @@ -82,7 +84,8 @@ if (approvalView.text == "提交") { certificateViewModel.submit(detailModel.id) } else if (approvalView.text == "审批") { - + //taskId + navigatePageTo(args[2]) } } } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 4b2a9c1..933b489 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -58,7 +58,7 @@ override fun initData() { //证书 configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] - configViewModel.getDictionaryByCode("certificationClass") + configViewModel.getDictionaryByCode("certificationType") configViewModel.dictionary.observe(this) { if (it.code == 200) { val typeAdapter2 = CertificateTypeAdapter2(this, it.data) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") 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 269f5ec..912889f 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 @@ -846,7 +846,7 @@ } /** - * 提交证书报告 + * 证书报告-提交 */ suspend fun submit(id: String): String { val param = JsonObject() @@ -859,6 +859,32 @@ } /** + * 证书报告-审批同意 + */ + suspend fun agree(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.agree(AuthenticationHelper.token!!, requestBody) + } + + /** + * 证书报告-审批驳回 + */ + suspend fun reject(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.reject(AuthenticationHelper.token!!, requestBody) + } + + /** * 全局搜索 */ suspend fun getGlobalSearchResult( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt new file mode 100644 index 0000000..020a181 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -0,0 +1,111 @@ +package com.casic.xz.meterage.view.home + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.CertificateViewModel +import com.casic.xz.meterage.vm.UserViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.android.synthetic.main.activity_approval_operation.* +import kotlinx.android.synthetic.main.include_base_title.* + +class ApprovalOperationActivity : KotlinBaseActivity() { + + private lateinit var taskId: String + private lateinit var certificateViewModel: CertificateViewModel + + override fun initData() { + taskId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + approverView.text = it.data.name + } + } + + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.agreeResult.observe(this) { + if (it.code == 200) { + finish() + } + } + + certificateViewModel.rejectResult.observe(this) { + if (it.code == 200) { + finish() + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + submitButton.setOnClickListener { + if (remarkView.text.isNullOrBlank()) { + "审批结论/意见不能为空".show(this) + return@setOnClickListener + } + + if (agreeButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否通过该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.agree(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + if (overruleButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否驳回该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.reject(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + } + + cancelButton.setOnClickListener { finish() } + } + + override fun initLayoutView(): Int = R.layout.activity_approval_operation + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + + titleView.text = "审批" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index d14c729..f4ea0c1 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,6 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.vm.LoadState @@ -22,11 +23,12 @@ class CertificateReportDetailActivity : KotlinBaseActivity() { private var fragmentPages: ArrayList = ArrayList() + private lateinit var args: ArrayList private lateinit var certificateViewModel: CertificateViewModel private lateinit var detailModel: CertificateDetailModel.DataModel override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! when (args[0]) { "草稿箱" -> { @@ -82,7 +84,8 @@ if (approvalView.text == "提交") { certificateViewModel.submit(detailModel.id) } else if (approvalView.text == "审批") { - + //taskId + navigatePageTo(args[2]) } } } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 4b2a9c1..933b489 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -58,7 +58,7 @@ override fun initData() { //证书 configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] - configViewModel.getDictionaryByCode("certificationClass") + configViewModel.getDictionaryByCode("certificationType") configViewModel.dictionary.observe(this) { if (it.code == 200) { val typeAdapter2 = CertificateTypeAdapter2(this, it.data) diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt index e088887..b4d52f9 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt @@ -24,6 +24,8 @@ val certificateList = MutableLiveData() val certificateDetail = MutableLiveData() val submitResult = MutableLiveData() + val agreeResult = MutableLiveData() + val rejectResult = MutableLiveData() fun getCertificateReportList( approvalStatus: String, @@ -101,4 +103,42 @@ it.cause.toString().show(BaseApplication.get()) it.printStackTrace() }) + + fun agree(taskId: String, comments: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.agree(taskId, comments) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + agreeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + it.printStackTrace() + }) + + fun reject(taskId: String, comments: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.reject(taskId, comments) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + rejectResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") 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 269f5ec..912889f 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 @@ -846,7 +846,7 @@ } /** - * 提交证书报告 + * 证书报告-提交 */ suspend fun submit(id: String): String { val param = JsonObject() @@ -859,6 +859,32 @@ } /** + * 证书报告-审批同意 + */ + suspend fun agree(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.agree(AuthenticationHelper.token!!, requestBody) + } + + /** + * 证书报告-审批驳回 + */ + suspend fun reject(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.reject(AuthenticationHelper.token!!, requestBody) + } + + /** * 全局搜索 */ suspend fun getGlobalSearchResult( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt new file mode 100644 index 0000000..020a181 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -0,0 +1,111 @@ +package com.casic.xz.meterage.view.home + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.CertificateViewModel +import com.casic.xz.meterage.vm.UserViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.android.synthetic.main.activity_approval_operation.* +import kotlinx.android.synthetic.main.include_base_title.* + +class ApprovalOperationActivity : KotlinBaseActivity() { + + private lateinit var taskId: String + private lateinit var certificateViewModel: CertificateViewModel + + override fun initData() { + taskId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + approverView.text = it.data.name + } + } + + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.agreeResult.observe(this) { + if (it.code == 200) { + finish() + } + } + + certificateViewModel.rejectResult.observe(this) { + if (it.code == 200) { + finish() + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + submitButton.setOnClickListener { + if (remarkView.text.isNullOrBlank()) { + "审批结论/意见不能为空".show(this) + return@setOnClickListener + } + + if (agreeButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否通过该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.agree(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + if (overruleButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否驳回该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.reject(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + } + + cancelButton.setOnClickListener { finish() } + } + + override fun initLayoutView(): Int = R.layout.activity_approval_operation + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + + titleView.text = "审批" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index d14c729..f4ea0c1 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,6 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.vm.LoadState @@ -22,11 +23,12 @@ class CertificateReportDetailActivity : KotlinBaseActivity() { private var fragmentPages: ArrayList = ArrayList() + private lateinit var args: ArrayList private lateinit var certificateViewModel: CertificateViewModel private lateinit var detailModel: CertificateDetailModel.DataModel override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! when (args[0]) { "草稿箱" -> { @@ -82,7 +84,8 @@ if (approvalView.text == "提交") { certificateViewModel.submit(detailModel.id) } else if (approvalView.text == "审批") { - + //taskId + navigatePageTo(args[2]) } } } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 4b2a9c1..933b489 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -58,7 +58,7 @@ override fun initData() { //证书 configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] - configViewModel.getDictionaryByCode("certificationClass") + configViewModel.getDictionaryByCode("certificationType") configViewModel.dictionary.observe(this) { if (it.code == 200) { val typeAdapter2 = CertificateTypeAdapter2(this, it.data) diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt index e088887..b4d52f9 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt @@ -24,6 +24,8 @@ val certificateList = MutableLiveData() val certificateDetail = MutableLiveData() val submitResult = MutableLiveData() + val agreeResult = MutableLiveData() + val rejectResult = MutableLiveData() fun getCertificateReportList( approvalStatus: String, @@ -101,4 +103,42 @@ it.cause.toString().show(BaseApplication.get()) it.printStackTrace() }) + + fun agree(taskId: String, comments: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.agree(taskId, comments) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + agreeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + it.printStackTrace() + }) + + fun reject(taskId: String, comments: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.reject(taskId, comments) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + rejectResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml b/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml new file mode 100644 index 0000000..0b1ae2d --- /dev/null +++ b/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") 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 269f5ec..912889f 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 @@ -846,7 +846,7 @@ } /** - * 提交证书报告 + * 证书报告-提交 */ suspend fun submit(id: String): String { val param = JsonObject() @@ -859,6 +859,32 @@ } /** + * 证书报告-审批同意 + */ + suspend fun agree(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.agree(AuthenticationHelper.token!!, requestBody) + } + + /** + * 证书报告-审批驳回 + */ + suspend fun reject(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.reject(AuthenticationHelper.token!!, requestBody) + } + + /** * 全局搜索 */ suspend fun getGlobalSearchResult( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt new file mode 100644 index 0000000..020a181 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -0,0 +1,111 @@ +package com.casic.xz.meterage.view.home + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.CertificateViewModel +import com.casic.xz.meterage.vm.UserViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.android.synthetic.main.activity_approval_operation.* +import kotlinx.android.synthetic.main.include_base_title.* + +class ApprovalOperationActivity : KotlinBaseActivity() { + + private lateinit var taskId: String + private lateinit var certificateViewModel: CertificateViewModel + + override fun initData() { + taskId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + approverView.text = it.data.name + } + } + + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.agreeResult.observe(this) { + if (it.code == 200) { + finish() + } + } + + certificateViewModel.rejectResult.observe(this) { + if (it.code == 200) { + finish() + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + submitButton.setOnClickListener { + if (remarkView.text.isNullOrBlank()) { + "审批结论/意见不能为空".show(this) + return@setOnClickListener + } + + if (agreeButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否通过该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.agree(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + if (overruleButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否驳回该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.reject(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + } + + cancelButton.setOnClickListener { finish() } + } + + override fun initLayoutView(): Int = R.layout.activity_approval_operation + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + + titleView.text = "审批" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index d14c729..f4ea0c1 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,6 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.vm.LoadState @@ -22,11 +23,12 @@ class CertificateReportDetailActivity : KotlinBaseActivity() { private var fragmentPages: ArrayList = ArrayList() + private lateinit var args: ArrayList private lateinit var certificateViewModel: CertificateViewModel private lateinit var detailModel: CertificateDetailModel.DataModel override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! when (args[0]) { "草稿箱" -> { @@ -82,7 +84,8 @@ if (approvalView.text == "提交") { certificateViewModel.submit(detailModel.id) } else if (approvalView.text == "审批") { - + //taskId + navigatePageTo(args[2]) } } } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 4b2a9c1..933b489 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -58,7 +58,7 @@ override fun initData() { //证书 configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] - configViewModel.getDictionaryByCode("certificationClass") + configViewModel.getDictionaryByCode("certificationType") configViewModel.dictionary.observe(this) { if (it.code == 200) { val typeAdapter2 = CertificateTypeAdapter2(this, it.data) diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt index e088887..b4d52f9 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt @@ -24,6 +24,8 @@ val certificateList = MutableLiveData() val certificateDetail = MutableLiveData() val submitResult = MutableLiveData() + val agreeResult = MutableLiveData() + val rejectResult = MutableLiveData() fun getCertificateReportList( approvalStatus: String, @@ -101,4 +103,42 @@ it.cause.toString().show(BaseApplication.get()) it.printStackTrace() }) + + fun agree(taskId: String, comments: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.agree(taskId, comments) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + agreeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + it.printStackTrace() + }) + + fun reject(taskId: String, comments: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.reject(taskId, comments) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + rejectResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml b/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml new file mode 100644 index 0000000..0b1ae2d --- /dev/null +++ b/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/button_white_selector.xml b/app/src/main/res/drawable/button_white_selector.xml new file mode 100644 index 0000000..cd713c6 --- /dev/null +++ b/app/src/main/res/drawable/button_white_selector.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfce544..6f9aaab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 85f4c58..e925e72 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -146,7 +146,7 @@ viewHolder.setOnClickListener(R.id.showDetailButton) { requireContext().navigatePageTo( - addAll(item.approvalStatusName, item.id) + addAll(item.approvalStatusName, item.id, item.taskId) ) } } 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 98f7eae..8f1672b 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 @@ -377,7 +377,7 @@ ): String /** - * 提交证书 + * 证书报告-提交 */ @POST("/business/certificateReport/submit") suspend fun submit( @@ -386,6 +386,24 @@ ): String /** + * 证书报告-审批同意 + */ + @POST("/approval/operate/agree") + suspend fun agree( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 证书报告-审批驳回 + */ + @POST("/approval/operate/reject") + suspend fun reject( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 全局搜索 */ @POST("/meter/assets/queryEquipment") 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 269f5ec..912889f 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 @@ -846,7 +846,7 @@ } /** - * 提交证书报告 + * 证书报告-提交 */ suspend fun submit(id: String): String { val param = JsonObject() @@ -859,6 +859,32 @@ } /** + * 证书报告-审批同意 + */ + suspend fun agree(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.agree(AuthenticationHelper.token!!, requestBody) + } + + /** + * 证书报告-审批驳回 + */ + suspend fun reject(taskId: String, comments: String): String { + val param = JsonObject() + param.addProperty("taskId", taskId) + param.addProperty("comments", comments) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.reject(AuthenticationHelper.token!!, requestBody) + } + + /** * 全局搜索 */ suspend fun getGlobalSearchResult( diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt new file mode 100644 index 0000000..020a181 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -0,0 +1,111 @@ +package com.casic.xz.meterage.view.home + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.CertificateViewModel +import com.casic.xz.meterage.vm.UserViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.android.synthetic.main.activity_approval_operation.* +import kotlinx.android.synthetic.main.include_base_title.* + +class ApprovalOperationActivity : KotlinBaseActivity() { + + private lateinit var taskId: String + private lateinit var certificateViewModel: CertificateViewModel + + override fun initData() { + taskId = intent.getStringExtra(Constant.INTENT_PARAM)!! + + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + approverView.text = it.data.name + } + } + + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.agreeResult.observe(this) { + if (it.code == 200) { + finish() + } + } + + certificateViewModel.rejectResult.observe(this) { + if (it.code == 200) { + finish() + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + submitButton.setOnClickListener { + if (remarkView.text.isNullOrBlank()) { + "审批结论/意见不能为空".show(this) + return@setOnClickListener + } + + if (agreeButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否通过该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.agree(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + if (overruleButton.isChecked) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("是否驳回该证书报告审批?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + certificateViewModel.reject(taskId, remarkView.text.toString()) + } + + override fun onCancelClick() { + + } + }).build().show() + } + } + + cancelButton.setOnClickListener { finish() } + } + + override fun initLayoutView(): Int = R.layout.activity_approval_operation + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + + titleView.text = "审批" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index d14c729..f4ea0c1 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,6 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.vm.LoadState @@ -22,11 +23,12 @@ class CertificateReportDetailActivity : KotlinBaseActivity() { private var fragmentPages: ArrayList = ArrayList() + private lateinit var args: ArrayList private lateinit var certificateViewModel: CertificateViewModel private lateinit var detailModel: CertificateDetailModel.DataModel override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! when (args[0]) { "草稿箱" -> { @@ -82,7 +84,8 @@ if (approvalView.text == "提交") { certificateViewModel.submit(detailModel.id) } else if (approvalView.text == "审批") { - + //taskId + navigatePageTo(args[2]) } } } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 4b2a9c1..933b489 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -58,7 +58,7 @@ override fun initData() { //证书 configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] - configViewModel.getDictionaryByCode("certificationClass") + configViewModel.getDictionaryByCode("certificationType") configViewModel.dictionary.observe(this) { if (it.code == 200) { val typeAdapter2 = CertificateTypeAdapter2(this, it.data) diff --git a/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt index e088887..b4d52f9 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt @@ -24,6 +24,8 @@ val certificateList = MutableLiveData() val certificateDetail = MutableLiveData() val submitResult = MutableLiveData() + val agreeResult = MutableLiveData() + val rejectResult = MutableLiveData() fun getCertificateReportList( approvalStatus: String, @@ -101,4 +103,42 @@ it.cause.toString().show(BaseApplication.get()) it.printStackTrace() }) + + fun agree(taskId: String, comments: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.agree(taskId, comments) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + agreeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + it.printStackTrace() + }) + + fun reject(taskId: String, comments: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.reject(taskId, comments) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + rejectResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + loadState.value = LoadState.Fail + it.cause.toString().show(BaseApplication.get()) + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml b/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml new file mode 100644 index 0000000..0b1ae2d --- /dev/null +++ b/app/src/main/res/drawable/bg_stroke_layout_radius_3.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/button_white_selector.xml b/app/src/main/res/drawable/button_white_selector.xml new file mode 100644 index 0000000..cd713c6 --- /dev/null +++ b/app/src/main/res/drawable/button_white_selector.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_approval_operation.xml b/app/src/main/res/layout/activity_approval_operation.xml new file mode 100644 index 0000000..b73dfe2 --- /dev/null +++ b/app/src/main/res/layout/activity_approval_operation.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +