ProcessedActivity.kt 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. package xn.hxp.ui.uses
  2. import android.os.Bundle
  3. import android.view.LayoutInflater
  4. import android.view.View
  5. import androidx.recyclerview.widget.GridLayoutManager
  6. import androidx.recyclerview.widget.LinearLayoutManager
  7. import androidx.viewbinding.ViewBinding
  8. import com.bumptech.glide.Glide
  9. import com.bumptech.glide.load.engine.DiskCacheStrategy
  10. import com.bumptech.glide.request.RequestOptions
  11. import xn.hxp.app.ChemicalApp
  12. import xn.hxp.R
  13. import xn.hxp.databinding.ActivityProcessedBinding
  14. import xn.hxp.ui.adapter.*
  15. import xn.hxp.weidith.ImgDialogs
  16. import com.blankj.utilcode.util.LogUtils
  17. import com.rc.core.ui.activity.BaseActivity
  18. import com.rc.httpcore.HttpConfig
  19. import com.rc.httpcore.apk.ProcessedBean
  20. import com.rc.httpcore.client.ApiRepository
  21. import com.rc.httpcore.client.HttpTool
  22. import xn.hxp.weidith.TextTool
  23. import java.util.*
  24. //已处理 or 未处理 需要处理 // item_timeout
  25. class ProcessedActivity : BaseActivity() {
  26. //化学品信息
  27. private val mAdapter by lazy { TimeoutAdapter() }
  28. //
  29. private val mAdapterNotReceived by lazy { NotReceivedAdapter(this) }
  30. private val mChemicalTimeoutAdapter by lazy { ChemicalTimeoutAdapter() }
  31. //通知记录
  32. private val mAdapterLogVoList by lazy { LogVoListAdapter() }
  33. //报警信息
  34. private val mImgAdapter by lazy { SnapImgAdapter(this) }
  35. private var mNoticeId: String? = null
  36. private var mHandleNotes: String? = null
  37. lateinit var viewBinding: ActivityProcessedBinding
  38. override fun setViewBinding(): ViewBinding {
  39. viewBinding = ActivityProcessedBinding.inflate(layoutInflater)
  40. return viewBinding
  41. }
  42. override fun onInit() {
  43. viewBinding.tvName.text = ChemicalApp.userData!!.userName
  44. viewBinding.tvReturn.text = "返回${ChemicalApp.confs!!.backTime}s"
  45. val imageView = viewBinding.imageName
  46. // 使用 Glide 加载网络图片
  47. Glide.with(this)
  48. .load("${HttpConfig.API_BASE_IMG_URL}${ChemicalApp.userData!!.avatar}")
  49. .apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.AUTOMATIC))
  50. .into(imageView)
  51. // 使用 Glide 加载网络图片
  52. LogUtils.i("==图片地址${HttpConfig.API_BASE_IMG_URL}${ChemicalApp.userData!!.avatar}")
  53. viewBinding.titleDeptName.text =
  54. "${ChemicalApp.confs!!.deptName}-${ChemicalApp.confs!!.roomNum}"
  55. Glide.with(this)
  56. .load("${HttpConfig.API_BASE_IMG_URL}${ChemicalApp.confs!!.circularLogo}")
  57. .apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.AUTOMATIC))
  58. .into(viewBinding.image)
  59. viewBinding.tvReturn.setOnClickListener {
  60. finish()
  61. }
  62. //处理预警问题
  63. viewBinding.revert.setOnClickListener {
  64. showLoading("加载中...")
  65. val disposable = ApiRepository.handleMessage(mNoticeId!!, mHandleNotes!!)
  66. .subscribe({ data ->
  67. dismissLoading()
  68. finish()
  69. }, { throwable ->
  70. dismissLoading()
  71. showNetError(throwable)
  72. })
  73. addDisposable(disposable)
  74. }
  75. //照片显示
  76. mImgAdapter.setOnItemChildClickListener { adapter, view, position ->
  77. if (view.id == R.id.img) {
  78. //弹框变成大窗体
  79. val mDialogs = ImgDialogs(this, mImgAdapter.data[position])
  80. if (!mDialogs.isShowing) {
  81. mDialogs.show()
  82. }
  83. }
  84. }
  85. viewBinding.tvOutLogin.setOnClickListener {
  86. HttpTool.logout()
  87. }
  88. val noticeId = intent.getStringExtra("noticeId")
  89. if (noticeId != null) {
  90. getLists(noticeId)
  91. }
  92. }
  93. override fun cdFinish() {
  94. finish()
  95. }
  96. override fun cdTime(cd: Int) {
  97. viewBinding.tvReturn.text = "返回${cd}s"
  98. }
  99. private fun getLists(noticeId: String) {
  100. showLoading("加载中...")
  101. val disposable = ApiRepository.warningNoticeDetail(noticeId)
  102. .subscribe({ data ->
  103. dismissLoading()
  104. upView(data)
  105. }, { throwable ->
  106. dismissLoading()
  107. showNetError(throwable)
  108. })
  109. addDisposable(disposable)
  110. }
  111. private fun upView(datas: ProcessedBean) {
  112. when (datas.noticeStatus) {
  113. 1 -> {
  114. //已处理
  115. viewBinding.yStatus.visibility = View.VISIBLE
  116. }
  117. 0 -> {
  118. //待处理
  119. viewBinding.dStatus.visibility = View.VISIBLE
  120. if (datas.isHandlePeople) {
  121. //显示 处理
  122. mNoticeId = datas.noticeId
  123. mHandleNotes = datas.handleNotes!!
  124. viewBinding.revert.visibility = View.VISIBLE
  125. }
  126. }
  127. 2 -> {
  128. //待处理 详情显示
  129. viewBinding.dStatus.visibility = View.VISIBLE
  130. }
  131. }
  132. viewBinding.warnTime.text = "${datas.warnTime}"
  133. viewBinding.deptName.text = "${datas.deptName}"
  134. viewBinding.subName.text = "${datas.subName}"
  135. //1化学品违规带离。2超时未归还。3化学品已过期。4化学品即将过期
  136. LogUtils.i("======当前状态${datas.chemicalWarnType}")
  137. when (datas.chemicalWarnType) {
  138. 1 -> { // 化学品信息只显示一条 1-1 已处理
  139. viewBinding.lin1.visibility = View.VISIBLE
  140. viewBinding.collectUserName.visibility = View.VISIBLE
  141. viewBinding.rlBelong.visibility = View.VISIBLE
  142. viewBinding.belongName.text = "${datas.belongName}" //归属人
  143. if (datas.snapImg != null && datas.snapImg!!.size > 0) {
  144. //报警抓拍 照片显示
  145. viewBinding.tvProc.visibility = View.VISIBLE
  146. viewBinding.rvProcessed.visibility = View.VISIBLE
  147. // 创建GridLayoutManager,设置为每行4个item
  148. val layoutManager =
  149. GridLayoutManager(this, 4, LinearLayoutManager.HORIZONTAL, false)
  150. viewBinding.rvProcessed.layoutManager = layoutManager
  151. mImgAdapter.setNewInstance(datas.snapImg!!.toMutableList())
  152. }
  153. viewBinding.normsNum.text = "余量:${datas.normsNum}"
  154. viewBinding.surplus.text = "规格:${datas.surplus}"
  155. viewBinding.processing.visibility = View.VISIBLE
  156. viewBinding.lingVi.visibility = View.VISIBLE
  157. //handleType 处理方式:1手动处理。2归还操作。3出库操作。4入库操作
  158. when (datas.handleType) {
  159. 1 -> {
  160. viewBinding.typeMsg.text = "手动处理"
  161. }
  162. 2 -> {
  163. viewBinding.typeMsg.text = "归还操作"
  164. }
  165. 3 -> {
  166. viewBinding.typeMsg.text = "出库操作"
  167. }
  168. 4 -> {
  169. viewBinding.typeMsg.text = "入库操作"
  170. }
  171. }
  172. if (datas.chemicalName != null) {
  173. viewBinding.warnContent.text = "${datas.chemicalName}化学品违规带离"
  174. } else {
  175. viewBinding.warnContent.text = "化学品违规带离"
  176. }
  177. if (datas.handlePerson != null) {
  178. viewBinding.handlePerson.text = "${datas.handlePerson}"
  179. }
  180. if (datas.handleTime != null) {
  181. viewBinding.handleTime.text = "${datas.handleTime}"
  182. }
  183. if (datas.handleNotes != null) {
  184. viewBinding.handleNotes.text = "${datas.handleNotes}"
  185. }
  186. viewBinding.msg.text = "违规带离的化学品确认已放入化学品柜指定位置后,点击处理"
  187. }
  188. 2 -> { //领用超过未归还 1-1
  189. if (datas.snapImg != null && datas.snapImg!!.size > 0) {
  190. //报警抓拍 照片显示
  191. viewBinding.tvProc.visibility = View.VISIBLE
  192. viewBinding.rvProcessed.visibility = View.VISIBLE
  193. // 创建GridLayoutManager,设置为每行4个item
  194. val layoutManager =
  195. GridLayoutManager(this, 4, LinearLayoutManager.HORIZONTAL, false)
  196. viewBinding.rvProcessed.layoutManager = layoutManager
  197. mImgAdapter.setNewInstance(datas.snapImg!!.toMutableList())
  198. }
  199. viewBinding.lin1.visibility = View.VISIBLE
  200. viewBinding.rlBelong.visibility = View.VISIBLE //归属人
  201. viewBinding.lingOne.visibility = View.VISIBLE
  202. viewBinding.lingTwo.visibility = View.VISIBLE
  203. viewBinding.belongName.text = "${datas.belongName}" //归属人
  204. viewBinding.collectTime.text = "${datas.collectTime}"
  205. viewBinding.collectTimeAging.text = "${datas.collectTimeAging}小时"
  206. if (datas.chemicalName != null) {
  207. viewBinding.chemicalName.text = "${datas.chemicalName}"
  208. viewBinding.chemicalName.setOnClickListener {
  209. TextTool.showPop(
  210. this,
  211. viewBinding.chemicalName
  212. )
  213. }
  214. }
  215. viewBinding.position.text = "${datas.position}层"
  216. viewBinding.collectUserName.text = "领用人:${datas.collectUserName}"
  217. viewBinding.normsNum.text = "规格:${datas.normsNum}"
  218. viewBinding.surplus.text = "余量:${datas.surplus}"
  219. viewBinding.msg.text = "操作归还后报警状态自动恢复正常"
  220. viewBinding.processing.visibility = View.VISIBLE
  221. viewBinding.lingVi.visibility = View.VISIBLE
  222. viewBinding.lint3.visibility = View.GONE
  223. when (datas.handleType) {
  224. 1 -> {
  225. viewBinding.typeMsg.text = "手动处理"
  226. }
  227. 2 -> {
  228. viewBinding.typeMsg.text = "归还操作"
  229. }
  230. 3 -> {
  231. viewBinding.typeMsg.text = "出库操作"
  232. }
  233. 4 -> {
  234. viewBinding.typeMsg.text = "入库操作"
  235. }
  236. }
  237. if (datas.handlePerson != null) {
  238. viewBinding.handlePerson.text = "${datas.handlePerson}"
  239. }
  240. if (datas.handleTime != null) {
  241. viewBinding.handleTime.text = "${datas.handleTime}"
  242. }
  243. if (datas.chemicalName != null) {
  244. viewBinding.warnContent.text = "${datas.chemicalName}超时未归还"
  245. } else {
  246. viewBinding.warnContent.text = "超时未归还"
  247. }
  248. viewBinding.warnContent.setOnClickListener {
  249. TextTool.showPop(
  250. this,
  251. viewBinding.warnContent
  252. )
  253. }
  254. if (datas.rfidCode != null) {
  255. viewBinding.chemicalCode.visibility = View.VISIBLE
  256. viewBinding.chemicalCode.text = "-${datas.rfidCode}"
  257. }
  258. }
  259. 3 -> { //化学品已过期 多个
  260. viewBinding.lin2.visibility = View.VISIBLE
  261. viewBinding.rvView?.layoutManager = LinearLayoutManager(this)
  262. viewBinding.rvView?.adapter = mAdapter
  263. mAdapter.setNewInstance(datas.chemicalExpireList.toMutableList())
  264. viewBinding.msg.text = "出库后报警状态自动恢复正常"
  265. if (datas.chemicalName != null) {
  266. viewBinding.warnContent.text = "有${datas.chemicalExpireList.size}个化学品过期"
  267. } else {
  268. viewBinding.warnContent.text = "化学品过期"
  269. }
  270. viewBinding.lingVi.visibility = View.VISIBLE
  271. viewBinding.lint3.visibility = View.GONE
  272. when (datas.handleType) {
  273. 1 -> {
  274. viewBinding.typeMsg.text = "手动处理"
  275. }
  276. 2 -> {
  277. viewBinding.typeMsg.text = "归还操作"
  278. }
  279. 3 -> {
  280. viewBinding.typeMsg.text = "出库操作"
  281. }
  282. 4 -> {
  283. viewBinding.typeMsg.text = "入库操作"
  284. }
  285. }
  286. if (datas.handlePerson != null) {
  287. viewBinding.handlePerson.text = "${datas.handlePerson}"
  288. }
  289. if (datas.handleTime != null) {
  290. viewBinding.handleTime.text = "${datas.handleTime}"
  291. }
  292. }
  293. 4 -> { //化学品即将过期 多个
  294. viewBinding.lin2.visibility = View.VISIBLE
  295. viewBinding.rvView?.layoutManager = LinearLayoutManager(this)
  296. viewBinding.rvView?.adapter = mAdapter
  297. mAdapter.setNewInstance(datas.chemicalExpireList.toMutableList())
  298. viewBinding.msg.text = "出库后报警状态自动恢复正常"
  299. viewBinding.warnContent.text = "有${datas.chemicalExpireList.size}个化学品即将过期"
  300. viewBinding.lingVi.visibility = View.VISIBLE
  301. viewBinding.lint3.visibility = View.GONE
  302. when (datas.handleType) {
  303. 1 -> {
  304. viewBinding.typeMsg.text = "手动处理"
  305. }
  306. 2 -> {
  307. viewBinding.typeMsg.text = "归还操作"
  308. }
  309. 3 -> {
  310. viewBinding.typeMsg.text = "出库操作"
  311. }
  312. 4 -> {
  313. viewBinding.typeMsg.text = "入库操作"
  314. }
  315. }
  316. if (datas.handlePerson != null) {
  317. viewBinding.handlePerson.text = "${datas.handlePerson}"
  318. }
  319. if (datas.handleTime != null) {
  320. viewBinding.handleTime.text = "${datas.handleTime}"
  321. }
  322. }
  323. 5 -> {//超期未入库
  324. viewBinding.lin2.visibility = View.VISIBLE
  325. viewBinding.rvView?.layoutManager = LinearLayoutManager(this)
  326. viewBinding.rvView?.adapter = mAdapterNotReceived
  327. mAdapterNotReceived.setNewInstance(datas.chemicalOverdueStockList!!.toMutableList())
  328. viewBinding.msg.text = "入库后报警状态自动恢复正常"
  329. if (datas.chemicalOverdueStockList != null && datas.chemicalOverdueStockList!!.size > 0) {
  330. viewBinding.warnContent.text =
  331. "有${datas.chemicalOverdueStockList!!.size}个化学品超期未入库"
  332. }
  333. viewBinding.lingVi.visibility = View.VISIBLE
  334. viewBinding.lint3.visibility = View.GONE
  335. when (datas.handleType) {
  336. 1 -> {
  337. viewBinding.typeMsg.text = "手动处理"
  338. }
  339. 2 -> {
  340. viewBinding.typeMsg.text = "归还操作"
  341. }
  342. 3 -> {
  343. viewBinding.typeMsg.text = "出库操作"
  344. }
  345. 4 -> {
  346. viewBinding.typeMsg.text = "入库操作"
  347. }
  348. }
  349. if (datas.handlePerson != null) {
  350. viewBinding.handlePerson.text = "${datas.handlePerson}"
  351. }
  352. if (datas.handleTime != null) {
  353. viewBinding.handleTime.text = "${datas.handleTime}"
  354. }
  355. }
  356. 6 -> {//业务超时
  357. // viewBinding.lin2.visibility = View.VISIBLE
  358. // viewBinding.rvView?.layoutManager = LinearLayoutManager(this)
  359. // viewBinding.rvView?.adapter = mChemicalTimeoutAdapter
  360. // mChemicalTimeoutAdapter.setNewInstance(datas.chemicalTimeoutList!!.toMutableList())
  361. viewBinding.msg.text = "打开柜门后未完成业务操作,系统自动报警"
  362. viewBinding.warnContent.text = "业务操作超时,请尽快处理。"
  363. // viewBinding.lingVi.visibility = View.VISIBLE
  364. // viewBinding.lint3.visibility = View.GONE
  365. //
  366. // when (datas.handleType) {
  367. // 1 -> {
  368. // viewBinding.typeMsg.text = "手动处理"
  369. // }
  370. // 2 -> {
  371. // viewBinding.typeMsg.text = "归还操作"
  372. // }
  373. // 3 -> {
  374. // viewBinding.typeMsg.text = "出库操作"
  375. // }
  376. // 4 -> {
  377. // viewBinding.typeMsg.text = "入库操作"
  378. // }
  379. // }
  380. // viewBinding.handlePerson.text = "${datas.handlePerson}"
  381. // viewBinding.handleTime.text = "${datas.handleTime}"
  382. viewBinding.rlBelongTow.visibility = View.VISIBLE
  383. viewBinding.operationPerson.text = "${datas.operationPerson}"
  384. viewBinding.alarmType.text = "${datas.alarmType}"
  385. //柜子信息
  386. if (datas.position != null) {
  387. viewBinding.cabinetName.text = "${datas.position}"
  388. }
  389. }
  390. }
  391. //通知记录
  392. viewBinding.rvUse?.layoutManager = LinearLayoutManager(this)
  393. viewBinding.rvUse?.adapter = mAdapterLogVoList
  394. mAdapterLogVoList.setNewInstance(datas.warningNoticeLogVoList.toMutableList())
  395. }
  396. }