Sfoglia il codice sorgente

1.刷卡验证接口入参改为10进制
2.去掉视频上传功能
3.调整打印机位置

JaycePC 1 anno fa
parent
commit
edc2633366

+ 27 - 2
HttpCoreLibrary/src/main/java/com/rc/httpcore/client/ApiRepository.kt

@@ -1,10 +1,34 @@
 package com.rc.httpcore.client
 
+import android.util.Log
+import com.google.gson.Gson
 import com.rc.httpcore.HttpClient
 import com.rc.httpcore.vo.CommonListResponse
 import com.rc.httpcore.vo.Optional
-import com.rc.httpcore.vo.request.*
-import com.rc.httpcore.vo.response.*
+import com.rc.httpcore.vo.request.AlarmRecordReq
+import com.rc.httpcore.vo.request.ChemicalReq
+import com.rc.httpcore.vo.request.FaceCompareReq
+import com.rc.httpcore.vo.request.LearnLoginReq
+import com.rc.httpcore.vo.request.OperRecordReq
+import com.rc.httpcore.vo.request.OutputStockReq
+import com.rc.httpcore.vo.request.RevertReq
+import com.rc.httpcore.vo.request.TagCodeReq
+import com.rc.httpcore.vo.request.UpdateAlarmRecordReq
+import com.rc.httpcore.vo.request.UpdateRfidReq
+import com.rc.httpcore.vo.request.UseReq
+import com.rc.httpcore.vo.request.UserValidationVo
+import com.rc.httpcore.vo.response.AioAlarmRecordVo
+import com.rc.httpcore.vo.response.AioUserecordVo
+import com.rc.httpcore.vo.response.ApkInfoResp
+import com.rc.httpcore.vo.response.CabinetBean
+import com.rc.httpcore.vo.response.CabinetLockVo
+import com.rc.httpcore.vo.response.ChemicalBean
+import com.rc.httpcore.vo.response.ConfLogo
+import com.rc.httpcore.vo.response.FileRespBean
+import com.rc.httpcore.vo.response.HazardBook
+import com.rc.httpcore.vo.response.LearnLoginVo
+import com.rc.httpcore.vo.response.LockRespBean
+import com.rc.httpcore.vo.response.SubInfoVo
 import io.reactivex.Observable
 import io.reactivex.android.schedulers.AndroidSchedulers
 import io.reactivex.schedulers.Schedulers
@@ -62,6 +86,7 @@ object ApiRepository {
             machineCode = androidId
             type = if (realLogin) "2" else "1"
         }
