浏览代码

风险管理2月25日提交代码-liu.bolan

Liu.bolan 4 年之前
父节点
当前提交
71b55f367b
共有 22 个文件被更改,包括 339 次插入46 次删除
  1. 27 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/common/CommonManager.kt
  2. 22 3
      RMA/app/src/main/java/cn/muchinfo/rma/global/StringUtils.kt
  3. 105 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/NoticeData.kt
  4. 12 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  5. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureFragment.kt
  6. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureViewModel.kt
  7. 19 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/AnnouncementViewHolder.kt
  8. 7 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeFragment.kt
  9. 21 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeViewModel.kt
  10. 22 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/business/BusinessManagementViewholder.kt
  11. 22 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/business/MidpointsAuditActivity.kt
  12. 28 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/business/SettlementAuditActivity.kt
  13. 2 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityMiddleViewHolder.kt
  14. 4 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractActivity.kt
  15. 1 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractDataViewHolder.kt
  16. 29 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractPublicView.kt
  17. 0 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/customerdata/AddCustomerDataActivity.kt
  18. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/financial/FinancialViewholder.kt
  19. 4 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/MidpointsRegistrationActivity.kt
  20. 8 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/LoginViewModel.kt
  21. 1 1
      RMA/app/src/main/res/layout/layout_item_exposure_content.xml
  22. 二进制
      RMA/app/src/main/res/mipmap-xhdpi/rma_message_img.png

+ 27 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/common/CommonManager.kt

@@ -2,6 +2,7 @@ package cn.muchinfo.rma.business.common
 
 import cn.muchinfo.rma.global.data.CommonTableData
 import cn.muchinfo.rma.global.data.ContractData
+import cn.muchinfo.rma.global.data.NoticeData
 import cn.muchinfo.rma.netManage.base.ResponseCallback
 import cn.muchinfo.rma.netManage.utils.MyOkHttpUtils
 import cn.muchinfo.rma.view.base.app.BaseResult
@@ -65,4 +66,30 @@ class CommonManager {
         )
     }
 
+    /**
+     * 通知公告系统消息查询
+     * @param params Map<String, String>
+     * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<NoticeData>?, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryNotice(
+        params: Map<String, String>,
+        responseBack: (isSuccess: Boolean, respData: List<NoticeData>?, error: Error?) -> Unit
+    ){
+        MyOkHttpUtils().query(
+            URL = SPUtils.getInstance().getString(Constant.goCommonSearchUrl) + "/Common/QueryNotice",
+            params = params,
+            type = "1",
+            callback = object : ResponseCallback<BaseResult<List<NoticeData>>>(){
+                override fun onResponse(response: BaseResult<List<NoticeData>>?, id: Int) {
+                    responseBack(true,response?.data,null)
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    responseBack(false, null, Error(e?.message))
+                }
+
+            }
+        )
+    }
+
 }

+ 22 - 3
RMA/app/src/main/java/cn/muchinfo/rma/global/StringUtils.kt

@@ -3,12 +3,18 @@ package cn.muchinfo.rma.global
 import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
 import com.blankj.utilcode.util.TimeUtils
 
-fun String.isShowTimeString() : String{
+/**
+ * 页面显示的时间
+ * @receiver String
+ * @param format String 页面显示的时间格式
+ * @return String
+ */
+fun String.isShowTimeString(format : String) : String{
     if (this.isNullOrEmpty()){
         return "--"
     }
     val mill = TimeUtils.string2Millis(this)
-    val time = TimeUtils.millis2String(mill,TimeUtils.getSafeDateFormat("MM/dd HH:mm"))
+    val time = TimeUtils.millis2String(mill,TimeUtils.getSafeDateFormat(format))
     return time
 }
 
@@ -19,6 +25,18 @@ fun String.isBlankString() : String{
     return this
 }
 
