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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_entrust_add.xml b/app/src/main/res/layout/activity_entrust_add.xml
index 8450d1d..ba856c7 100644
--- a/app/src/main/res/layout/activity_entrust_add.xml
+++ b/app/src/main/res/layout/activity_entrust_add.xml
@@ -245,7 +245,8 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:paddingHorizontal="@dimen/dp_5"
- app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+ app:spanCount="2"
+ app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" />
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_entrust_add.xml b/app/src/main/res/layout/activity_entrust_add.xml
index 8450d1d..ba856c7 100644
--- a/app/src/main/res/layout/activity_entrust_add.xml
+++ b/app/src/main/res/layout/activity_entrust_add.xml
@@ -245,7 +245,8 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:paddingHorizontal="@dimen/dp_5"
- app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+ app:spanCount="2"
+ app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" />
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 8d6ff21..0932e98 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -9,6 +9,16 @@
- @drawable/button_main_selector
+
+
+
+