| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package com.example.chemical.ui.warehousing
- import android.os.Bundle
- import android.os.Handler
- import android.os.Looper
- import android.view.LayoutInflater
- import com.bumptech.glide.Glide
- import com.bumptech.glide.load.engine.DiskCacheStrategy
- import com.bumptech.glide.request.RequestOptions
- import com.caysn.autoreplyprint.AutoReplyPrint
- import com.example.chemical.ChemicalApp
- import com.example.chemical.R
- import com.example.chemical.databinding.ActivityElectronicLedgerBinding
- import com.example.chemical.ui.SplashActivity
- import com.example.chemical.ui.common.BaseCountDownActivity
- import com.example.chemical.utils.BitmapUtils
- import com.example.chemical.utils.MediaPlayerHelper
- import com.example.chemical.utils.TimeUpdater
- import com.example.chemical.utils.UiManager
- import com.example.chemical.weidith.AirBottleDialog
- import com.example.chemical.weidith.CustomDialog
- import com.rc.core.log.RcLog
- import com.rc.httpcore.HttpClient
- import com.rc.httpcore.HttpConfig
- import com.sun.jna.Pointer
- //标签管理
- class ElectronicLedgerActivity : BaseCountDownActivity<ActivityElectronicLedgerBinding>() {
- private lateinit var timeUpdater: TimeUpdater
- override fun createViewBinding() =
- ActivityElectronicLedgerBinding.inflate(LayoutInflater.from(this))
- override fun initViews(savedInstanceState: Bundle?) {
- super.initViews(savedInstanceState)
- viewBinding.tvReturn.text = "返回${ChemicalApp.confs!!.backTime}s"
- viewBinding.tvOutLogin.setOnClickListener {
- callLogoutApi {
- ChemicalApp.userData = null
- HttpClient.token = null
- ChemicalApp.subjectId = null
- UiManager.switcherCashier(this, SplashActivity::class.java)
- }
- }
- viewBinding.tvReturn.setOnClickListener {
- finish()
- }
- viewBinding.chemicalLabeling.setOnClickListener {
- //化学品标签
- UiManager.switcher(this, ChemicalLabelingActivity::class.java)
- }
- viewBinding.cylinderLabel.setOnClickListener {
- //气瓶标签
- var airBottleDialog = AirBottleDialog(this, object : AirBottleDialog.ILintDate {
- override fun onLintDate(cont: String) {
- if (cont.isNotEmpty()){
- labelPrint(cont)
- }
- }
- })
- airBottleDialog.show()
- }
- }
- override fun initData() {
- super.initData()
- val handler = Handler(Looper.getMainLooper())
- timeUpdater = TimeUpdater(handler) { currentTime ->
- viewBinding.nowTime.text = "$currentTime"
- }
- // 启动定时更新
- timeUpdater.startUpdating()
- viewBinding.tvName.text = ChemicalApp.userData!!.userName
- val imageView = viewBinding.imageName
- // 使用 Glide 加载网络图片
- Glide.with(this)
- .load("${HttpConfig.API_BASE_IMG_URL}${ChemicalApp.userData!!.avatar}")
- .apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.AUTOMATIC))
- .into(imageView)
- // 使用 Glide 加载网络图片
- viewBinding.deptName.text="${ChemicalApp.confs!!.deptName}-${ChemicalApp.confs!!.roomNum}"
- Glide.with(this)
- .load("${HttpConfig.API_BASE_IMG_URL}${ChemicalApp.confs!!.circularLogo}")
- .apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.AUTOMATIC))
- .into(viewBinding.image)
- }
- override fun onBackPressed() {
- super.onBackPressed()
- finish()
- }
- override fun cdTime(cd: Int) {
- viewBinding.tvReturn.text = "返回${cd}s"
- }
- override fun onDestroy() {
- super.onDestroy()
- try {
- timeUpdater.stopUpdating()
- } catch (e: Exception) {
- }
- }
- var h = Pointer.NULL
- private fun labelPrint(rfid:String) {
- val thread = Thread {
- try {
- try {//关闭打印
- h = AutoReplyPrint.INSTANCE.CP_Port_OpenUsb("VID:0x0FE6,PID:0x811E", 1)
- } catch (e: Exception) {
- RcLog.info("初始化异常")
- }
- val bitmap = BitmapUtils.airBottlePrint(rfid) //图片信息
- AutoReplyPrint.INSTANCE.CP_Label_BackPaperToPrintPosition(h)
- AutoReplyPrint.CP_Pos_PrintRasterImageFromData_Helper.PrintRasterImageFromBitmap(
- h,
- bitmap!!.width,
- bitmap.height,
- bitmap,
- AutoReplyPrint.CP_ImageBinarizationMethod_Thresholding,
- AutoReplyPrint.CP_ImageCompressionMethod_None
- )
- AutoReplyPrint.INSTANCE.CP_Label_PagePrint(h, 1)
- val result = AutoReplyPrint.INSTANCE.CP_Pos_HalfCutPaper(h) //全切
- if (result) {
- //打印成功
- MediaPlayerHelper.playRawMp3(this, R.raw.zhantiefrid)
- customDialogView(0, "请将二维码粘贴在RFID标签上")
- closePort()
- } else {
- //失败
- closePort()
- RcLog.info("=====异常2222")
- }
- } catch (e: Exception) {
- // 监听子线程中抛出的异常
- closePort()
- RcLog.info("=======异常${e.message}")
- }
- }
- thread.start() // 启动子线程
- }
- private fun closePort() {
- if (h !== Pointer.NULL) {
- AutoReplyPrint.INSTANCE.CP_Port_Close(h)
- h = Pointer.NULL
- }
- }
- /**
- * 0 没有图标 1 绿色(成功) 2红色(失败)
- * 失败或者成功的弹框
- */
- private fun customDialogView(types: Int, msg: String) {
- if (!this.isFinishing && !this.isDestroyed) {
- val customDialog = CustomDialog(this, types, msg)
- customDialog.show()
- }
- }
- }
|