+/**
+ * 金额数量不存在时显示0
+ * @receiver String
+ * @return String
+ */
+fun String.isBlankNumber() : String{
+    if (this.isNullOrEmpty()){
+        return "0"
+    }
+    return this
+}
+
 fun String.toPercentage() : String{
     if (this.isNullOrEmpty()){
         return "--"
@@ -26,4 +44,5 @@ fun String.toPercentage() : String{
 
     val percentage = NumberUtils.roundNum(this.toDouble().times(100),2) + "%"
     return percentage
-}
+}
+

+ 105 - 0
RMA/app/src/main/java/cn/muchinfo/rma/global/data/NoticeData.kt

@@ -0,0 +1,105 @@
+package cn.muchinfo.rma.global.data
+
+import android.os.Parcel
+import android.os.Parcelable
+
+/**
+ * 通知公告
+ * @property auditoruserid String?
+ * @property auditremark String?
+ * @property audittime String?
+ * @property autoid String?
+ * @property content String?
+ * @property createtime String?
+ * @property creatorid String?
+ * @property endtime String?
+ * @property istop String?
+ * @property msgiconurl String?
+ * @property msgtype String?
+ * @property publisher String?
+ * @property readed Boolean?
+ * @property scheduletime String?
+ * @property sendtype String?
+ * @property sentstatus String?
+ * @property title String?
+ * @property userid String?
+ * @constructor
+ */
+data class NoticeData(
+    val auditoruserid : String? = "",//审核人
+    val auditremark : String? = "",//审核备注
+    val audittime : String? = "",//审核日期
+    val autoid : String? = "",//自增ID
+    val content : String? = "",//内容
+    val createtime : String? = "",//创建时间
+    val creatorid : String? = "",//建仓人
+    val endtime : String? = "",//结束时间
+    val istop : String? = "",//是否置顶 - 0:不置顶 1:置顶
+    val msgiconurl : String? = "",//消息图标Url
+    val msgtype : String? = "",//消息类型 - 1:公告通知 2:系统消息 3:商品到期提货通知
+    val publisher : String? = "",//消息发布者
+    val readed : Boolean? = false,//是否已读
+    val scheduletime : String? = "",//计划发送时间
+    val sendtype : String? = "",//推送方式 - 1:全体广播 2:按会员广播 3:个人推送 4:按会员广播(仅会员)
+    val sentstatus : String? = "",//推送状态 - 0:未推送 1:已推送 2:审核拒绝
+    val title : String? = "",//标题
+    val userid : String? = ""//会员/投资者ID推送方式 为 个人时,填写投资者ID
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readValue(Boolean::class.java.classLoader) as? Boolean,
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(auditoruserid)
+        parcel.writeString(auditremark)
+        parcel.writeString(audittime)
+        parcel.writeString(autoid)
+        parcel.writeString(content)
+        parcel.writeString(createtime)
+        parcel.writeString(creatorid)
+        parcel.writeString(endtime)
+        parcel.writeString(istop)
+        parcel.writeString(msgiconurl)
+        parcel.writeString(msgtype)
+        parcel.writeString(publisher)
+        parcel.writeValue(readed)
+        parcel.writeString(scheduletime)
+        parcel.writeString(sendtype)
+        parcel.writeString(sentstatus)
+        parcel.writeString(title)
+        parcel.writeString(userid)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<NoticeData> {
+        override fun createFromParcel(parcel: Parcel): NoticeData {
+            return NoticeData(parcel)
+        }
+
+        override fun newArray(size: Int): Array<NoticeData?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}

+ 12 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt

@@ -143,6 +143,18 @@ class MainActivity : BaseActivity<MainViewModel>() {
                     .selectTextColor(Color.parseColor("#2481DD"))   //Tab选中时字体颜色
                     .smoothScroll(true)  //点击Tab  Viewpager切换是否有动画
                     .canScroll(false)    //Viewpager能否左右滑动
+                    .setOnTabClickListener(object : EasyNavigationBar.OnTabClickListener{
+                        override fun onTabSelectEvent(view: View?, position: Int): Boolean {
+                             // FIXME 后期在此处添加首页滑动到顶部处理
+                            return false
+                        }
+
+                        override fun onTabReSelectEvent(view: View?, position: Int): Boolean {
+
+                            return false
+                        }
+
+                    })
                     .build()
             }
         }

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureFragment.kt

@@ -196,7 +196,7 @@ class RealTimeExposureUI(
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(135f)), autoSize(100))
+                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

