Эх сурвалжийг харах

接入上传检查签名接口;适配签名显示;调整检查页面逻辑

Frankensteinly 8 сар өмнө
parent
commit
0e40c9635a

+ 23 - 0
app/src/main/java/com/grkj/iscs_mc/model/UrlConsts.kt

@@ -275,4 +275,27 @@ object UrlConsts {
      * 查询物资属性值-分页
      */
     const val MATERIAL_PROPERTY_VALUE_PAGE = "/iscs/propvalue/getIsMaterialsPropertyValuePage"
+
+    /**
+     * 检查签名 从getLastCheckPlanByCabinetCode拿
+     */
+    const val INSERT_SIGN = "/iscs/hardware/material-api/insertSign"
+
+    /************************未接接口****************************/
+
+    /**
+     * 自动更换
+     */
+    const val AUTO_REPLACEMENT = "/iscs/hardware/material-api/insertAutoChange"
+
+    /**
+     * 手动更换物资
+     */
+    const val MANUAL_REPLACEMENT = "/iscs/hardware/material-api/insertReplaceRecord"
+
+    /**
+     * 手动更换物资-实体操作
+     * TODO 待定是否接入
+     */
+    const val MANUAL_REPLACEMENT_ENTITY = "/iscs/hardware/material-api/updateMaterialsReplace"
 }

+ 2 - 0
app/src/main/java/com/grkj/iscs_mc/model/vo/inspection/LatestInspectionPlanRespVO.kt

@@ -9,6 +9,8 @@ data class LatestInspectionPlanRespVO(
 
     val status: String?,    // 0:未开始 1:进行中 2:已完成
 
+    val signatureImg: String?,  // 签名图片
+
     val list: List<MaterialsCheckVO>?
 ) {
     data class MaterialsCheckVO(

+ 22 - 0
app/src/main/java/com/grkj/iscs_mc/util/NetApi.kt

@@ -983,4 +983,26 @@ object NetApi {
             },isGet = true, isAuth = true
         )
     }
+
+    /**
+     * 检查签名
+     */
+    fun insertSign(planId: Long, cabinetCode: String, signatureImg: String, callBack: (Boolean) -> Unit) {
+        NetHttpManager.getInstance().doRequestNet(
+            UrlConsts.INSERT_SIGN,
+            false,
+            mapOf(
+                "planId" to planId,
+                "cabinetCode" to cabinetCode,
+                "signatureImg" to signatureImg
+            ),
+            { res, _, _ ->
+                res?.let {
+                    callBack.invoke(true)
+                } ?: run {
+                    callBack.invoke(false)
+                }
+            }, isGet = false, isAuth = true
+        )
+    }
 }

+ 14 - 4
app/src/main/java/com/grkj/iscs_mc/view/fragment/MaterialInspectionPlanFragment.kt

@@ -22,6 +22,7 @@ class MaterialInspectionPlanFragment :
     BaseMvpFragment<IMaterialInspectionPlanView, MaterialInspectionPlanPresenter, FragmentMaterialInspectionPlanBinding>() {
 
     private val mCheckList = mutableListOf<LatestInspectionPlanRespVO.MaterialsCheckVO>()
+    private var mPlanId: Long? = null
 
     override val viewBinding: FragmentMaterialInspectionPlanBinding
         get() = FragmentMaterialInspectionPlanBinding.inflate(layoutInflater)
@@ -47,6 +48,8 @@ class MaterialInspectionPlanFragment :
         }
 
         presenter?.getLatestInspectionPlan {
+            mPlanId = it?.planId
+
             mBinding?.tvTitle?.text = "${getString(R.string.plan_date)}:${it?.planDate}  " +
                     "${getString(R.string.plan_status)}:" +
                     when (it?.status) {
@@ -68,10 +71,17 @@ class MaterialInspectionPlanFragment :
                     mBinding?.cbSubmit?.visibility = View.VISIBLE
                 }
             }
+
+            it?.signatureImg?.let { itSign ->
+                Glide.with(this).load(ImgUtil.base64ToImage(itSign)).into(mBinding?.ivSign!!)
+            }
         }
 
+        mBinding?.cbSign?.visibility = View.VISIBLE
         mBinding?.cbSign?.setOnClickListener {
-            navigateTo(MaterialInspectionPlanFragmentDirections.actionInspectionPlanFragmentToInspectionSignatureFragment())
+            mPlanId?.let {
+                navigateTo(MaterialInspectionPlanFragmentDirections.actionInspectionPlanFragmentToInspectionSignatureFragment(it))
+            }
         }
 
         mBinding?.cbStart?.setOnClickListener {
@@ -91,15 +101,15 @@ class MaterialInspectionPlanFragment :
         bitmap?.let {
             // TODO 处理签名bitmap
         }
-
-//        navigateTo(MaterialInspectionPlanFragmentDirections.actionInspectionPlanFragmentToInspectionTableFragment())
     }
 
     private fun startInspection() {
         val dialog = TipDialog(requireContext())
         dialog.setTip(getString(R.string.inspection_start_tip))
         dialog.setConfirmListener {
-
+            mPlanId?.let {
+                navigateTo(MaterialInspectionPlanFragmentDirections.actionInspectionPlanFragmentToInspectionTableFragment(it))
+            }
         }
         dialog.show()
     }