+        Log.d("Jayce", Gson().toJson(param))
         return if (realLogin) {
             val observable1 = client.learnLogin(param)
             val observable2 = client.authValidation()

+ 2 - 2
app/src/main/java/com/dlc/chemical/print/UsbPrinterManager.kt

@@ -22,8 +22,8 @@ object UsbPrinterManager {
     private const val ROTATE = 0
     private const val CONFIG_OFF = 0
     private const val CONFIG_ON = 1
-    private const val QR_X = 10
-    private const val QR_Y = 60
+    private const val QR_X = 20
+    private const val QR_Y = 25
     private const val QR_UNIT = 5
     private const val TXT_X = 210
     private const val FONT_HEIGHT = 24

+ 5 - 2
app/src/main/java/com/dlc/chemical/ui/MainActivity.kt

@@ -19,6 +19,7 @@ import com.dlc.chemical.iflytek.AudioPlayerManager
 import com.dlc.chemical.mqtt.MqttService
 import com.dlc.chemical.mqtt.event.UpdateEvent
 import com.dlc.chemical.print.UsbReceiver
+import com.dlc.chemical.serial.HexDump
 import com.dlc.chemical.serial.listener.OnSerialScanListener
 import com.dlc.chemical.serial.port.scan.PortScanHelper
 import com.dlc.chemical.serial.port.scan.PortScanService
@@ -33,6 +34,7 @@ import com.dlc.chemical.ui.tag.SelectTagTypeActivity
 import com.dlc.chemical.ui.tag.TagManagementActivity
 import com.dlc.chemical.ui.unlock.SelectAuthMethodActivity
 import com.dlc.chemical.ui.waring.WaringRecordActivity
+import com.google.gson.Gson
 import com.rc.core.util.ApkUpdater
 import com.rc.core.util.DeviceUtils
 import com.rc.httpcore.HttpClient
@@ -395,8 +397,9 @@ class MainActivity : BaseCountDownActivity<ActivityMainBinding>() {
         // 登录
         mHandleScanEvent = true
         showLoading("查询中...")
+        Log.d("Jayce", content)
         val disposable =
-            ApiRepository.learnLogin(content, CommonUtils.getAndroidId())
+            ApiRepository.learnLogin(HexDump.hexToDecimal(content).toString(), CommonUtils.getAndroidId())
                 .subscribe({
                     dismissLoading()
                     ChemicalApp.sLearnLoginVo = it
@@ -428,7 +431,7 @@ class MainActivity : BaseCountDownActivity<ActivityMainBinding>() {
     private fun callLearnLoginApi(username: String, callback: () -> Unit) {
         showLoading("查询中...")
         val disposable =
-            ApiRepository.learnLogin(username, CommonUtils.getAndroidId(), true)
+            ApiRepository.learnLogin(HexDump.hexToDecimal(username).toString(), CommonUtils.getAndroidId(), true)
                 .subscribe({ data ->
                     dismissLoading()
                     ChemicalApp.sLearnLoginVo = data

+ 34 - 129
app/src/main/java/com/dlc/chemical/ui/common/SteelyardVideoActivity.kt

@@ -3,21 +3,20 @@ package com.dlc.chemical.ui.common
 import android.annotation.SuppressLint
 import android.content.Intent
 import android.graphics.Typeface
-import android.os.*
+import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.os.Parcel
+import android.os.Parcelable
 import android.view.View
-import android.view.ViewTreeObserver
 import com.dlc.chemical.R
 import com.dlc.chemical.camera.ISafetyCheck
-import com.dlc.chemical.camera.MediaType
-import com.dlc.chemical.camera.OnMediaResultListener
-import com.dlc.chemical.camera.TakeVideoHelper
 import com.dlc.chemical.common.CommonUtils
 import com.dlc.chemical.databinding.ActivitySteelyardVideoBinding
 import com.dlc.chemical.iflytek.AudioPlayerManager
 import com.dlc.chemical.serial.usb.steelyard.SteelyardHelper
 import com.dlc.chemical.serial.usb.steelyard.SteelyardManager
-import com.dlc.chemical.sp.CameraSp
-import com.dlc.chemical.sp.CameraType
 import com.dlc.chemical.ui.MainActivity
 import com.dlc.chemical.ui.dialog.InputWeightDialog
 import com.dlc.chemical.ui.dialog.SimpleTwoLinesDialog
@@ -26,8 +25,6 @@ import com.dlc.chemical.ui.widget.TitleBar
 import com.rc.core.log.RcLog
 import com.rc.core.util.FastClickDelegate
 import com.rc.core.util.trimEndZero
-import com.rc.httpcore.net.UploadTask
-import okhttp3.*
 import java.math.BigDecimal
 import java.math.RoundingMode
 
@@ -38,27 +35,13 @@ import java.math.RoundingMode
  * @author ReiChin_
  */
 class SteelyardVideoActivity : BaseCountDownActivity<ActivitySteelyardVideoBinding>(),
-    TitleBar.TitleListener,
-    ViewTreeObserver.OnGlobalLayoutListener,
-    OnMediaResultListener {
+    TitleBar.TitleListener {
 
-    companion object {
-        private const val WHAT_RECORDING = 1
-
-        private const val RECORDING_HEART = 300L
-    }
-
-    //    private val weakHandler by lazy { WeakReferenceHandler(this) }
     private lateinit var mModuleEnum: ModuleEnum
     private lateinit var mExtraParam: ExtraParam
     private var mSteelyard = true
     private lateinit var mChemicalUnit: String
 
-    private var mISafetyCheck: ISafetyCheck? = null
-    private var mVideoFilepath: String? = null // 录制的视频文件
-    private var mVideoError = false
-
-    private val mHandler = Handler()
     override fun beforeSetContentView() {
         mModuleEnum = intent.getSerializableExtra("moduleEnum") as ModuleEnum
         mExtraParam = intent.getParcelableExtra("extraParam") as ExtraParam
@@ -78,8 +61,8 @@ class SteelyardVideoActivity : BaseCountDownActivity<ActivitySteelyardVideoBindi
 
         viewBinding.steelyardImg.setImageResource(if (mSteelyard) R.mipmap.icon_dzc else R.mipmap.icon_rk_pzhxp)
 
-        // 在布局结束后才做初始化操作
-        viewBinding.previewView.viewTreeObserver.addOnGlobalLayoutListener(this)
+//        // 在布局结束后才做初始化操作
+//        viewBinding.previewView.viewTreeObserver.addOnGlobalLayoutListener(this)
 
         // 重量
         viewBinding.weighingValue.setOnClickListener {
@@ -101,7 +84,6 @@ class SteelyardVideoActivity : BaseCountDownActivity<ActivitySteelyardVideoBindi
 
         // 取消
         viewBinding.cancel.setOnClickListener(FastClickDelegate {
-            mISafetyCheck?.cancel()
             finish()
         })
 
@@ -116,7 +98,7 @@ class SteelyardVideoActivity : BaseCountDownActivity<ActivitySteelyardVideoBindi
 //            AudioPlayerManager.speakVoice(R.raw.audio_weight_idle)
 //            thread = Thread(Runnable {
 //                RcLog.info("子线程播放语音")
-                AudioPlayerManager.speakVoice(R.raw.audio_weight_idle)
+            AudioPlayerManager.speakVoice(R.raw.audio_weight_idle)
 //            })
         } else {
 //            viewBinding.weighingTips.setText(R.string.weight_idle_hand)
@@ -138,18 +120,18 @@ class SteelyardVideoActivity : BaseCountDownActivity<ActivitySteelyardVideoBindi
     private fun dispatchSaveClicked() {
         if (verifySaveParam()) {
             handleSaveAction {
-                if (mVideoError) {
-                    showToast("视频录制出错,请返回重新操作。")
-                    return@handleSaveAction
-                }
-                if (mSteelyard) mSteelyardHelper.stopWeighing = true
-                if (null == mVideoFilepath) {
-                    RcLog.info("clicked save button, then call stopRecording(), mISafetyCheck is null? ${null == mISafetyCheck}")
-                    mISafetyCheck?.stopRecording()
-                } else {
-                    // 直接上传视频文件
-                    callUploadFile(mVideoFilepath!!)
-                }
+//                if (mVideoError) {
+//                    showToast("视频录制出错,请返回重新操作。")
+//                    return@handleSaveAction
+//                }
+//                if (mSteelyard) mSteelyardHelper.stopWeighing = true
+//                if (null == mVideoFilepath) {
+//                    RcLog.info("clicked save button, then call stopRecording(), mISafetyCheck is null? ${null == mISafetyCheck}")
+//                    mISafetyCheck?.stopRecording()
+//                } else {
+                // 直接上传视频文件
+                callUploadFile()
+//                }
             }
         }
     }
@@ -285,7 +267,7 @@ class SteelyardVideoActivity : BaseCountDownActivity<ActivitySteelyardVideoBindi
         RcLog.info("[input] weight=${weight}, tareWeight=${mExtraParam.tareWeight}, netWeight=${netWeight}, joinType=${formatJoinType()}")
         RcLog.info("参数$netWeight")
         RcLog.info("参数{$mExtraParam.chemicalAmount}")
-        RcLog.info("参数"+CommonUtils.stringParseFloat(mExtraParam.chemicalAmount))
+        RcLog.info("参数" + CommonUtils.stringParseFloat(mExtraParam.chemicalAmount))
         if (netWeight > CommonUtils.stringParseFloat(mExtraParam.chemicalAmount)) {
             showToast("化学品净重超过规格!")
             return false
@@ -361,101 +343,25 @@ class SteelyardVideoActivity : BaseCountDownActivity<ActivitySteelyardVideoBindi
     }
 
     override fun onDestroy() {
-        mRecordingHandler.removeMessages(WHAT_RECORDING)
-        mISafetyCheck?.releaseCamera()
-        mISafetyCheck = null
-//        if (thread != null) {
-//            thread = null
-//        }
         super.onDestroy()
     }
 
-    override fun onGlobalLayout() {
-        viewBinding.previewView.viewTreeObserver.removeOnGlobalLayoutListener(this)
-        if (null == mISafetyCheck) {
-            val cameraId = CameraSp.loadConfig(this, CameraType.VIDEO)
-            mISafetyCheck = TakeVideoHelper(
-                this,
-                viewBinding.previewView,
-                cameraId
-            ).apply {
-                registerMediaResultListener(this@SteelyardVideoActivity)
-                initCamera()
-            }
-
-            viewBinding.previewView.postDelayed({
-                viewBinding.recording.visibility = View.VISIBLE
-                val message = mRecordingHandler.obtainMessage(WHAT_RECORDING, false)
-                mRecordingHandler.sendMessageDelayed(message, RECORDING_HEART)
-                mISafetyCheck?.capture()
-            }, 500)
-        }
-    }
-
-    private val mRecordingHandler = object : Handler(Looper.getMainLooper()) {
-
-        override fun handleMessage(msg: Message) {
-            if (isDestroyed) return
-
-            val visibility = msg.obj as? Boolean ?: false
-            viewBinding.recording.visibility =
-                if (visibility) View.VISIBLE else View.INVISIBLE
-
-            val message = obtainMessage(WHAT_RECORDING, !visibility)
-            sendMessageDelayed(message, RECORDING_HEART)
-        }
-    }
-
-    override fun onMedia(filepath: String?, mediaType: MediaType, timeout: Boolean) {
-        RcLog.info("onMedia() filepath=${filepath}, mediaType=${mediaType}, timeout=${timeout}")
-
-        viewBinding.recording.visibility = View.GONE
-        mRecordingHandler.removeMessages(WHAT_RECORDING)
-
-        if (filepath.isNullOrEmpty()) {
-            showToast("请重新拍摄!")
-            return
-        }
-
-        mVideoFilepath = filepath
-        if (!timeout) callUploadFile(filepath)
-    }
-
-    private fun callUploadFile(filepath: String) {
+    private fun callUploadFile() {
         // 开始上传:停止倒计时,避免在网络不好的情况下,未上传完成倒计时结束,关闭画面
         stopCountDown()
+
         if (isFinishing || isDestroyed) return
 
-        showLoading("上传中...")
-        UploadTask({ progress ->
-            showLoading("上传中...${progress}%")
-        }, { data ->
-            dismissLoading()
-            // 化学品重量
-            val weight =
-                viewBinding.weighingValue.getTag(R.id.tag_join_weight) as String? ?: "0.0"
-            // 入库方式(1 称重,2 录入)
-            val joinType = viewBinding.weighingValue.getTag(R.id.tag_join_type) as String?
-            val intent = Intent()
-            intent.putExtra("weight", weight)
-            intent.putExtra("joinType", joinType)
-            intent.putExtra("remoteFileUrl", data.url)
-            setResult(RESULT_OK, intent)
-            finish()
-        }, { throwable ->
-            startCountDown()
-            dismissLoading()
-            throwable?.let {
-                it.printStackTrace()
-                showNetError(it)
-            }
-        }).execute(filepath)
-    }
 
-    override fun onError(message: String?) {
-        mVideoError = true
-        RcLog.info("视频录入错误${message}")
-        showToast("视频录制出错,请返回重新操作。${message ?: ""}")
+        // 化学品重量
+        val weight = viewBinding.weighingValue.getTag(R.id.tag_join_weight) as String? ?: "0.0"
+        // 入库方式(1 称重,2 录入)
+        val joinType = viewBinding.weighingValue.getTag(R.id.tag_join_type) as String?
+        intent.putExtra("weight", weight)
+        intent.putExtra("joinType", joinType)
+//      intent.putExtra("remoteFileUrl", data.url)
+        setResult(RESULT_OK, intent)
+        finish()
     }
 
     override fun onHomeViewClicked(view: View) {
@@ -463,7 +369,6 @@ class SteelyardVideoActivity : BaseCountDownActivity<ActivitySteelyardVideoBindi
     }
 
     override fun onBackViewClicked(view: View) {
-        mISafetyCheck?.cancel()
         finish()
     }
 

+ 2 - 2
app/src/main/java/com/dlc/chemical/ui/input/InputStoreActivity.kt

@@ -261,7 +261,7 @@ class InputStoreActivity : BaseCountDownActivity<ActivityInputStoreBinding>(),
         // 入库方式(1 称重,2 录入)
         data.joinType = mJoinType
         // 入库视频
-        data.joinVideo = mRemoteFileUrl
+//        data.joinVideo = mRemoteFileUrl
         // 容器重量
         val tareWeight = viewBinding.tare.getTag(R.id.tag_join_weight) as String?
         if (!tareWeight.isNullOrEmpty()) {
@@ -410,7 +410,7 @@ class InputStoreActivity : BaseCountDownActivity<ActivityInputStoreBinding>(),
                     data ?: return
                     mWeight = data.getStringExtra("weight")
                     mJoinType = data.getStringExtra("joinType")
-                    mRemoteFileUrl = data.getStringExtra("remoteFileUrl")
+//                    mRemoteFileUrl = data.getStringExtra("remoteFileUrl")
 
                     if ("2" == mChemicalBean.classifyConfig.joinStatus) {
                         // 2-双人双卡

+ 2 - 1
app/src/main/java/com/dlc/chemical/ui/login/LoginActivity.kt

@@ -11,6 +11,7 @@ import com.dlc.chemical.ChemicalApp
 import com.dlc.chemical.camera.FaceEngineHelper
 import com.dlc.chemical.common.CommonUtils
 import com.dlc.chemical.databinding.ActivityLoginBinding
+import com.dlc.chemical.serial.HexDump
 import com.dlc.chemical.ui.common.BaseCountDownActivity
 import com.dlc.chemical.ui.widget.TitleBar
 import com.rc.core.log.RcLog
@@ -187,7 +188,7 @@ class LoginActivity : BaseCountDownActivity<ActivityLoginBinding>(),
         }
 
         showLoading("查询中...")
-        val disposable = ApiRepository.learnLogin(username, CommonUtils.getAndroidId(), realLogin)
+        val disposable = ApiRepository.learnLogin(HexDump.hexToDecimal(username).toString(), CommonUtils.getAndroidId(), realLogin)
             .subscribe({ data ->
                 dismissLoading()
                 ChemicalApp.sLearnLoginVo = data

+ 1 - 2
app/src/main/java/com/dlc/chemical/ui/revert/RevertActivity.kt

@@ -92,7 +92,6 @@ class RevertActivity : BaseCountDownActivity<ActivityRevertBinding>(),
             id = mChemicalBean.hxpUserecord.id
             returnStockNum = mWeight
             returnType = mJoinType
-            returnVideo = mRemoteFileUrl
             backOneUser = mJoinOneUser
             backTwoUser = mJoinTwoUser
             this.lockLogId = lockLogId
@@ -173,7 +172,7 @@ class RevertActivity : BaseCountDownActivity<ActivityRevertBinding>(),
                     data ?: return
                     mWeight = data.getStringExtra("weight")!!
                     mJoinType = data.getStringExtra("joinType")!!
-                    mRemoteFileUrl = data.getStringExtra("remoteFileUrl")!!
+//                    mRemoteFileUrl = data.getStringExtra("remoteFileUrl")!!
 
                     if ("2" == mChemicalBean.classifyConfig.returnStatus) {
                         // 2-双人双卡

+ 3 - 4
app/src/main/java/com/dlc/chemical/ui/use/UseWeightActivity.kt

@@ -75,13 +75,12 @@ class UseWeightActivity : BaseCountDownActivity<ActivityUseWeightBinding>(),
         startActivityForResult(intent, REQ_STEELYARD_VIDEO)
     }
 
-    private fun callUseApi(weight: String, joinType: String, remoteFileUrl: String) {
+    private fun callUseApi(weight: String, joinType: String) {
         showLoading("保存中...")
         val param = UseReq().apply {
             stockId = mChemicalBean.id
             collectStockNum = weight
             outType = joinType
-            outVideo = remoteFileUrl
             outOneUser = intent.getStringExtra("oneUser")
             outTwoUser = intent.getStringExtra("twoUser")
             lockLogId = intent.getStringExtra("lockLogId")
@@ -141,8 +140,8 @@ class UseWeightActivity : BaseCountDownActivity<ActivityUseWeightBinding>(),
                     data ?: return
                     val weight = data.getStringExtra("weight")!!
                     val joinType = data.getStringExtra("joinType")!!
-                    val remoteFileUrl = data.getStringExtra("remoteFileUrl")!!
-                    callUseApi(weight, joinType, remoteFileUrl)
+//                    val remoteFileUrl = data.getStringExtra("remoteFileUrl")!!
+                    callUseApi(weight, joinType)
                 }
             }
         }

+ 1 - 0
app/src/main/res/layout/activity_query_chemicals.xml

@@ -249,6 +249,7 @@
                     android:layout_height="wrap_content"
                     app:layout_constraintBottom_toTopOf="@id/pageInfo"
                     app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintHorizontal_bias="0.0"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toTopOf="parent" />
 

+ 5 - 22
app/src/main/res/layout/activity_steelyard_video.xml

@@ -59,28 +59,11 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@id/moduleName">
 
-            <TextureView
-                android:id="@+id/previewView"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                android:layout_marginTop="10dp"
-                android:layout_marginBottom="10dp"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintDimensionRatio="4:3"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent" />
-
-            <View
-                android:id="@+id/recording"
-                android:layout_width="8dp"
-                android:layout_height="8dp"
-                android:layout_marginTop="8dp"
-                android:layout_marginEnd="8dp"
-                android:background="@drawable/point_red"
-                android:visibility="gone"
-                app:layout_constraintEnd_toEndOf="@id/previewView"
-                app:layout_constraintTop_toTopOf="@id/previewView" />
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@mipmap/ic_cheng_zhong_shi_yi"
+                tools:ignore="MissingConstraints" />
 
         </androidx.constraintlayout.widget.ConstraintLayout>