+ 2 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureViewModel.kt

@@ -196,8 +196,8 @@ class ExposureViewModel : BaseViewModel(){
             val newRightData = arrayListOf<String>()
             newRightData.add(NumberUtils.roundNum(it.TotalSpotQty,2) + "\n" + it.MiddleGoodsHedgeRatio?.toPercentage())
             newRightData.add(NumberUtils.roundNum(it.TotalNeedHedgeQty,2) + "\n" + NumberUtils.roundNum(it.TotalFutureQty,2))
-            newRightData.add(NumberUtils.roundNum(it.NeedHedgeExposoure,2) + "\n" + NumberUtils.roundNum(it.NeedHedgeRatio,2))
-            newRightData.add(NumberUtils.roundNum(it.TotalExposure,2) + "\n" + NumberUtils.roundNum(it.TotalHedgeRatio,2))
+            newRightData.add(NumberUtils.roundNum(it.NeedHedgeExposoure,2) + "\n" + it.NeedHedgeRatio?.toPercentage())
+            newRightData.add(NumberUtils.roundNum(it.TotalExposure,2) + "\n" +it.TotalHedgeRatio?.toPercentage())
             newRightData.add(NumberUtils.roundNum(it.OriTotalSpotQty,2) + "\n" + NumberUtils.roundNum(it.DiffSpotQty,2))
             newRightData.add(NumberUtils.roundNum(it.OriTotalFutuQty,2) + "\n" + NumberUtils.roundNum(it.DiffFutuQty,2))
             val newData = it.copy(rightData = newRightData)

+ 19 - 5
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/AnnouncementViewHolder.kt

@@ -5,6 +5,8 @@ import android.text.TextUtils
 import android.view.Gravity
 import androidx.fragment.app.Fragment
 import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.NoticeData
+import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.autoSize
 import cn.muchinfo.rma.view.autoWidget.textColorInt
 import cn.muchinfo.rma.view.autoWidget.textSizeAuto
@@ -14,7 +16,7 @@ import org.jetbrains.anko.*
 class AnnouncementViewHolder(
     private val baseFragment: Fragment,
     private val viewModel: HomeViewModel
-) : BaseViewHolder<String>(baseFragment.context!!) {
+) : BaseViewHolder<NoticeData>(baseFragment.context!!) {
     override val itemSize: IntArray = intArrayOf(matchParent, autoSize(160))
 
     override fun _FrameLayout.createContentView() {
@@ -22,13 +24,21 @@ class AnnouncementViewHolder(
 
             linearLayout {
                 imageView {
-                    imageResource = R.mipmap.main_announcement_logo
+                    data.bindOptional(context){
+                        if (it?.msgtype == "1"){
+                            imageResource = R.mipmap.main_announcement_logo
+                        }else{
+                            imageResource = R.mipmap.rma_message_img
+                        }
+                    }
                 }.lparams(autoSize(56), autoSize(41)) {
                     marginStart = autoSize(32)
                 }
 
                 textView {
-                    text = "手续费调整通知"
+                    data.bindOptional(context){
+                        text = it?.title
+                    }
                     maxEms = 14
                     maxLines = 1
                     ellipsize = TextUtils.TruncateAt.END
@@ -42,7 +52,9 @@ class AnnouncementViewHolder(
                 view { }.lparams(0, autoSize(1), 1f)
 
                 textView {
-                    text = "10:12"
+                    data.bindOptional(context){
+                        text = it?.createtime
+                    }
                     textColorInt = R.color.text_hit_color
                     textSizeAuto = 26
                 }.lparams(wrapContent, wrapContent) {
@@ -57,7 +69,9 @@ class AnnouncementViewHolder(
             textView {
                 maxLines = 1
                 ellipsize = TextUtils.TruncateAt.END
-                text = "关于对部分期货品种公司手续费比例进行调整的通知"
+                data.bindOptional(context){
+                    text = it?.content
+                }
                 textColorInt = R.color.text_hint_color_two
                 textSizeAuto = 26
             }.lparams(matchParent, wrapContent) {

+ 7 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeFragment.kt

@@ -18,7 +18,8 @@ import androidx.viewpager.widget.PagerAdapter
 import androidx.viewpager.widget.ViewPager
 import cn.bingoogolapple.bgabanner.BGABanner
 import cn.muchinfo.rma.R
-import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.GlobalDataCollention
+import cn.muchinfo.rma.global.data.NoticeData
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseFragment
@@ -516,11 +517,12 @@ class AnnouncementUI(private val baseFragment: Fragment, private val viewModule:
 
     lateinit var recyclerView: RecyclerView
 
-    private val announcementAdapter: BaseAdapter<String, AnnouncementViewHolder> =
+    private val announcementAdapter: BaseAdapter<NoticeData, AnnouncementViewHolder> =
         BaseAdapter { _, _ -> AnnouncementViewHolder(baseFragment, viewModule) }
 
     val root = _FrameLayout(baseFragment.context!!).apply {
         verticalLayout {
+            viewModule.queryNotice()
             statusLayout(contentBlock = {
                 statusLayout = this
 //                bindTaskStatus(viewModule.status)
@@ -542,8 +544,9 @@ class AnnouncementUI(private val baseFragment: Fragment, private val viewModule:
             }, emptyBlock = {
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
-
-            announcementAdapter.setNewData(arrayListOf("1", "2", "3", "4", "5", "6", "7"))
+            viewModule.noticeDataList.bindOptional(context){
+                announcementAdapter.setNewData(it)
+            }
         }
     }
 }

+ 21 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeViewModel.kt

@@ -4,6 +4,7 @@ package cn.muchinfo.rma.view.base.home
 import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.AccountData
+import cn.muchinfo.rma.global.data.NoticeData
 import cn.muchinfo.rma.global.data.database.BannerEntity
 import cn.muchinfo.rma.global.database.DataBase
 import cn.muchinfo.rma.netManage.base.ResponseCallback
@@ -31,6 +32,11 @@ class HomeViewModel : BaseViewModel(){
     val usedAccountData : MutableLiveData<AccountData> = MutableLiveData()
 
     /**
+     * 公告信息
+     */
+    val noticeDataList : MutableLiveData<List<NoticeData>> = MutableLiveData()
+
+    /**
      * 在请求之前先获取数据库存储的banner信息
      */
     fun getBanner(){
@@ -75,4 +81,19 @@ class HomeViewModel : BaseViewModel(){
         }
     }
 
+    /**
+     * 通知公告查询
+     */
+    fun queryNotice(){
+        val params = mutableMapOf<String, String>().apply {
+            put("loginID", GlobalDataCollention.getInstance().loginRsp.loginID.toString())
+        }
+
+        MyApplication.getInstance()?.commonManager?.queryNotice(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                noticeDataList.postValue(respData)
+            }
+        }
+    }
+
 }

+ 22 - 6
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/business/BusinessManagementViewholder.kt

@@ -39,9 +39,10 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
             linearLayout {
                 verticalLayout {
                     linearLayout {
+                        /** 点价登记时间/结算登记时间 **/
                         textView {
                             data.bindOptional(context){
-                               text = it?.applytime?.isShowTimeString()
+                               text = it?.applytime?.isShowTimeString("MM/dd HH:mm")
                             }
                             textColorInt = R.color.rma_black_33
                             textSizeAuto = 29
@@ -66,10 +67,10 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
                             topMargin = autoSize(25)
                         }
                     }.lparams(matchParent, wrapContent)
-
+                    /** 点价审核时间/结算审核时间 **/
                     textView {
                         data.bindOptional(context){
-                            text = it?.audittime?.isShowTimeString()
+                            text = it?.audittime?.isShowTimeString("MM/dd HH:mm")
                         }
                         textSizeAuto = 22
                         textColorInt = R.color.hint_text_color
@@ -81,6 +82,7 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
                 }.lparams(autoSize(335), autoSize(120))
 
                 verticalLayout {
+                    /** 合同类型 **/
                     textView {
                         data.bindOptional(context){
                             text = ViewEnumUtils.getContractType(it?.contracttype ?: "1")
@@ -92,7 +94,7 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
                     }.lparams(wrapContent, wrapContent) {
                         topMargin = autoSize(25)
                     }
-
+                    /** 合同编号 **/
                     textView {
                         data.bindOptional(context){
                             text =  it?.contractno
@@ -105,6 +107,7 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
 
                 }.lparams(autoSize(150), autoSize(120))
 
+                /** 点价价格/结算类型 **/
                 verticalLayout {
                     textView {
                         data.bindOptional(context) {
@@ -122,10 +125,11 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
                         topMargin = autoSize(25)
                         gravity = Gravity.RIGHT
                     }
+                    /** 点价金额/结算类型值 **/
                     textView {
                         data.bindOptional(context){
                             if (type == "1"){
-                                text = it?.pricemove
+                                text = it?.amount
                             }else{
                                 text = it?.reckonvalue
                             }
@@ -139,7 +143,7 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
                 }.lparams(autoSize(145), autoSize(120))
 
                 verticalLayout {
-
+                    /** 状态 */
                     textView {
                         data.bindOptional(context){
                             text = ViewEnumUtils.getBusinessManagementStatus(it?.applystatus ?: "")
@@ -174,6 +178,7 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
                     onThrottleFirstClick {
                         val intent = Intent()
                         intent.putExtra("data",data.value)
+                        intent.putExtra("type","1")
                         if (type == "1"){
                             intent.setClass(context,MidpointsAuditActivity::class.java)
                         }else{
@@ -202,6 +207,17 @@ class BusinessManagementViewholder(private val activity: AppCompatActivity, priv
                 }
 
                 textView {
+                    onThrottleFirstClick {
+                        val intent = Intent()
+                        intent.putExtra("data",data.value)
+                        intent.putExtra("type","2")
+                        if (type == "1"){
+                            intent.setClass(context,MidpointsAuditActivity::class.java)
+                        }else{
+                            intent.setClass(context,SettlementAuditActivity::class.java)
+                        }
+                        ActivityUtils.startActivity(intent)
+                    }
                     backgroundResource = R.drawable.rma_item_click_bg
                     gravity = Gravity.CENTER
                     textResource = R.string.details

+ 22 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/business/MidpointsAuditActivity.kt

@@ -25,6 +25,13 @@ import org.json.JSONObject
  */
 class MidpointsAuditActivity : BaseActivity<BusinessManagementViewModel>(){
 
+    /**
+     * 页面类型 type 1 审核 2 详情
+     */
+    private val type by lazy {
+        intent.getStringExtra("type")
+    }
+
     /** 输入的审核意见 **/
     lateinit var ramsk_edittext : EditText
 
@@ -45,7 +52,11 @@ class MidpointsAuditActivity : BaseActivity<BusinessManagementViewModel>(){
             topBar {
                 commonLeftButton()
                 commonTitle {
-                    text = "点价审核"
+                    text = if (type == "1"){
+                        "点价审核"
+                    }else{
+                        "点价详情"
+                    }
                 }
             }
 
@@ -365,6 +376,11 @@ class MidpointsAuditActivity : BaseActivity<BusinessManagementViewModel>(){
                         }
 
                         linearLayout {
+                            visibility = if (type == "1"){
+                                View.VISIBLE
+                            }else{
+                                View.GONE
+                            }
                             background = resources.getDrawable(R.color.white)
 
                             textView {
@@ -396,6 +412,11 @@ class MidpointsAuditActivity : BaseActivity<BusinessManagementViewModel>(){
                 }
 
                 linearLayout {
+                    if (type == "1"){
+                        visibility = View.VISIBLE
+                    }else{
+                        visibility = View.GONE
+                    }
                     background = resources.getDrawable(R.color.white)
                     gravity = Gravity.CENTER_VERTICAL
                     textView {

+ 28 - 6
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/business/SettlementAuditActivity.kt

@@ -9,6 +9,7 @@ import android.widget.EditText
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.ViewEnumUtils
 import cn.muchinfo.rma.global.data.BusinessData
+import cn.muchinfo.rma.global.isBlankNumber
 import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
@@ -23,6 +24,13 @@ import org.jetbrains.anko.*
  */
 class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
 
+    /**
+     * 页面类型 type 1 审核 2 详情
+     */
+    private val type by lazy {
+        intent.getStringExtra("type")
+    }
+
     /** 输入的审核意见 **/
     lateinit var ramsk_edittext: EditText
 
@@ -45,7 +53,11 @@ class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
             topBar {
                 commonLeftButton()
                 commonTitle {
-                    text = "结算审核"
+                    text = if (type == "1"){
+                        "结算审核"
+                    }else{
+                        "结算详情"
+                    }
                 }
             }
             statusLayout(contentBlock = {
@@ -206,7 +218,7 @@ class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
                                             emptyView()
                                             textView {
                                                 viewModel.settlementDetails.bindOptional(context){
-                                                    text = it?.reckonrealqty?.isBlankString()
+                                                    text = it?.reckonrealqty?.isBlankNumber()
                                                 }
                                                 textSizeAuto = 29
                                                 textColorInt = R.color.rma_black_33
@@ -232,7 +244,7 @@ class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
                                             emptyView()
                                             textView {
                                                 viewModel.settlementDetails.bindOptional(context){
-                                                    text = it?.reckonadjustamount?.isBlankString()
+                                                    text = it?.reckonadjustamount?.isBlankNumber()
                                                 }
                                                 textSizeAuto = 29
                                                 textColorInt = R.color.rma_black_33
@@ -266,7 +278,7 @@ class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
                                             emptyView()
                                             textView {
                                                 viewModel.settlementDetails.bindOptional(context){
-                                                    text = it?.reckonotheramount?.isBlankString()
+                                                    text = it?.reckonotheramount?.isBlankNumber()
                                                 }
                                                 textSizeAuto = 29
                                                 textColorInt = R.color.rma_black_33
@@ -323,7 +335,7 @@ class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
                                             emptyView()
                                             textView {
                                                 viewModel.settlementDetails.bindOptional(context){
-                                                    text = it?.decmargin?.isBlankString()
+                                                    text = it?.decmargin?.isBlankNumber()
                                                 }
                                                 textSizeAuto = 29
                                                 textColorInt = R.color.rma_black_33
@@ -348,7 +360,7 @@ class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
                                         linearLayout {
                                             emptyView()
                                             textView {
-                                                text = data.applyname
+                                                text = data.applyname?.isBlankString()
                                                 textSizeAuto = 29
                                                 textColorInt = R.color.rma_black_33
                                             }.lparams(wrapContent, wrapContent) {
@@ -360,6 +372,11 @@ class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
                             }
 
                             linearLayout {
+                                visibility = if (type == "1"){
+                                View.VISIBLE
+                            }else{
+                                View.GONE
+                            }
                                 background = resources.getDrawable(R.color.white)
 
                                 textView {
@@ -393,6 +410,11 @@ class SettlementAuditActivity : BaseActivity<BusinessManagementViewModel>() {
 
 
                     linearLayout {
+                        visibility = if (type == "1"){
+                                View.VISIBLE
+                            }else{
+                                View.GONE
+                            }
                         background = resources.getDrawable(R.color.white)
                         gravity = Gravity.CENTER_VERTICAL
                         textView {

+ 2 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityMiddleViewHolder.kt

@@ -86,12 +86,12 @@ class CommodityMiddleViewHolder(
 
                  linearLayout {
                      textView {
+                         /** 单位名称 **/
                          data.bindOptional(context){
                              text = it?.enumdicname
                          }
                          textColorInt = R.color.rma_black_33
                          textSizeAuto = 34
-
                      }.lparams(wrapContent, wrapContent) {
                          topMargin = autoSize(25)
                      }
@@ -114,16 +114,11 @@ class CommodityMiddleViewHolder(
                      emptyView()
                      textView {
                          data.bindOptional(context){
-                             if (status == "1"){
-                                text = it?.modifytime?.isShowTimeString()
-                             }else{
-                                text = "停用"
-                             }
+                             text = if (status == "1"){ it?.modifytime?.isShowTimeString("MM/dd HH:mm") }else{ "停用" }
                          }
                          text = "吨"
                          textColorInt = R.color.rma_black_33
                          textSizeAuto = 31
-
                      }.lparams(wrapContent, wrapContent) {
                          topMargin = autoSize(25)
                          marginEnd = autoSize(34)

+ 4 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractActivity.kt

@@ -47,12 +47,15 @@ class ContractActivity : BaseActivity<ContractViewModel>() {
     private val tabsArray: List<String> by lazy {
         arrayListOf("未提交", "待审核", "履约中", "已完成")
     }
-
+    //未提交
     private val unSubmitUI : UnSubmitUI by lazy {
         UnSubmitUI(this,viewModel)
     }
+    //待审核
     private val toAuditUI by lazy { ToAuditUI(this,viewModel) }
+    //履约中
     private val performanceUI by lazy { PerformanceUI(this,viewModel) }
+    //已完成
     private val finishUI by lazy { FinishUI(this,viewModel) }
 
     private val pagerAdapter: PagerAdapter by lazy {

+ 1 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractDataViewHolder.kt

@@ -39,6 +39,7 @@ class ContractDataViewHolder(
             linearLayout {
                 verticalLayout {
                     linearLayout {
+                        /** 合同编号 **/
                         textView {
                             data.bindOptional(context) {
                                 text = it?.contractno

+ 29 - 6
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractPublicView.kt

@@ -1,11 +1,13 @@
 package cn.muchinfo.rma.view.base.home.contract
 
+import android.annotation.SuppressLint
 import android.text.TextUtils
 import android.view.Gravity
 import android.view.View
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.ViewEnumUtils
 import cn.muchinfo.rma.global.data.ContractData
+import cn.muchinfo.rma.global.isShowTimeString
 import cn.muchinfo.rma.view.autoWidget.autoSize
 import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
 import cn.muchinfo.rma.view.autoWidget.textColorInt
@@ -281,6 +283,7 @@ fun _LinearLayout.contractDetailTwoView(data: ContractData) {
     }
 }
 
+@SuppressLint("SetTextI18n")
 fun _LinearLayout.contractDetailThreeView(data: ContractData) {
     verticalLayout {
         linearLayout {
@@ -323,13 +326,34 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
             }
         }.lparams(matchParent, autoSize(132))
 
+        linearLayout {
+            //只有在一口价时才显示
+            visibility = if (data.pricetype == "1") { View.VISIBLE } else { View.GONE }
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                text = "价        格"
+                textSizeAuto = 31
+                textColorInt = R.color.p_normal_summary_txt_color
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(59)
+            }
+
+            textView {
+                text = data.price + "元"
+                textColorInt = R.color.rma_black_33
+                textSizeAuto = 31
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(80)
+            }
+        }.lparams(matchParent, autoSize(132))
+
         viewItemUI()
 
         linearLayout {
-            if (data.pricetype == "1") {
-                visibility = View.GONE
+            visibility = if (data.pricetype == "1") {
+                View.GONE
             } else {
-                visibility = View.VISIBLE
+                View.VISIBLE
             }
             gravity = Gravity.CENTER_VERTICAL
             textView {
@@ -415,8 +439,7 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
             }
 
             textView {
-                text = data.startdate + " : " + data.enddate
-
+                text = data.startdate?.isShowTimeString("yyyyMMdd") + " : " + data.enddate?.isShowTimeString("yyyyMMdd")
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {
@@ -442,7 +465,7 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
             }
 
             textView {
-                text = data.deliverystartdate + " : " + data.deliveryenddate
+                text = data.deliverystartdate?.isShowTimeString("yyyyMMdd") + " : " + data.deliveryenddate?.isShowTimeString("yyyyMMdd")
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {

+ 0 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/customerdata/AddCustomerDataActivity.kt

@@ -264,7 +264,6 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
                                 if (status != "1" && status != "2"){
                                     isEnabled = false
                                 }
-
                                 enterprise_name = this
                                 hint = resources.getString(R.string.please_input_enterprise_name)
                                 background = null

+ 2 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/financial/FinancialViewholder.kt

@@ -41,7 +41,7 @@ class FinancialViewholder(private val activity: AppCompatActivity, private val v
                     linearLayout {
                         textView {
                             data.bindOptional(context){
-                               text = it?.applytime?.isShowTimeString()
+                               text = it?.applytime?.isShowTimeString("MM/dd HH:mm")
                             }
                             textColorInt = R.color.rma_black_33
                             textSizeAuto = 29
@@ -70,7 +70,7 @@ class FinancialViewholder(private val activity: AppCompatActivity, private val v
 
                     textView {
                         data.bindOptional(context){
-                            text = it?.audittime?.isShowTimeString()
+                            text = it?.audittime?.isShowTimeString("MM/dd HH:mm")
                         }
                         textSizeAuto = 22
                         textColorInt = R.color.hint_text_color

+ 4 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/MidpointsRegistrationActivity.kt

@@ -2,6 +2,7 @@ package cn.muchinfo.rma.view.base.home.registration
 
 import android.annotation.SuppressLint
 import android.os.Bundle
+import android.text.TextUtils
 import android.view.Gravity
 import android.view.inputmethod.EditorInfo
 import android.widget.EditText
@@ -202,6 +203,9 @@ class MidpointsRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                             text = data.accountname
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33
+                                            maxLines = 1
+                                            maxEms = 10
+                                            ellipsize = TextUtils.TruncateAt.END
                                         }.lparams(wrapContent, wrapContent)
 
                                     }.lparams(matchParent, wrapContent)

+ 8 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/LoginViewModel.kt

@@ -1,6 +1,7 @@
 package cn.muchinfo.rma.view.base.login
 
 import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.autoWidget.guard
 import cn.muchinfo.rma.view.base.BaseViewModel
@@ -9,6 +10,7 @@ import com.blankj.utilcode.util.SPUtils
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
+import mtp.polymer.com.autowidget.expand.isNumber
 import mtp.polymer.com.autowidget.utils.TaskUiModel
 import okhttp3.Dispatcher
 
@@ -42,6 +44,12 @@ class LoginViewModel : BaseViewModel() {
                 return@queryLoginID
             }
 
+            //如果返回的loginid不是纯数字,则抛出
+            if (loginID?.isNumber()?.not() == true){
+                loadingDialogStatus.postValue(TaskUiModel.failed(InteractiveException(errorMessage = "账号不存在")))
+                return@queryLoginID
+            }
+
             // 获取交易接入地址
             val ip = SPUtils.getInstance().getString(Constant.tradeHost)
             val port = SPUtils.getInstance().getString(Constant.tradePort)

+ 1 - 1
RMA/app/src/main/res/layout/layout_item_exposure_content.xml

@@ -14,7 +14,7 @@
         <LinearLayout
             android:gravity="center_vertical"
             android:orientation="vertical"
-            android:layout_width="160dp"
+            android:layout_width="100dp"
             android:layout_height="match_parent">
 
             <TextView

二进制
RMA/app/src/main/res/mipmap-xhdpi/rma_message_img.png