+ 29 - 11
app/src/main/java/com/grkj/iscs_mc/view/fragment/MaterialInspectionSignatureFragment.kt

@@ -2,11 +2,14 @@ package com.grkj.iscs_mc.view.fragment
 
 import android.os.Bundle
 import androidx.navigation.NavOptions
+import androidx.navigation.fragment.navArgs
 import com.grkj.iscs_mc.R
 import com.grkj.iscs_mc.databinding.FragmentMaterialInspectionSignatureBinding
 import com.grkj.iscs_mc.extentions.navigateTo
 import com.grkj.iscs_mc.extentions.navigateUp
+import com.grkj.iscs_mc.extentions.serialNo
 import com.grkj.iscs_mc.util.ImgUtil
+import com.grkj.iscs_mc.util.NetApi
 import com.grkj.iscs_mc.view.base.BaseFragment
 
 /**
@@ -15,6 +18,8 @@ import com.grkj.iscs_mc.view.base.BaseFragment
 class MaterialInspectionSignatureFragment :
     BaseFragment<FragmentMaterialInspectionSignatureBinding>() {
 
+    private var mPlanId: Long? = null
+
     override val viewBinding: FragmentMaterialInspectionSignatureBinding
         get() = FragmentMaterialInspectionSignatureBinding.inflate(layoutInflater)
 
@@ -28,19 +33,32 @@ class MaterialInspectionSignatureFragment :
             mBinding?.sv?.clear()
         }
 
+        val args: MaterialInspectionSignatureFragmentArgs by navArgs()
+        mPlanId = args.planId
+
         mBinding?.cbConfirm?.setOnClickListener {
             val bitmap = mBinding?.sv?.drawingCache
-            val bundle = Bundle()
-            bundle.putString("bitmap", ImgUtil.imageToBase64(bitmap!!))
-
-            navigateTo(
-                R.id.action_inspection_signature_fragment_to_inspection_plan_fragment,
-                bundle,
-                NavOptions.Builder()
-                    .setLaunchSingleTop(true)
-                    .setPopUpTo(R.id.material_inspection_plan_fragment, true, false)
-                    .build()
-            )
+            // 页面回传图片,暂时取消,改成直接上传后端
+//            val bundle = Bundle()
+//            bundle.putString("bitmap", ImgUtil.imageToBase64(bitmap!!))
+//
+//            navigateTo(
+//                R.id.action_inspection_signature_fragment_to_inspection_plan_fragment,
+//                bundle,
+//                NavOptions.Builder()
+//                    .setLaunchSingleTop(true)
+//                    .setPopUpTo(R.id.material_inspection_plan_fragment, true, false)
+//                    .build()
+//            )
+
+            mPlanId?.let {
+                NetApi.insertSign(it, requireContext().serialNo(), ImgUtil.imageToBase64(bitmap!!)) {
+                    if (it) {
+                        navigateUp()
+                    }
+                }
+            }
+
         }
     }
 }

+ 24 - 6
app/src/main/res/layout/fragment_material_inspection_plan.xml

@@ -69,14 +69,32 @@
             style="@style/CommonTextView"
             android:layout_marginTop="@dimen/common_spacing_small" />
 
-        <com.grkj.iscs_mc.view.widget.CommonBtn
-            android:id="@+id/cb_sign"
+        <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_alignParentRight="true"
-            android:visibility="gone"
-            app:btn_bg="@drawable/common_btn_green_bg"
-            app:btn_name="@string/sign" />
+            android:layout_alignParentRight="true">
+
+            <com.grkj.iscs_mc.view.widget.CommonBtn
+                android:id="@+id/cb_sign"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:visibility="gone"
+                app:btn_bg="@drawable/common_btn_green_bg"
+                app:btn_name="@string/sign"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintRight_toRightOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <ImageView
+                android:id="@+id/iv_sign"
+                android:layout_width="0dp"
+                android:layout_height="0dp"
+                app:layout_constraintBottom_toBottomOf="@id/cb_sign"
+                app:layout_constraintLeft_toLeftOf="@id/cb_sign"
+                app:layout_constraintRight_toRightOf="@id/cb_sign"
+                app:layout_constraintTop_toTopOf="@id/cb_sign" />
+        </androidx.constraintlayout.widget.ConstraintLayout>
 
         <com.google.android.material.card.MaterialCardView
             android:layout_width="match_parent"

+ 1 - 0
app/src/main/res/navigation/nav_graph.xml

@@ -151,6 +151,7 @@
         android:id="@+id/material_inspection_signature_fragment"
         android:name="com.grkj.iscs_mc.view.fragment.MaterialInspectionSignatureFragment"
         tools:layout="@layout/fragment_material_inspection_signature">
+        <argument android:name="planId" app:argType="long" />
         <action
             android:id="@+id/action_inspection_signature_fragment_to_inspection_plan_fragment"
             app:destination="@id/material_inspection_plan_fragment"