Explorar o código

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

Liu.bolan %!s(int64=4) %!d(string=hai) anos
pai
achega
64f6499f94
Modificáronse 35 ficheiros con 2162 adicións e 276 borrados
  1. 6 0
      RMA/app/src/main/AndroidManifest.xml
  2. 1 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/commodity/adapter/CommodityAdapter.kt
  3. 28 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/common/CommonManager.kt
  4. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/customer/CustomerManage.kt
  5. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/global/GlobalDataCollection.java
  6. 6 1
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/ContractData.kt
  7. 166 166
      RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI2.java
  8. 2 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  9. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  10. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeFragment.kt
  11. 3 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeViewModel.kt
  12. 14 11
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityInformationActivity.kt
  13. 47 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityInformationViewModel.kt
  14. 4 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityMiddleViewHolder.kt
  15. 1 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityViewHolder.kt
  16. 350 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/HedgeSpeciesDetailsActivity.kt
  17. 66 9
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/SpotVarietiesDetailsActivity.kt
  18. 62 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/viewholder/ChangeLogViewHolder.kt
  19. 18 14
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractActivity.kt
  20. 7 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractPublicView.kt
  21. 5 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/customerdata/AddCustomerDataActivity.kt
  22. 18 14
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/customerdata/CustomerDataActivity.kt
  23. 24 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/customerdata/CustomerDataViewHolder.kt
  24. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/AddHedgePlanActivity.kt
  25. 7 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgeDetailsActivity.kt
  26. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgePlanViewHolder.kt
  27. 4 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgePlanViewModel.kt
  28. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/PaymentRegistrationActivity.kt
  29. 19 16
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContentAdapter.java
  30. 768 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContractDetailActivity.kt
  31. 125 10
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ProcurementViewModel.kt
  32. 52 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/detailsviewholder/ChangeRecordViewHolder.kt
  33. 167 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/detailsviewholder/InvoiceRecordViewHolder.kt
  34. 175 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/detailsviewholder/PriceRecordViewHolder.kt
  35. 8 8
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/sale/SaleViewModel.kt

+ 6 - 0
RMA/app/src/main/AndroidManifest.xml

@@ -158,6 +158,12 @@
         <activity android:name=".view.base.exposure.NumberExposureDetailsActivity"/>
 
         <activity android:name=".view.base.home.reportquery.SpotReportDetailsActivity"/>
+
+        <activity android:name=".view.base.procurement.ContractDetailActivity"/>
+
+        <activity android:name=".view.base.home.commodity.SpotVarietiesDetailsActivity"/>
+
+        <activity android:name=".view.base.home.commodity.HedgeSpeciesDetailsActivity"/>
     </application>
 
 </manifest>

+ 1 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/commodity/adapter/CommodityAdapter.kt

@@ -56,6 +56,7 @@ object CommodityAdapter {
                 18
             )
         )
+        builder.loginid = loginInfo.loginID
         builder.userid = loginInfo.userID.toLong()
         builder.remark = remark
         builder.addAllSpotgoodsbrands(spotgoodsbrands)

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

@@ -1,5 +1,6 @@
 package cn.muchinfo.rma.business.common
 
+import cn.muchinfo.rma.global.data.ChangeLogData
 import cn.muchinfo.rma.global.data.CommonTableData
 import cn.muchinfo.rma.global.data.ContractData
 import cn.muchinfo.rma.global.data.NoticeData
@@ -92,4 +93,31 @@ class CommonManager {
         )
     }
 
+    /**
+     * 查询变更记录
+     * @param params Map<String, String> RelatedId 合同ID
+     * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<NoticeData>?, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryChangeLog(
+        params: Map<String, String>,
+        responseBack: (isSuccess: Boolean, respData: List<ChangeLogData>?, error: Error?) -> Unit
+    ){
+
+        MyOkHttpUtils().query(
+            URL = SPUtils.getInstance().getString(Constant.goCommonSearchUrl) + "/Ermcp/QueryChangeLog",
+            params = params,
+            type = "1",
+            callback = object : ResponseCallback<BaseResult<List<ChangeLogData>>>(){
+                override fun onResponse(response: BaseResult<List<ChangeLogData>>?, id: Int) {
+                    responseBack(true,response?.data,null)
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    responseBack(false, null, Error(e?.message))
+                }
+
+            }
+        )
+    }
+
 }

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/business/customer/CustomerManage.kt

@@ -109,7 +109,7 @@ class CustomerManage {
     ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
-                .getString(Constant.goCommonSearchUrl) + "/Erms3/ModifyUserInfoApply",
+                .getString(Constant.goCommonSearchUrl) + "/User/UpdateUserAccountStatus",
             params = mutableMapOf<String, String>().apply {
                 put("userID", userID.toString())
                 put("accountStatus", accountStatus.toString())

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/global/GlobalDataCollection.java

@@ -56,7 +56,7 @@ public class GlobalDataCollection extends BaseGlobalData {
             if (SPUtils.getInstance().getLong(Constant.SELECT_ACCOUNT_ID,0) == 0){
                 accountId = GlobalDataCollection.getInstance().getAccountDataList().get(0).getAccountid();
             }else {
-                accountId = Long.parseLong(SPUtils.getInstance().getString(Constant.SELECT_ACCOUNT_ID));
+                accountId = SPUtils.getInstance().getLong(Constant.SELECT_ACCOUNT_ID);
             }
         }
         return accountId;

+ 6 - 1
RMA/app/src/main/java/cn/muchinfo/rma/global/data/ContractData.kt

@@ -20,6 +20,7 @@ import android.os.Parcelable
  * @property enddate String? 点价结束日
  * @property enumdicname String? 单位名称
  * @property goodscode String? 点价商品代码
+ * goodsname  点价商品名称
  * @property goodsid String? 点价商品ID
  * @property invoiceamount String? 已开票额
  * @property loanamount String? 贷款总额=已定价额+调整金额
@@ -99,7 +100,8 @@ data class ContractData(
     val audittime : String? = "",//审核时间
     var rightData : List<String>? = arrayListOf(),
     val brandname : String? = "",//品牌名称
-    val modelname : String? = ""//型号名称
+    val modelname : String? = "",//型号名称
+    val goodsname : String? = ""
 ) : Parcelable {
     constructor(parcel: Parcel) : this(
         parcel.readString(),
@@ -152,6 +154,7 @@ data class ContractData(
         parcel.readString(),
         parcel.createStringArrayList(),
         parcel.readString(),
+        parcel.readString(),
         parcel.readString()
     ) {
     }
@@ -208,6 +211,7 @@ data class ContractData(
         parcel.writeStringList(rightData)
         parcel.writeString(brandname)
         parcel.writeString(modelname)
+        parcel.writeString(goodsname)
     }
 
     override fun describeContents(): Int {
@@ -224,4 +228,5 @@ data class ContractData(
         }
     }
 
+
 }

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 166 - 166
RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI2.java


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

@@ -3,6 +3,7 @@ package cn.muchinfo.rma.view
 
 import android.graphics.Color
 import android.os.Bundle
+import android.view.View
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
@@ -16,6 +17,7 @@ import cn.muchinfo.rma.view.eventbus.EventConstent
 import cn.muchinfo.rma.view.eventbus.MessageEvent
 import com.blankj.utilcode.util.AppUtils
 import com.facebook.drawee.backends.pipeline.Fresco
+import com.next.easynavigation.view.EasyNavigationBar
 import mtp.polymer.com.autowidget.dialog.createLoadingDialog
 import mtp.polymer.com.autowidget.dialog.createWarningDialog
 import mtp.polymer.com.autowidget.utils.bindTaskStatus

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

@@ -5,13 +5,14 @@ package cn.muchinfo.rma.view.base.app
  *   time   : 2019/08/16
  */
 object Constant {
+
     /**
      * 获取基础url的接口
-    http://103.40.249.127:28280/swagger/index.html
      */
     const val baseurl = "http://103.40.249.127:28280/cfg?key=mtp_20"
 //    const val baseurl = "http://192.168.30.125:8080/cfg?key=test_125"
 //    const val baseurl = "http://192.168.31.114:8080/cfg?key=test_114"
+//    const val baseurl = "http://192.168.31.220:8080/cfg?key=test_220"//李倩
 
     /**
      * 用sp存储基础url的key

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

@@ -18,7 +18,7 @@ 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.GlobalDataCollention
+import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.NoticeData
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*

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

@@ -9,6 +9,7 @@ import cn.muchinfo.rma.global.data.database.BannerEntity
 import cn.muchinfo.rma.global.database.DataBase
 import cn.muchinfo.rma.netManage.base.ResponseCallback
 import cn.muchinfo.rma.netManage.utils.MyOkHttpUtils
+import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.base.BaseViewModel
 import cn.muchinfo.rma.view.base.app.BaseResult
 import cn.muchinfo.rma.view.base.app.Constant
@@ -86,10 +87,10 @@ class HomeViewModel : BaseViewModel(){
      */
     fun queryNotice(){
         val params = mutableMapOf<String, String>().apply {
-            put("loginID", GlobalDataCollention.getInstance().loginRsp.loginID.toString())
+            put("loginID", GlobalDataCollection.getInstance().loginRsp.loginID.toString())
         }
 
-        MyApplication.getInstance()?.commonManager?.queryNotice(params = params){isSuccess, respData, error ->
+        MyApplication.getInstance()?.commonManager?.queryNotice(params = params){ isSuccess, respData, error ->
             if (isSuccess){
                 noticeDataList.postValue(respData)
             }

+ 14 - 11
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityInformationActivity.kt

@@ -100,17 +100,20 @@ class CommodityInformationActivity : BaseActivity<CommodityInformationViewModel>
 
     override fun onResume() {
         super.onResume()
-        when (selectedTabIndex) {
-            0 -> {
-                spotVarietiesUI.refrashData()
-            }
-            1 -> {
-                hedgeSpeciesUI.refrashData()
-            }
-            3 -> {
-                futuresVarietiesUI.refrashData()
-            }
-        }
+        spotVarietiesUI.refrashData()
+        hedgeSpeciesUI.refrashData()
+        futuresVarietiesUI.refrashData()
+//        when (selectedTabIndex) {
+//            0 -> {
+//
+//            }
+//            1 -> {
+//
+//            }
+//            3 -> {
+//
+//            }
+//        }
     }
 
 

+ 47 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityInformationViewModel.kt

@@ -76,6 +76,18 @@ class CommodityInformationViewModel : BaseViewModel() {
      */
     val ggConvertConfigDataList: MutableLiveData<List<GGConvertConfigData>> = MutableLiveData()
 
+
+    /**
+     * 选择的套保品种
+     */
+    val avalidGoodsDetailsData: MutableLiveData<List<AvaildGoodsGroupData>> = MutableLiveData()
+
+    /**
+     * 变更记录列表
+     */
+    val changeLogDataList : MutableLiveData<List<ChangeLogData>> = MutableLiveData()
+
+
     /**
      * 新增套保品种时的套保品种名称选择
      */
@@ -112,6 +124,25 @@ class CommodityInformationViewModel : BaseViewModel() {
     }
 
     /**
+     * 用于正常,停用套保品种详情的数据初始化
+     */
+    fun queryMiddleGoodsDetailList(
+        middlegoodsid: String,
+        select: (List<AvaildGoodsGroupData>.() -> Unit)? = null
+    ) {
+        val params = mutableMapOf<String, String>().apply {
+            put("userid", GlobalDataCollection.getInstance().loginRsp.userID.toString())
+            put("middlegoodsid", middlegoodsid)
+        }
+        MyApplication.getInstance()?.commodityManager?.queryMiddleGoodsDetail(params = params) { isSuccess, respData, error ->
+            if (isSuccess) {
+                select?.invoke(respData?.CvList ?: arrayListOf())
+            }
+        }
+
+    }
+
+    /**
      * 选择套保品种后的期货品种信息
      * @param goodsgroupid String
      */
@@ -690,4 +721,20 @@ class CommodityInformationViewModel : BaseViewModel() {
         }
     }
 
+    /**
+     * 查询变更记录
+     * @param RelatedId String
+     */
+    fun queryChangeLog(RelatedId : String){
+        val params = mutableMapOf<String, String>().apply {
+            put("RelatedId", RelatedId)
+        }
+
+        MyApplication.getInstance()?.commonManager?.queryChangeLog(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                changeLogDataList.postValue(respData)
+            }
+        }
+    }
+
 }

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

@@ -11,6 +11,7 @@ import cn.muchinfo.rma.global.data.MiddleGoodsData
 import cn.muchinfo.rma.global.data.WrStandardData
 import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.global.isShowTimeString
+import cn.muchinfo.rma.global.toPercentage
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.autoSize
 import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
@@ -96,11 +97,11 @@ class CommodityMiddleViewHolder(
                          topMargin = autoSize(25)
                      }
                  }.lparams(autoSize(200),matchParent)
-
+                 //套保比例
                  linearLayout {
                      textView {
                          data.bindOptional(context){
-                             text = it?.needhedgeratio
+                             text = it?.needhedgeratio?.toPercentage()
                          }
                          textColorInt = R.color.rma_black_33
                          textSizeAuto = 34
@@ -116,7 +117,6 @@ class CommodityMiddleViewHolder(
                          data.bindOptional(context){
                              text = if (status == "1"){ it?.modifytime?.isShowTimeString("MM/dd HH:mm") }else{ "停用" }
                          }
-                         text = "吨"
                          textColorInt = R.color.rma_black_33
                          textSizeAuto = 31
                      }.lparams(wrapContent, wrapContent) {
@@ -204,9 +204,8 @@ class CommodityMiddleViewHolder(
                  textView {
                      onThrottleFirstClick {
                          val intent = Intent()
-                         intent.putExtra("type","4")
                          intent.putExtra("data",data.value)
-                         intent.setClass(context,AddHedgeGoodsActivity::class.java)
+                         intent.setClass(context,HedgeSpeciesDetailsActivity::class.java)
                          ActivityUtils.startActivity(intent)
                      }
                      backgroundResource = R.drawable.rma_item_click_bg

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

@@ -201,9 +201,8 @@ class CommodityViewHolder(
                 textView {
                     onThrottleFirstClick {
                         val intent = Intent()
-                        intent.putExtra("type","4")
                         intent.putExtra("data",data.value)
-                        intent.setClass(context,AddSpotGoodsActivity::class.java)
+                        intent.setClass(context,SpotVarietiesDetailsActivity::class.java)
                         ActivityUtils.startActivity(intent)
                     }
                     backgroundResource = R.drawable.rma_item_click_bg

+ 350 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/HedgeSpeciesDetailsActivity.kt

@@ -0,0 +1,350 @@
+package cn.muchinfo.rma.view.base.home.commodity
+
+import android.os.Bundle
+import android.view.Gravity
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.app.AppCompatActivity
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.ChangeLogData
+import cn.muchinfo.rma.global.data.MiddleGoodsData
+import cn.muchinfo.rma.global.data.WrStandardData
+import cn.muchinfo.rma.global.isBlankString
+import cn.muchinfo.rma.global.toPercentage
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.home.commodity.viewholder.ChangeLogViewHolder
+import cn.muchinfo.rma.view.base.home.contract.viewItemUI
+import com.blankj.utilcode.util.ConvertUtils
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+
+class HedgeSpeciesDetailsActivity : BaseActivity<CommodityInformationViewModel>(){
+
+    /**
+     * 数据
+     */
+    val data: MiddleGoodsData by lazy {
+        intent.getParcelableExtra<MiddleGoodsData>("data") as MiddleGoodsData
+    }
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    private lateinit var viewPager: ViewPager
+
+    /** 商品详情 **/
+    private val goodsDetailsUI by lazy { GoodsDetailsUI(this,viewModel,data) }
+    /** 变更记录 **/
+    private val changeRecordUI by lazy { ChangeRecordUI(this,viewModel, data) }
+    private val tabsArray: List<String> by lazy {
+        arrayListOf(
+            "商品详情", "变更记录"
+        )
+    }
+
+    private val pagerAdapter: PagerAdapter by lazy {
+        object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = tabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                when (position) {
+                    0 -> {
+                        return goodsDetailsUI.root.apply {
+                            container.addView(
+                                this,
+                                ViewGroup.LayoutParams(matchParent, matchParent)
+                            )
+                        }
+                    }
+                    1 -> {
+                        return changeRecordUI.root.apply {
+                            container.addView(
+                                this,
+                                ViewGroup.LayoutParams(matchParent, matchParent)
+                            )
+                        }
+                    }
+                    else -> return super.instantiateItem(container, position)
+                }
+            }
+
+            override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
+                (`object` as? View)?.let { container.removeView(it) }
+            }
+
+            override fun isViewFromObject(view: View, `object`: Any): Boolean = view == `object`
+
+            override fun getCount(): Int = tabsArray.size
+
+        }
+    }
+
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            //头部标题
+            topBar {
+                commonLeftButton()
+                commonTitle {
+                    text = "套保品种详情"
+                }
+            }
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+//                        rma_yellow_text_color
+                background = resources.getDrawable(R.color.rma_pass_status)//rma_pass_status已通过背景色
+
+                imageView {
+                    if (data.isvalid == "1"){
+                        imageResource = R.mipmap.rma_pass_status
+                    }else{
+                        imageResource = R.mipmap.rma_wait_status
+                    }
+                }.lparams(autoSize(38), autoSize(38)) {
+                    marginStart = autoSize(37)
+                }
+                textView {
+                    if (data.isvalid == "1"){
+                        text = "正常"
+                    }else{
+                        text = "无效"
+                    }
+                    textSizeAuto = 31
+                    textColorInt = R.color.rma_yellow_text_color
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(20)
+                }
+            }.lparams(matchParent, autoSize(60))
+
+            tabSegment {
+                segment = this
+                background = resources.getDrawable(R.color.white)
+                addOnTabSelectedListener(object :
+                    QMUITabSegment.OnTabSelectedListener {
+                    override fun onDoubleTap(index: Int) {}
+                    override fun onTabReselected(index: Int) {}
+                    override fun onTabUnselected(index: Int) {}
+                    override fun onTabSelected(index: Int) {
+                        selectedTabIndex = index
+                    }
+                })
+                setIndicator(
+                    QMUITabIndicator(
+                        QMUIDisplayHelper.dp2px(context, 2),
+                        false,
+                        true
+                    )
+                )
+                setDefaultTextSize(ConvertUtils.sp2px(16f), ConvertUtils.sp2px(16f))
+            }.lparams(matchParent, autoSize(80))
+
+            view {
+                background = resources.getDrawable(R.color.main_hit_bg_color)
+            }.lparams(matchParent, autoSize(1)) {
+                marginStart = autoSize(32)
+                marginEnd = autoSize(32)
+            }
+            viewPager {
+                background = resources.getDrawable(R.color.white)
+                viewPager = this
+                adapter = pagerAdapter
+            }.lparams(matchParent, matchParent)
+
+            segment.setupWithViewPager(viewPager)
+            segment.selectTab(selectedTabIndex)
+        }
+    }
+
+}
+
+/**
+ * 商品详情
+ * @property activity AppCompatActivity
+ * @property viewModel CommodityInformationViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class GoodsDetailsUI(
+    private val activity : AppCompatActivity,
+    private val viewModel: CommodityInformationViewModel,
+    private val data : MiddleGoodsData
+){
+
+    init {
+        viewModel.queryMiddleGoodsDetailList(data.middlegoodsid ?: "") {
+            viewModel.avalidGoodsDetailsData.postValue(this)
+        }
+    }
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            contentItem(itemTile = "套保品种名称",itemContent = data.middlegoodsname ?: "")
+            viewItemUI()
+            contentItem(itemTile = "套保品种代码",itemContent = data.middlegoodscode ?: "")
+            viewItemUI()
+            contentItem(itemTile = "单位",itemContent = data.enumdicname ?: "")
+            viewItemUI()
+            contentItem(itemTile = "套保比例",itemContent = data.needhedgeratio?.toPercentage() ?: "")
+            viewModel.avalidGoodsDetailsData.bindOptional(context){list ->
+                list?.forEach {
+                    viewItemUI()
+                    contentItem(itemTile = "期货品种" + list.indexOf(it).plus(1),itemContent = it.goodsgroupname?.isBlankString() ?: "")
+                    contentItem(itemTile = "期货品种系数" + list.indexOf(it).plus(1),itemContent = it.convertratio?.toPercentage() ?: "")
+                }
+            }
+            viewItemUI()
+
+//            if (data.remark?.isNotEmpty() == true){
+//                linearLayout {
+//                    gravity = Gravity.CENTER_VERTICAL
+//                    background = resources.getDrawable(R.color.white)
+//                    linearLayout {
+//                        gravity = Gravity.CENTER_VERTICAL
+//                        textView {
+//                            text = "备注"
+//                            textSizeAuto = 31
+//                            textColorInt = R.color.rma_gray_color
+//                        }.lparams(wrapContent, wrapContent){
+//                            marginStart = autoSize(35)
+//                        }
+//                    }.lparams(autoSize(250), autoSize(120))
+//
+//                    textView {
+//                        text = data.remark
+//                        textSizeAuto = 31
+//                        textColorInt = R.color.rma_black_33
+//                    }.lparams(wrapContent, wrapContent){
+//                        marginStart = autoSize(35)
+//                        marginEnd = autoSize(35)
+//                    }
+//
+//                }.lparams(matchParent, autoSize(240))
+//            }
+
+        }
+    }
+}
+
+/**
+ * 变更记录
+ * @property activity AppCompatActivity
+ * @property viewModel CommodityInformationViewModel
+ * @property data MiddleGoodsData
+ * @property root _FrameLayout
+ * @constructor
+ */
+class ChangeRecordUI(
+    private val activity : AppCompatActivity,
+    private val viewModel: CommodityInformationViewModel,
+    private val data : MiddleGoodsData
+){
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    private val spotVarietiesNormalAdapter: BaseAdapter<ChangeLogData, ChangeLogViewHolder> = BaseAdapter { _, _ -> ChangeLogViewHolder(activity) }
+
+    init {
+        viewModel.queryChangeLog(RelatedId = "")
+    }
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+
+            linearLayout {
+                textView {
+                    gravity = Gravity.CENTER
+                    text = "修改时间"
+                    textColorInt = R.color.hint_text_color
+                    textSizeAuto = 23
+                }.lparams(autoSize(225), autoSize(100))
+                textView {
+                    gravity = Gravity.CENTER
+                    text = "修改前套保比例"
+                    textColorInt = R.color.hint_text_color
+                    textSizeAuto = 23
+                }.lparams(autoSize(225), autoSize(100))
+                textView {
+                    gravity = Gravity.CENTER
+                    text = "修改后套保比例"
+                    textColorInt = R.color.hint_text_color
+                    textSizeAuto = 23
+                }.lparams(autoSize(225), autoSize(100))
+                textView {
+                    gravity = Gravity.CENTER
+                    text = "修改人"
+                    textColorInt = R.color.hint_text_color
+                    textSizeAuto = 23
+                }.lparams(autoSize(225), autoSize(100))
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryChangeLog(RelatedId = "")
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = spotVarietiesNormalAdapter
+                    }.lparams(matchParent, matchParent)
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.changeLogDataList.bindOptional(context){
+                if (it?.isEmpty() == true || it?.size == 0){
+                    statusLayout.showEmpty()
+                }else {
+                    if (swipeToLayout.getIsRefreshing()){
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    spotVarietiesNormalAdapter.setNewData(it)
+                }
+            }
+        }
+    }
+}
+
+fun _LinearLayout.contentItem(itemTile : String,itemContent : String){
+    linearLayout {
+        gravity = Gravity.CENTER_VERTICAL
+        background = resources.getDrawable(R.color.white)
+        linearLayout {
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                text = itemTile
+                textSizeAuto = 31
+                textColorInt = R.color.rma_gray_color
+            }.lparams(wrapContent, wrapContent){
+                marginStart = autoSize(35)
+            }
+        }.lparams(autoSize(250), autoSize(120))
+
+        textView {
+            text = itemContent
+            textSizeAuto = 31
+            textColorInt = R.color.rma_black_33
+        }.lparams(wrapContent, wrapContent){
+            marginStart = autoSize(35)
+        }
+
+    }.lparams(matchParent, autoSize(120))
+}

+ 66 - 9
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/SpotVarietiesDetailsActivity.kt

@@ -6,6 +6,8 @@ import android.view.View
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.ViewEnumUtils
 import cn.muchinfo.rma.global.data.WrStandardData
+import cn.muchinfo.rma.global.toPercentage
+import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseActivity
 import cn.muchinfo.rma.view.base.home.contract.viewItemUI
@@ -31,26 +33,32 @@ class SpotVarietiesDetailsActivity : BaseActivity<CommodityInformationViewModel>
             topBar {
                 commonLeftButton()
                 commonTitle {
-                    text = "详情"
+                    text = "现货品种详情"
                 }
             }
 
             scrollView {
                 verticalLayout {
                     linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+//                        rma_yellow_text_color
                         background = resources.getDrawable(R.color.rma_pass_status)//rma_pass_status已通过背景色
+
                         imageView {
-                            imageResource = R.mipmap.rma_pass_status
-//                            if (data.hedgeplanstatus == "3"){
-//                                imageResource = R.mipmap.rma_pass_status
-//                            }else{
-//                                imageResource = R.mipmap.rma_wait_status
-//                            }
+                            if (data.isvalid == "1"){
+                                imageResource = R.mipmap.rma_pass_status
+                            }else{
+                                imageResource = R.mipmap.rma_wait_status
+                            }
                         }.lparams(autoSize(38), autoSize(38)) {
                             marginStart = autoSize(37)
                         }
                         textView {
-                            text = "正常"
+                            if (data.isvalid == "1"){
+                                text = "正常"
+                            }else{
+                                text = "无效"
+                            }
                             textSizeAuto = 31
                             textColorInt = R.color.rma_yellow_text_color
                         }.lparams(wrapContent, wrapContent) {
@@ -66,7 +74,56 @@ class SpotVarietiesDetailsActivity : BaseActivity<CommodityInformationViewModel>
 
                     viewItemUI()
 
+                    contentItem(itemTile = "单位",itemContent = data.enumdicname ?: "")
+
+                    viewModel.wrStandardDetails.bindOptional(context){
+                        it?.gtList?.forEach {
+                            viewItemUI()
+                            contentItem(itemTile = "型号" + viewModel.wrStandardDetails.value?.gtList?.indexOf(it)?.plus(1),itemContent = it.modelid)
+                        }
+                    }
 
+                    viewModel.wrStandardDetails.bindOptional(context){
+                        it?.gbList?.forEach {
+                            viewItemUI()
+                            contentItem(itemTile = "品牌" + viewModel.wrStandardDetails.value?.gbList?.indexOf(it)?.plus(1),itemContent = it.brandid)
+                        }
+                    }
+
+                    viewModel.wrStandardDetails.bindOptional(context){
+                        it?.wrsList?.forEach {
+                            viewItemUI()
+                            contentItem(itemTile = "套保品种" + viewModel.wrStandardDetails.value?.wrsList?.indexOf(it)?.plus(1),itemContent = it.middlegoodsid)
+                            contentItem(itemTile = "套保系数" + viewModel.wrStandardDetails.value?.wrsList?.indexOf(it)?.plus(1),itemContent = it.convertratio.toPercentage())
+                        }
+                    }
+
+                    if (data.remark?.isNotEmpty() == true){
+                        linearLayout {
+                            gravity = Gravity.CENTER_VERTICAL
+                            background = resources.getDrawable(R.color.white)
+                            linearLayout {
+                                gravity = Gravity.CENTER_VERTICAL
+                                textView {
+                                    text = "备注"
+                                    textSizeAuto = 31
+                                    textColorInt = R.color.rma_gray_color
+                                }.lparams(wrapContent, wrapContent){
+                                    marginStart = autoSize(35)
+                                }
+                            }.lparams(autoSize(250), autoSize(120))
+
+                            textView {
+                                text = data.remark
+                                textSizeAuto = 31
+                                textColorInt = R.color.rma_black_33
+                            }.lparams(wrapContent, wrapContent){
+                                marginStart = autoSize(35)
+                                marginEnd = autoSize(35)
+                            }
+
+                        }.lparams(matchParent, autoSize(240))
+                    }
                 }
             }
         }
@@ -75,7 +132,7 @@ class SpotVarietiesDetailsActivity : BaseActivity<CommodityInformationViewModel>
     fun _LinearLayout.contentItem(itemTile : String,itemContent : String){
         linearLayout {
             gravity = Gravity.CENTER_VERTICAL
-
+            background = resources.getDrawable(R.color.white)
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 textView {

+ 62 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/viewholder/ChangeLogViewHolder.kt

@@ -0,0 +1,62 @@
+package cn.muchinfo.rma.view.base.home.commodity.viewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.ChangeLogData
+import cn.muchinfo.rma.global.isBlankString
+import cn.muchinfo.rma.global.isShowTimeString
+import cn.muchinfo.rma.global.toPercentage
+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
+import com.blankj.utilcode.util.TimeUtils
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+class ChangeLogViewHolder(private val activity: AppCompatActivity) :
+    BaseViewHolder<ChangeLogData>(activity) {
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            /**"修改时间"**/
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context) {
+                    text = it?.updatetime?.isShowTimeString("MM-dd HH:mm")
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 31
+            }.lparams(autoSize(225), autoSize(100))
+            /**"修改前套保比例"**/
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context) {
+                    text = it?.beforevalue?.toPercentage()
+                }
+                text = "修改前套保比例"
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 31
+            }.lparams(autoSize(225), autoSize(100))
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context) {
+                    text = it?.logvalue?.toPercentage()
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 31
+            }.lparams(autoSize(225), autoSize(100))
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context) {
+                    text = it?.applyname?.isBlankString()
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 31
+            }.lparams(autoSize(225), autoSize(100))
+        }.lparams(matchParent, autoSize(100))
+    }
+
+}

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

@@ -126,20 +126,24 @@ class ContractActivity : BaseActivity<ContractViewModel>() {
 
     override fun onResume() {
         super.onResume()
-        when (selectedTabIndex) {
-            0 -> {
-                viewModel.queryContract(QueryType = "1")
-            }
-            1 -> {
-                viewModel.queryContract(QueryType = "2")
-            }
-            3 -> {
-                viewModel.queryContract(QueryType = "3")
-            }
-            4 -> {
-                viewModel.queryContract(QueryType = "4")
-            }
-        }
+        viewModel.queryContract(QueryType = "1")
+        viewModel.queryContract(QueryType = "2")
+        viewModel.queryContract(QueryType = "3")
+        viewModel.queryContract(QueryType = "4")
+//        when (selectedTabIndex) {
+//            0 -> {
+//
+//            }
+//            1 -> {
+//
+//            }
+//            3 -> {
+//
+//            }
+//            4 -> {
+//
+//            }
+//        }
     }
 
     override fun onCreate(savedInstanceState: Bundle?) {

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

@@ -7,6 +7,7 @@ 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.isBlankString
 import cn.muchinfo.rma.global.isShowTimeString
 import cn.muchinfo.rma.view.autoWidget.autoSize
 import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
@@ -228,7 +229,7 @@ fun _LinearLayout.contractDetailTwoView(data: ContractData) {
             }
 
             textView {
-                text = data.modelname
+                text = data.modelname?.isBlankString()
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {
@@ -249,7 +250,7 @@ fun _LinearLayout.contractDetailTwoView(data: ContractData) {
             }
 
             textView {
-                text = data.brandname
+                text = data.brandname?.isBlankString()
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {
@@ -318,7 +319,7 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
             }
 
             textView {
-                text = data.qty
+                text = data.qty + data.enumdicname
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {
@@ -365,7 +366,7 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
             }
 
             textView {
-                text = data.goodscode
+                text = data.goodsname
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {
@@ -439,7 +440,7 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
             }
 
             textView {
-                text = data.startdate?.isShowTimeString("yyyyMMdd") + " : " + data.enddate?.isShowTimeString("yyyyMMdd")
+                text = data.startdate?.isShowTimeString("yyyy-MM-dd") + " ~ " + data.enddate?.isShowTimeString("yyyy-MM-dd")
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {
@@ -465,7 +466,7 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
             }
 
             textView {
-                text = data.deliverystartdate?.isShowTimeString("yyyyMMdd") + " : " + data.deliveryenddate?.isShowTimeString("yyyyMMdd")
+                text = data.deliverystartdate?.isShowTimeString("yyyy-MM-dd") + " ~ " + data.deliveryenddate?.isShowTimeString("yyyy-MM-dd")
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {

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

@@ -721,11 +721,14 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
 
                     textView {
                         onThrottleFirstClick {
-                            viewModel.updateUserAccountStatus(userID = data.userid ?: 0,accountStatus = 7){isCompleted, err ->
+                            val params = mutableMapOf<String, Any>()
+                            params["userid"] = data.userid ?: 0
+                            params["userstate"] = 1
+                            viewModel.modifyUserInfoApply(params) { isCompleted, err ->
                                 if (!isCompleted) {
                                     viewModel.loadingDialogStatus.value =
                                         TaskUiModel.failed(InteractiveException(err?.message ?: ""))
-                                    return@updateUserAccountStatus
+                                    return@modifyUserInfoApply
                                 }
                                 viewModel.loadingDialogStatus.value = TaskUiModel.success(msg = "提交成功")
                                 finish()

+ 18 - 14
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/customerdata/CustomerDataActivity.kt

@@ -171,20 +171,24 @@ class CustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
 
     override fun onResume() {
         super.onResume()
-        when (selectedTabIndex) {
-            0 -> {
-                viewModel.queryUserInfo(type = "1")
-            }
-            1 -> {
-                viewModel.queryUserInfo(type = "2")
-            }
-            3 -> {
-                viewModel.queryUserInfo(type = "3")
-            }
-            4 -> {
-                viewModel.queryUserInfo(type = "4")
-            }
-        }
+        viewModel.queryUserInfo(type = "1")
+        viewModel.queryUserInfo(type = "2")
+        viewModel.queryUserInfo(type = "3")
+        viewModel.queryUserInfo(type = "4")
+//        when (selectedTabIndex) {
+//            0 -> {
+//
+//            }
+//            1 -> {
+//
+//            }
+//            3 -> {
+//
+//            }
+//            4 -> {
+//
+//            }
+//        }
     }
 
 }

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

@@ -8,6 +8,7 @@ import android.view.View
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.UserInfoData
+import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.home.contract.emptyView
@@ -94,7 +95,7 @@ class CustomerDataViewHolder(
                 // 联系人手机
                 linearLayout {
                     textView {
-                        data.bindOptional(context) { text = it?.mobile }
+                        data.bindOptional(context) { text = it?.mobile?.isBlankString() }
                         textColorInt = R.color.rma_black_33
                         textSizeAuto = 29
                     }.lparams(wrapContent, wrapContent) {
@@ -253,6 +254,28 @@ class CustomerDataViewHolder(
                     marginEnd = autoSize(24)
                 }
 
+                 textView {
+                    onThrottleFirstClick {
+                        val intent = Intent()
+                        intent.putExtra("status","5")
+                        intent.putExtra("userInfoData",data.value)
+                        intent.setClass(context,AddCustomerDataActivity::class.java)
+                        ActivityUtils.startActivity(intent)
+                    }
+                    if (type == "3"){
+                        visibility = View.VISIBLE
+                    }else{
+                        visibility = View.GONE
+                    }
+                    backgroundResource = R.drawable.rma_item_click_bg
+                    gravity = Gravity.CENTER
+                    text = "停用"
+                    textColorInt = R.color.rma_item_click_color
+                    textSizeAuto = 26
+                }.lparams(autoSize(120), autoSize(48)) {
+                    marginEnd = autoSize(24)
+                }
+
                 textView {
                     onThrottleFirstClick {
                         val intent = Intent()

+ 2 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/AddHedgePlanActivity.kt

@@ -9,6 +9,7 @@ import android.widget.TextView
 import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.business.hedge.HedgePlanInfo
+import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.MTPEnums
 import cn.muchinfo.rma.global.ViewEnumUtils
 import cn.muchinfo.rma.global.data.HedgePlanData
@@ -465,7 +466,7 @@ class AddHedgePlanActivity : BaseActivity<HedgePlanViewModel>() {
 
         hedgePlanInfo.DeliveryGoodsID = selectWrStandardData.value?.deliverygoodsid?.toInt()!!
         hedgePlanInfo.WrStandardID = selectWrStandardData.value?.id?.toInt()!!
-        hedgePlanInfo.AreaUserID = selectWrStandardData.value?.areauserid?.toInt()!!
+        hedgePlanInfo.AreaUserID = GlobalDataCollection.getInstance().loginRsp.userID
         hedgePlanInfo.ProductType = 1//写死为1产品类型
         hedgePlanInfo.SpotGoodsDesc = "咳咳咳"
 

+ 7 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgeDetailsActivity.kt

@@ -17,6 +17,13 @@ import mtp.polymer.com.autowidget.dialog.createLoadingDialog
 import mtp.polymer.com.autowidget.utils.bindTaskStatus
 import org.jetbrains.anko.*
 
+/**
+ * 套保
+ * @property type String?
+ * @property data HedgePlanData
+ * @property audit_opinion_edittext EditText
+ * @property dialog Dialog
+ */
 class HedgeDetailsActivity : BaseActivity<HedgePlanViewModel>() {
 
     /**

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgePlanViewHolder.kt

@@ -73,7 +73,7 @@ class HedgePlanViewHolder(private val activity: AppCompatActivity,private val vi
                     textView {
                         data.bindOptional(context){
                             val contractType = if (it?.contracttype == "1"){"采购"}else{"销售"}
-                            text = it?.wrstandardname + contractType + "套保"
+                            text = it?.hedgeplanno /*+ contractType + "套保"*///修改自错误 #93654
                         }
                         textSizeAuto = 22
                         textColorInt = R.color.hint_text_color

+ 4 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgePlanViewModel.kt

@@ -105,8 +105,10 @@ class HedgePlanViewModel : BaseViewModel() {
     fun queryHedegList(type: String) {
         val params = mutableMapOf<String, String>().apply {
             put("userId", GlobalDataCollection.getInstance().loginRsp.userID.toString())
-            if (type == "1"){
-                put("HedgePlanStatus", "1,4,6")
+            if (type == "0"){
+                put("HedgePlanStatus", "0,6")
+            } else if (type == "1"){
+                put("HedgePlanStatus", "1,4")
             }else{
                 put("HedgePlanStatus", type)
             }

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/PaymentRegistrationActivity.kt

@@ -59,7 +59,7 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
             topBar {
                 commonLeftButton()
                 commonTitle {
-                    text = "结算登记"
+                    text = "款项登记"
                 }
             }
 

+ 19 - 16
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContentAdapter.java

@@ -58,7 +58,7 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
     }
 
 
-    public ContentAdapter(Context context,String listType) {
+    public ContentAdapter(Context context, String listType) {
         this.context = context;
         this.listType = listType;
     }
@@ -68,7 +68,7 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
         notifyDataSetChanged();
     }
 
-    private void setPosition(int position){
+    private void setPosition(int position) {
         if (this.position == position) {
             this.position = -1;
             notifyItemChanged(index);
@@ -90,7 +90,7 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
     public void onBindViewHolder(@NonNull final ItemViewHolder itemViewHolder, int i) {
         this.index = i;
         itemViewHolder.tvLeftTitle.setText(datas.get(i).getAccountname());
-        itemViewHolder.tv_left_bottom_title.setText(datas.get(i).getSpotcontractid());
+        itemViewHolder.tv_left_bottom_title.setText(datas.get(i).getContractno());
         //右边滑动部分
         LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
         linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
@@ -103,16 +103,16 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
         if (!mViewHolderList.contains(itemViewHolder)) {
             mViewHolderList.add(itemViewHolder);
         }
-        if (i == this.position){
+        if (i == this.position) {
             itemViewHolder.roots_view.setBackgroundColor(context.getResources().getColor(R.color.rma_list_select_color));
             itemViewHolder.allView.setVisibility(View.VISIBLE);
-        }else {
+        } else {
             itemViewHolder.roots_view.setBackgroundColor(context.getResources().getColor(R.color.white));
             itemViewHolder.allView.setVisibility(View.GONE);
         }
-        if (listType.equals("1")){//待点价列表
+        if (listType.equals("1")) {//待点价列表
             itemViewHolder.midpoints_registration.setVisibility(View.VISIBLE);
-        }else if (listType.equals("2")){//履约结算
+        } else if (listType.equals("2")) {//履约结算
             itemViewHolder.invoice_register.setVisibility(View.VISIBLE);
             itemViewHolder.settlement_of_registration.setVisibility(View.VISIBLE);
             itemViewHolder.payment_registration.setVisibility(View.VISIBLE);
@@ -126,37 +126,40 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
         //发票登记
         itemViewHolder.invoice_register.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("type","1");
-            intent.putExtra("data",datas.get(i));
+            intent.putExtra("type", "1");
+            intent.putExtra("data", datas.get(i));
             intent.setClass(context, InvoiceRegistrationActivity.class);
             ActivityUtils.startActivity(intent);
         });
         //点价登记
         itemViewHolder.midpoints_registration.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("type","1");
-            intent.putExtra("data",datas.get(i));
+            intent.putExtra("type", "1");
+            intent.putExtra("data", datas.get(i));
             intent.setClass(context, MidpointsRegistrationActivity.class);
             ActivityUtils.startActivity(intent);
         });
         //结算登记
         itemViewHolder.settlement_of_registration.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("type","1");
-            intent.putExtra("data",datas.get(i));
+            intent.putExtra("type", "1");
+            intent.putExtra("data", datas.get(i));
             intent.setClass(context, SettlementRegistrationActivity.class);
             ActivityUtils.startActivity(intent);
         });
         //款项登记
         itemViewHolder.payment_registration.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("type","1");
-            intent.putExtra("data",datas.get(i));
+            intent.putExtra("type", "1");
+            intent.putExtra("data", datas.get(i));
             intent.setClass(context, PaymentRegistrationActivity.class);
             ActivityUtils.startActivity(intent);
         });
         itemViewHolder.details.setOnClickListener(view -> {
-
+            Intent intent = new Intent();
+            intent.putExtra("data", datas.get(i));
+            intent.setClass(context, ContractDetailActivity.class);
+            context.startActivity(intent);
         });
         itemViewHolder.load_more.setOnClickListener(view -> {
 

+ 768 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContractDetailActivity.kt

@@ -0,0 +1,768 @@
+package cn.muchinfo.rma.view.base.procurement
+
+import android.os.Bundle
+import android.view.Gravity
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.app.AppCompatActivity
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.ViewEnumUtils
+import cn.muchinfo.rma.global.data.BusinessData
+import cn.muchinfo.rma.global.data.ChangeLogData
+import cn.muchinfo.rma.global.data.ContractData
+import cn.muchinfo.rma.global.data.FinancialManageData
+import cn.muchinfo.rma.global.isBlankString
+import cn.muchinfo.rma.global.isShowTimeString
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.home.business.BusinessManagementViewholder
+import cn.muchinfo.rma.view.base.home.commodity.viewholder.ChangeLogViewHolder
+import cn.muchinfo.rma.view.base.home.contract.viewItemUI
+import cn.muchinfo.rma.view.base.procurement.detailsviewholder.ChangeRecordViewHolder
+import cn.muchinfo.rma.view.base.procurement.detailsviewholder.InvoiceRecordViewHolder
+import cn.muchinfo.rma.view.base.procurement.detailsviewholder.PriceRecordViewHolder
+import com.blankj.utilcode.util.ConvertUtils
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 用与采购和销售的合同详情
+ */
+class ContractDetailActivity : BaseActivity<ProcurementViewModel>() {
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    private lateinit var viewPager: ViewPager
+
+    private val data by lazy {
+        intent.getParcelableExtra<ContractData>("data") as ContractData
+    }
+
+    private val tabsArray: List<String> by lazy {
+        arrayListOf("合同详情", "点价登记", "结算登记", "款项登记", "发票登记", "变更记录")
+    }
+
+    //合同详情
+    private val contractDetailsUI by lazy { ContractDetailsUI(this, viewModel, data) }
+
+    //点价登记
+    private val priceRecordUI by lazy { PriceRecordUI(this, viewModel, data) }
+
+    //结算登记
+    private val settlementRecordUI by lazy { SettlementRecordUI(this, viewModel, data) }
+
+    //款项登记
+    private val paymentRecordUI by lazy { PaymentRecordUI(this, viewModel, data) }
+
+    //发票登记
+    private val invoiceRecordUI by lazy { InvoiceRecordUI(this, viewModel, data) }
+
+    //变更登记
+    private val changeRecordUI by lazy { ChangeRecordUI(this, viewModel, data) }
+
+    private val pagerAdapter: PagerAdapter by lazy {
+        object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = tabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                when (position) {
+                    0 -> {  // 未提交
+                        return contractDetailsUI.root.apply {
+                            container.addView(
+                                this,
+                                ViewGroup.LayoutParams(matchParent, matchParent)
+                            )
+                        }
+                    }
+                    1 -> { // 待审核
+                        return priceRecordUI.root.apply {
+                            container.addView(
+                                this,
+                                ViewGroup.LayoutParams(matchParent, matchParent)
+                            )
+                        }
+                    }
+                    2 -> {
+                        return settlementRecordUI.root.apply {
+                            container.addView(
+                                this,
+                                ViewGroup.LayoutParams(matchParent, matchParent)
+                            )
+                        }
+                    }
+                    3 -> {
+                        return paymentRecordUI.root.apply {
+                            container.addView(
+                                this,
+                                ViewGroup.LayoutParams(matchParent, matchParent)
+                            )
+                        }
+                    }
+                    4 -> {
+                        return invoiceRecordUI.root.apply {
+                            container.addView(
+                                this,
+                                ViewGroup.LayoutParams(matchParent, matchParent)
+                            )
+                        }
+                    }
+                    5 -> {
+                        return changeRecordUI.root.apply {
+                            container.addView(
+                                this,
+                                ViewGroup.LayoutParams(matchParent, matchParent)
+                            )
+                        }
+                    }
+                    else -> return super.instantiateItem(container, position)
+                }
+            }
+
+            override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
+                (`object` as? View)?.let { container.removeView(it) }
+            }
+
+            override fun isViewFromObject(view: View, `object`: Any): Boolean = view == `object`
+
+            override fun getCount(): Int = tabsArray.size
+
+        }
+    }
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            topBar {
+                // 返回
+                commonLeftButton()
+                commonTitle {
+                    text = "合同详情"
+                }
+            }
+
+            // 分页框
+            tabSegment {
+                segment = this
+                background = resources.getDrawable(R.color.segtabment_bg_color)
+                addOnTabSelectedListener(object :
+                    QMUITabSegment.OnTabSelectedListener {
+                    override fun onDoubleTap(index: Int) {}
+                    override fun onTabReselected(index: Int) {}
+                    override fun onTabUnselected(index: Int) {}
+                    override fun onTabSelected(index: Int) {
+                        selectedTabIndex = index
+                    }
+                })
+                setIndicator(
+                    QMUITabIndicator(
+                        QMUIDisplayHelper.dp2px(context, 2),
+                        false,
+                        true
+                    )
+                )
+                setDefaultTextSize(ConvertUtils.sp2px(14f), ConvertUtils.sp2px(14f))
+            }.lparams(matchParent, autoSize(100))
+
+            view {
+                background = resources.getDrawable(R.color.main_hit_bg_color)
+            }.lparams(matchParent, autoSize(1)) {
+                marginStart = autoSize(32)
+                marginEnd = autoSize(32)
+            }
+            // 内容
+            viewPager {
+                background = resources.getDrawable(R.color.white)
+                viewPager = this
+                adapter = pagerAdapter
+            }.lparams(matchParent, autoSize(2000))
+
+            segment.setupWithViewPager(viewPager)
+            segment.selectTab(selectedTabIndex)
+
+
+        }
+    }
+
+}
+
+/**
+ * 合同详情
+ * @property activity AppCompatActivity
+ * @property viewModel ProcurementViewModel
+ * @property data ContractData
+ * @property root _FrameLayout
+ * @constructor
+ */
+class ContractDetailsUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: ProcurementViewModel,
+    private val data: ContractData
+) {
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            scrollView {
+                verticalLayout {
+                    contentItem(itemTile = ViewEnumUtils.getContractType(data.contracttype ?: "") + "-" + ViewEnumUtils.getPriceType(data.pricetype ?: "") + "合同",itemContent = data.contractno?.isBlankString() ?: "")
+                    viewItemUI()
+                    contentItem(itemTile = if (data.contracttype == "1") { "销售方" }else{ "采购方" } ,itemContent = if (data.contracttype == "1") { data?.sellusername ?: "" }else{ data?.buyusername ?: "" })
+                    viewItemUI()
+                    contentItem(itemTile = "现货品种",itemContent = data.deliverygoodsname ?: "")
+                    viewItemUI()
+                    contentItem(itemTile = "产品类型",itemContent = ViewEnumUtils.getProductType(data.producttype ?: ""))
+                    viewItemUI()
+                    contentItem(itemTile = "产品规格",itemContent = data?.spotgoodsdesc ?: "")
+                    viewItemUI()
+                    contentItem(itemTile = "定价类型",itemContent = ViewEnumUtils.getPriceType(data.pricetype ?: ""))
+                    viewItemUI()
+                    contentItem(itemTile = "期货合约",itemContent = data.goodscode ?: "")
+                    viewItemUI()
+                    contentItem(itemTile = "升贴水",itemContent = data.pricemove ?: "")
+                    viewItemUI()
+                    contentItem(itemTile = "标仓系数",itemContent = data.convertfactor ?: "")
+                    viewItemUI()
+                    contentItem(itemTile = "点价期",itemContent = data.startdate?.isShowTimeString("MM-dd") + "~" + data.enddate?.isShowTimeString("MM-dd"))
+                    viewItemUI()
+                    contentItem(itemTile = "点价期",itemContent = data.deliverystartdate?.isShowTimeString("MM-dd") + "~" + data.deliveryenddate?.isShowTimeString("MM-dd"))
+                    viewItemUI()
+                    contentItem(itemTile = "合同量",itemContent = data.qty ?: "" + data.enumdicname ?: "")
+                    viewItemUI()
+                    contentItem(itemTile = "初始保证金",itemContent = data.margin ?: "")
+                }
+            }
+        }
+    }
+}
+//合同详情的item
+fun _LinearLayout.contentItem(itemTile : String,itemContent : String){
+    linearLayout {
+        gravity = Gravity.CENTER_VERTICAL
+        background = resources.getDrawable(R.color.white)
+        linearLayout {
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                text = itemTile
+                textSizeAuto = 31
+                textColorInt = R.color.rma_gray_color
+            }.lparams(wrapContent, wrapContent){
+                marginStart = autoSize(35)
+            }
+        }.lparams(autoSize(250), autoSize(120))
+
+        textView {
+            text = itemContent
+            textSizeAuto = 31
+            textColorInt = R.color.rma_black_33
+        }.lparams(wrapContent, wrapContent){
+            marginStart = autoSize(35)
+        }
+
+    }.lparams(matchParent, autoSize(120))
+}
+
+/**
+ * 点价记录
+ * @property activity AppCompatActivity
+ * @property viewModel ProcurementViewModel
+ * @property data ContractData
+ * @constructor
+ */
+class PriceRecordUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: ProcurementViewModel,
+    private val data: ContractData
+) {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    private val unSubmitAdapter: BaseAdapter<BusinessData, PriceRecordViewHolder> = BaseAdapter { _, _ -> PriceRecordViewHolder(activity,"1") }
+
+    init {
+        viewModel.queryBusinessDJ(relatedid = data.spotcontractid ?: "")
+    }
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            creatContrctTitleUI(type = "1")
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryBusinessDJ(relatedid = data.spotcontractid ?: "")
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = unSubmitAdapter
+                    }.lparams(matchParent, matchParent)
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.somePriceList.bindOptional(context){
+                if (it?.isEmpty() == true || it?.size == 0){
+                    statusLayout.showEmpty()
+                }else {
+                    if (swipeToLayout.getIsRefreshing()){
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    unSubmitAdapter.setNewData(it)
+                }
+            }
+        }
+    }
+}
+
+/**
+ * 结算记录
+ * @property activity AppCompatActivity
+ * @property viewModel ProcurementViewModel
+ * @property data ContractData
+ * @property root _FrameLayout
+ * @constructor
+ */
+class SettlementRecordUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: ProcurementViewModel,
+    private val data: ContractData
+) {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    private val unSubmitAdapter: BaseAdapter<BusinessData, PriceRecordViewHolder> = BaseAdapter { _, _ -> PriceRecordViewHolder(activity,"2") }
+
+    init {
+        viewModel.queryBusinessJS(relatedid = data.spotcontractid ?: "")
+    }
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            creatContrctTitleUI(type = "2")
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryBusinessJS(relatedid = data.spotcontractid ?: "")
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = unSubmitAdapter
+                    }.lparams(matchParent, matchParent)
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.settlementList.bindOptional(context){
+                if (it?.isEmpty() == true || it?.size == 0){
+                    statusLayout.showEmpty()
+                }else {
+                    if (swipeToLayout.getIsRefreshing()){
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    unSubmitAdapter.setNewData(it)
+                }
+            }
+        }
+    }
+}
+
+/**
+ * 款项记录
+ * @property activity AppCompatActivity
+ * @property viewModel ProcurementViewModel
+ * @property data ContractData
+ * @property root _FrameLayout
+ * @constructor
+ */
+class PaymentRecordUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: ProcurementViewModel,
+    private val data: ContractData
+) {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    private val unSubmitAdapter: BaseAdapter<FinancialManageData, InvoiceRecordViewHolder> = BaseAdapter { _, _ -> InvoiceRecordViewHolder(activity,"1") }
+
+    init {
+        viewModel.queryBusinessKx(relatedid = data.spotcontractid ?: "")
+    }
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            creatContrctTitleUI(type = "3")
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryBusinessKx(relatedid = data.spotcontractid ?: "")
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = unSubmitAdapter
+                    }.lparams(matchParent, matchParent)
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.paymentList.bindOptional(context){
+                if (it?.isEmpty() == true || it?.size == 0){
+                    statusLayout.showEmpty()
+                }else {
+                    if (swipeToLayout.getIsRefreshing()){
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    unSubmitAdapter.setNewData(it)
+                }
+            }
+        }
+    }
+}
+
+/**
+ * 发票记录
+ * @property activity AppCompatActivity
+ * @property viewModel ProcurementViewModel
+ * @property data ContractData
+ * @property root _FrameLayout
+ * @constructor
+ */
+class InvoiceRecordUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: ProcurementViewModel,
+    private val data: ContractData
+) {
+
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    private val unSubmitAdapter: BaseAdapter<FinancialManageData, InvoiceRecordViewHolder> = BaseAdapter { _, _ -> InvoiceRecordViewHolder(activity,"2") }
+
+    init {
+        viewModel.queryBusinessFp(relatedid = data.spotcontractid ?: "")
+    }
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            creatContrctTitleUI(type = "4")
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryBusinessFp(relatedid = data.spotcontractid ?: "")
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = unSubmitAdapter
+                    }.lparams(matchParent, matchParent)
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.paymentList.bindOptional(context){
+                if (it?.isEmpty() == true || it?.size == 0){
+                    statusLayout.showEmpty()
+                }else {
+                    if (swipeToLayout.getIsRefreshing()){
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    unSubmitAdapter.setNewData(it)
+                }
+            }
+        }
+    }
+}
+
+/**
+ * 变更记录
+ * @property activity AppCompatActivity
+ * @property viewModel ProcurementViewModel
+ * @property data ContractData
+ * @property root _FrameLayout
+ * @constructor
+ */
+class ChangeRecordUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: ProcurementViewModel,
+    private val data: ContractData
+) {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    private val spotVarietiesNormalAdapter: BaseAdapter<ChangeLogData, ChangeRecordViewHolder> = BaseAdapter { _, _ -> ChangeRecordViewHolder(activity) }
+
+    init {
+        viewModel.queryChangeLog(RelatedId = data.spotcontractid ?: "")
+    }
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            linearLayout {
+                gravity = Gravity.CENTER_HORIZONTAL
+                textView {
+                    gravity = Gravity.CENTER
+                    text = "变更时间"
+                    textColorInt = R.color.hint_text_color
+                    textSizeAuto = 24
+                }.lparams(autoSize(300), autoSize(70))
+
+                textView {
+                    gravity = Gravity.CENTER
+                    text = "类型"
+                    textColorInt = R.color.hint_text_color
+                    textSizeAuto = 24
+                }.lparams(autoSize(300), autoSize(70))
+
+                textView {
+                    gravity = Gravity.CENTER
+                    text = "操作人"
+                    textColorInt = R.color.hint_text_color
+                    textSizeAuto = 24
+                }.lparams(autoSize(300), autoSize(70))
+            }.lparams(matchParent, autoSize(70))
+
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryChangeLog(RelatedId = data.spotcontractid ?: "")
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = spotVarietiesNormalAdapter
+                    }.lparams(matchParent, matchParent)
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.changeLogDataList.bindOptional(context){
+                if (it?.isEmpty() == true || it?.size == 0){
+                    statusLayout.showEmpty()
+                }else {
+                    if (swipeToLayout.getIsRefreshing()){
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    spotVarietiesNormalAdapter.setNewData(it)
+                }
+            }
+
+        }
+    }
+}
+
+/**
+ *
+ * @receiver _LinearLayout
+ * @param type String 1 点价记录 2 结算记录 3 款项记录 4 发票记录
+ */
+fun _LinearLayout.creatContrctTitleUI(type: String) {
+    linearLayout {
+
+        verticalLayout {
+            gravity = Gravity.CENTER_HORIZONTAL
+            textView {
+                when (type) {
+                    "1" -> {
+                        text = "点价登记时间"
+                    }
+                    "2" -> {
+                        text = "结算登记时间"
+                    }
+                    "3" -> {
+                        text = "款项登记时间"
+                    }
+                    "4" -> {
+                        text = "发票登记时间"
+                    }
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+            }
+            textView {
+                when (type) {
+                    "1" -> {
+                        text = "点价审核时间"
+                    }
+                    "2" -> {
+                        text = "结算审核时间"
+                    }
+                    "3" -> {
+                        text = "款项审核时间"
+                    }
+                    "4" -> {
+                        text = "发票审核时间"
+                    }
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(wrapContent, wrapContent)
+        }.lparams(autoSize(315), autoSize(92))
+
+        verticalLayout {
+            gravity = Gravity.CENTER_HORIZONTAL
+            textView {
+                when (type) {
+                    "1" -> {
+                        text = "点价价格"
+                    }
+                    "2" -> {
+                        text = "结算项"
+                    }
+                    "3" -> {
+                        text = "款项类型"
+                    }
+                    "4" -> {
+                        text = "发票类型"
+                    }
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+            }
+            textView {
+                when (type) {
+                    "1" -> {
+                        text = "升贴水"
+                    }
+                    "2" -> {
+                        text = "值"
+                    }
+                    "3" -> {
+                        text = "金额"
+                    }
+                    "4" -> {
+                        text = "金额"
+                    }
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(wrapContent, wrapContent)
+        }.lparams(autoSize(195), autoSize(92))
+
+        verticalLayout {
+            gravity = Gravity.CENTER_HORIZONTAL
+            textView {
+                when (type) {
+                    "1" -> {
+                        text = "点价数量"
+                    }
+                    "2" -> {
+                        text = "申请人"
+                    }
+                    "3" -> {
+                        text = "金额"
+                    }
+                    "4" -> {
+                        text = "金额"
+                    }
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+            }
+            textView {
+                when (type) {
+                    "1" -> {
+                        text = "点价金额"
+                    }
+                    "2" -> {
+                        text = "审核人"
+                    }
+                    "3" -> {
+                        text = "审核人"
+                    }
+                    "4" -> {
+                        text = "审核人"
+                    }
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(wrapContent, wrapContent)
+        }.lparams(autoSize(195), autoSize(92))
+
+        verticalLayout {
+            gravity = Gravity.CENTER_HORIZONTAL
+            textView {
+                if (type == "1") {
+                    text = "申请人/审核人"
+                } else {
+                    text = "状态"
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+            }
+            textView {
+                if (type == "1") {
+                    visibility = View.VISIBLE
+                } else {
+                    visibility = View.GONE
+                }
+                text = "状态"
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(wrapContent, wrapContent)
+        }.lparams(autoSize(195), autoSize(92))
+    }.lparams(matchParent, autoSize(92))
+}

+ 125 - 10
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ProcurementViewModel.kt

@@ -2,13 +2,14 @@ package cn.muchinfo.rma.view.base.procurement
 
 import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.global.GlobalDataCollection
+
 import cn.muchinfo.rma.global.ViewEnumUtils
-import cn.muchinfo.rma.global.data.ColumnsData
-import cn.muchinfo.rma.global.data.ContractData
+import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.autoWidget.toArrayList
 import cn.muchinfo.rma.view.base.BaseViewModel
 import cn.muchinfo.rma.view.base.app.Constant
+import com.blankj.utilcode.util.TimeUtils
 
 import mtp.polymer.com.autowidget.utils.TaskUiModel
 import java.util.*
@@ -36,6 +37,32 @@ class ProcurementViewModel : BaseViewModel() {
     val allTitle: MutableLiveData<List<ColumnsData>> = MutableLiveData()
 
     /**
+     * 合同详情业务管理列表点价数据
+     */
+    val somePriceList: MutableLiveData<List<BusinessData>> = MutableLiveData()
+
+    /**
+     * 合同详情业务管理列表结算数据
+     */
+    val settlementList: MutableLiveData<List<BusinessData>> = MutableLiveData()
+
+    /**
+     * 合同详情业务管理列表款项数据
+     */
+    val paymentList : MutableLiveData<List<FinancialManageData>> = MutableLiveData()
+
+    /**
+     * 合同详情业务管理列表发票数据
+     */
+    val invoiceList : MutableLiveData<List<FinancialManageData>> = MutableLiveData()
+
+    /**
+     * 变更记录列表
+     */
+    val changeLogDataList : MutableLiveData<List<ChangeLogData>> = MutableLiveData()
+
+
+    /**
      * 查询采购列表头部数据
      * @param tableKey String
      */
@@ -139,9 +166,9 @@ class ProcurementViewModel : BaseViewModel() {
         respData.forEach {
             val newRightData = arrayListOf<String>()
             newRightData.add(it.deliverygoodsname + "\n" + it.spotgoodsdesc)
-            newRightData.add(it.goodscode + "\n" + it.pricemove)
-            newRightData.add(it.qty + "\n" + it.unpricedqty)
-            newRightData.add(it.pricedqty + "\n" + it.unsureqty)
+            newRightData.add(it.goodsname + "\n" + it.pricemove)
+            newRightData.add(it.qty+ it.enumdicname + "\n" + it.unpricedqty + it.enumdicname)
+            newRightData.add(it.pricedqty+ it.enumdicname + "\n" + it.unsureqty+ it.enumdicname)
             newRightData.add(it.payamount + "\n" + it.unpayamount)
             newRightData.add(it.invoiceamount + "\n" + it.daikaiamount)
             newRightData.add(getTimeString(it))
@@ -162,8 +189,8 @@ class ProcurementViewModel : BaseViewModel() {
         respData.forEach {
             val newRightData = arrayListOf<String>()
             newRightData.add(it.deliverygoodsname + "\n" + it.spotgoodsdesc)
-            newRightData.add(it.goodscode + "\n" + it.pricemove)
-            newRightData.add(it.pricedqty + "\n" + it.unsureqty)
+            newRightData.add(it.goodsname + "\n" + it.pricemove)
+            newRightData.add(it.pricedqty + it.enumdicname + "\n" + it.unsureqty+ it.enumdicname)
             newRightData.add(it.payamount + "\n" + it.unpayamount)
             newRightData.add(it.invoiceamount + "\n" + it.daikaiamount)
             newRightData.add(getTimeString(it))
@@ -186,14 +213,14 @@ class ProcurementViewModel : BaseViewModel() {
             val newRightData = arrayListOf<String>()
             newRightData.add(ViewEnumUtils.getContractStatus(it.contracctstatus ?: ""))
             newRightData.add(it.deliverygoodsname + "\n" + it.spotgoodsdesc)
-            newRightData.add(it.goodscode + "\n" + it.pricemove)
+            newRightData.add(it.goodsname + "\n" + it.pricemove)
             newRightData.add(
                 it.convertfactor + "\n" + ViewEnumUtils.getContractStatus(
                     it.contracctstatus ?: ""
                 )
             )
-            newRightData.add(it.qty + "\n" + it.unpricedqty)
-            newRightData.add(it.pricedqty + "\n" + it.unsureqty)
+            newRightData.add(it.qty+ it.enumdicname + "\n" + it.unpricedqty+ it.enumdicname)
+            newRightData.add(it.pricedqty+ it.enumdicname + "\n" + it.unsureqty+ it.enumdicname)
             newRightData.add(it.payamount + "\n" + it.unpayamount)
             newRightData.add(it.invoiceamount + "\n" + it.daikaiamount)
             newRightData.add(getTimeString(it))
@@ -280,6 +307,94 @@ class ProcurementViewModel : BaseViewModel() {
     }
 
 
+    /**
+     * 请求业务管理点价列表
+     */
+    fun queryBusinessDJ(relatedid : String) {
+        val params = mutableMapOf<String, String>().apply {
+            put("UserId", GlobalDataCollection.getInstance().loginRsp.userID.toString())
+            put("relatedid", relatedid)
+        }
+        MyApplication.getInstance()?.businessManager?.queryBusinessDJ(params) { isSuccess, respData, _ ->
+            if (isSuccess){
+                respData?.toArrayList()?.sortWith(Comparator { t1, t2 ->
+                    (TimeUtils.string2Millis(t2.applytime) - TimeUtils.string2Millis(t1.applytime)).toInt()
+                })
+                somePriceList.postValue(respData)
+            }
+        }
+    }
+
+
+    /**
+     * 请求业务管理结算列表
+     */
+    fun queryBusinessJS(relatedid : String) {
+        val params = mutableMapOf<String, String>().apply {
+            put("UserId", GlobalDataCollection.getInstance().loginRsp.userID.toString())
+            put("relatedid", relatedid)
+        }
+
+        MyApplication.getInstance()?.businessManager?.queryBusinessJSEx(params) { isSuccess, respData, _ ->
+            if (isSuccess){
+                respData?.toArrayList()?.sortWith(Comparator { t1, t2 ->
+                    (TimeUtils.string2Millis(t2.applytime) - TimeUtils.string2Millis(t1.applytime)).toInt()
+                })
+                settlementList.postValue(respData)
+            }
+        }
+    }
+
+
+    /**
+     * 款项列表请求
+     */
+    fun queryBusinessKx(relatedid : String){
+        val params = mutableMapOf<String, String>().apply {
+            put("UserId", GlobalDataCollection.getInstance().loginRsp.userID.toString())
+            put("relatedid", relatedid)
+        }
+
+        MyApplication.getInstance()?.financialManager?.queryBusinessKx(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                paymentList.postValue(respData)
+            }
+        }
+    }
+
+
+    /**
+     * 发票列表请求
+     */
+    fun queryBusinessFp(relatedid : String){
+        val params = mutableMapOf<String, String>().apply {
+            put("UserId", GlobalDataCollection.getInstance().loginRsp.userID.toString())
+            put("relatedid", relatedid)
+        }
+
+        MyApplication.getInstance()?.financialManager?.queryBusinessFp(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                invoiceList.postValue(respData)
+            }
+        }
+    }
+
+
+    /**
+     * 查询变更记录
+     * @param RelatedId String
+     */
+    fun queryChangeLog(RelatedId : String){
+        val params = mutableMapOf<String, String>().apply {
+            put("RelatedId", RelatedId)
+        }
+
+        MyApplication.getInstance()?.commonManager?.queryChangeLog(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                changeLogDataList.postValue(respData)
+            }
+        }
+    }
 
 
 }

+ 52 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/detailsviewholder/ChangeRecordViewHolder.kt

@@ -0,0 +1,52 @@
+package cn.muchinfo.rma.view.base.procurement.detailsviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.ChangeLogData
+import cn.muchinfo.rma.global.isShowTimeString
+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
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+class ChangeRecordViewHolder(private val activity: AppCompatActivity) : BaseViewHolder<ChangeLogData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            gravity = Gravity.CENTER_HORIZONTAL
+            // text = "变更时间"
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context){
+                    text = it?.updatetime?.isShowTimeString("yyyy-MM-dd HH:mm")
+                }
+
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(autoSize(300), autoSize(100))
+            //  text = "类型"
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context){
+                    text = it?.operatelogtypedesc
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(autoSize(300), autoSize(100))
+            // text = "操作人"
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context){
+                    text = it?.applyname
+                }
+                textColorInt = R.color.hint_text_color
+                textSizeAuto = 24
+            }.lparams(autoSize(300), autoSize(100))
+        }.lparams(matchParent, autoSize(100))
+    }
+
+}

+ 167 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/detailsviewholder/InvoiceRecordViewHolder.kt

@@ -0,0 +1,167 @@
+package cn.muchinfo.rma.view.base.procurement.detailsviewholder
+
+import android.graphics.Typeface
+import android.text.TextUtils
+import android.view.Gravity
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.ViewEnumUtils
+import cn.muchinfo.rma.global.data.BusinessData
+import cn.muchinfo.rma.global.data.FinancialManageData
+import cn.muchinfo.rma.global.isBlankNumber
+import cn.muchinfo.rma.global.isBlankString
+import cn.muchinfo.rma.global.isShowTimeString
+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
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+/**
+ * 合同详情的款项记录和发票记录
+ * @property activity AppCompatActivity
+ * @property type String
+ * @property itemSize IntArray
+ * @constructor
+ */
+class InvoiceRecordViewHolder(private val activity: AppCompatActivity, private val type: String) :
+    BaseViewHolder<FinancialManageData>(activity) {
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            verticalLayout {
+                gravity = Gravity.CENTER
+                linearLayout {
+                    /** 款项登记时间/发票审核时间 **/
+                    textView {
+                        data.bindOptional(context) {
+                            text = it?.applytime?.isShowTimeString("yyyyMM/dd HH:mm")
+                        }
+                        textColorInt = R.color.rma_black_33
+                        textSizeAuto = 29
+                        typeface = Typeface.defaultFromStyle(Typeface.BOLD)
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(35)
+                        topMargin = autoSize(25)
+                    }
+
+                }.lparams(matchParent, wrapContent)
+                /** 款项审核时间/发票审核时间 **/
+                textView {
+                    data.bindOptional(context) {
+                        text = it?.audittime?.isShowTimeString("yyyyMM/dd HH:mm")
+                    }
+                    textSizeAuto = 22
+                    textColorInt = R.color.hint_text_color
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(35)
+                    topMargin = autoSize(15)
+                }
+
+            }.lparams(autoSize(315), autoSize(120))
+
+            verticalLayout {
+                gravity = Gravity.CENTER
+                /** 款项类型/发票类型 **/
+                textView {
+                    data.bindOptional(context) {
+                        data.bindOptional(context) {
+                            if (type == "1") {
+                                if (it?.kxtype == "1") {
+                                    text = "付款"
+                                } else if (it?.kxtype == "2") {
+                                    text = "退款"
+                                } else if (it?.kxtype == "3") {
+                                    text = "付款/退款"
+                                }
+                            } else {
+                                if (it?.contracttype == "1") {
+                                    text = "收票"
+                                } else if (it?.contracttype == "2") {
+                                    text = "开票"
+                                }
+                            }
+
+                        }
+
+                    }
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                    maxLines = 1
+                    ellipsize = TextUtils.TruncateAt.END
+                }.lparams(wrapContent, wrapContent) {
+                    topMargin = autoSize(25)
+                }
+                /** 金额 **/
+                textView {
+                    data.bindOptional(context) {
+                        if (type == "1") {
+                            if (it?.kxtype == "1") {
+                                text = it.payamount
+                            } else if (it?.kxtype == "2") {
+                                text = it.deductamount
+                            } else if (it?.kxtype == "3") {
+                                text = it.payamount + "/" + it.deductamount
+                            }
+                        } else {
+                            text = it?.invoiceAmount
+                        }
+                    }
+                    textSizeAuto = 22
+                    textColorInt = R.color.hint_text_color
+                }.lparams(wrapContent, wrapContent) {
+                    topMargin = autoSize(15)
+                }
+
+            }.lparams(autoSize(195), autoSize(120))
+
+            /**  申请人 **/
+            verticalLayout {
+                gravity = Gravity.CENTER
+                textView {
+                    data.bindOptional(context) {
+                        text = it?.applyname?.isBlankString()
+                    }
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                    maxLines = 1
+                    ellipsize = TextUtils.TruncateAt.END
+                }.lparams(wrapContent, wrapContent) {
+                    topMargin = autoSize(25)
+                }
+                /** 审核人 **/
+                textView {
+                    data.bindOptional(context) {
+                        text = it?.auditname?.isBlankString()
+                    }
+                    textSizeAuto = 22
+                    textColorInt = R.color.hint_text_color
+                }.lparams(wrapContent, wrapContent) {
+                    topMargin = autoSize(15)
+                }
+            }.lparams(autoSize(195), autoSize(120))
+
+            verticalLayout {
+                gravity = Gravity.CENTER
+                /** 状态 */
+                textView {
+                    data.bindOptional(context) {
+                        text = ViewEnumUtils.getBusinessManagementStatus(it?.applystatus ?: "")
+                    }
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                    maxLines = 1
+                    ellipsize = TextUtils.TruncateAt.END
+                }.lparams(wrapContent, wrapContent) {
+                    topMargin = autoSize(25)
+                }
+
+            }.lparams(autoSize(195), autoSize(120))
+
+        }.lparams(matchParent, autoSize(120))
+    }
+
+}

+ 175 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/detailsviewholder/PriceRecordViewHolder.kt

@@ -0,0 +1,175 @@
+package cn.muchinfo.rma.view.base.procurement.detailsviewholder
+
+import android.graphics.Typeface
+import android.text.TextUtils
+import android.view.Gravity
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+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.global.isShowTimeString
+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
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+/**
+ * 合同详情 点价/结算viewholder
+ * @property activity AppCompatActivity
+ * @property type String
+ * @property itemSize IntArray
+ * @constructor
+ */
+class PriceRecordViewHolder(private val activity: AppCompatActivity,private val type : String) : BaseViewHolder<BusinessData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            verticalLayout {
+                gravity = Gravity.CENTER
+                linearLayout {
+                    /** 点价登记时间/结算审核时间 **/
+                    textView {
+                        data.bindOptional(context){
+                            text = it?.applytime?.isShowTimeString("yyyyMM/dd HH:mm")
+                        }
+                        textColorInt = R.color.rma_black_33
+                        textSizeAuto = 29
+                        typeface = Typeface.defaultFromStyle(Typeface.BOLD)
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(35)
+                        topMargin = autoSize(25)
+                    }
+
+                }.lparams(matchParent, wrapContent)
+                /** 点价审核时间/结算审核时间 **/
+                textView {
+                    data.bindOptional(context){
+                        text = it?.audittime?.isShowTimeString("yyyyMM/dd HH:mm")
+                    }
+                    textSizeAuto = 22
+                    textColorInt = R.color.hint_text_color
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(35)
+                    topMargin = autoSize(15)
+                }
+
+            }.lparams(autoSize(315), autoSize(120))
+
+            verticalLayout {
+                gravity = Gravity.CENTER
+                /** 点价价格/结算项 **/
+                textView {
+                    data.bindOptional(context){
+                        if (type == "1"){
+                            text = it?.pricedPrice
+                        }else{
+                            text = it?.reckontype
+                        }
+
+                    }
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                    maxLines = 1
+                    ellipsize = TextUtils.TruncateAt.END
+                }.lparams(wrapContent, wrapContent) {
+                    topMargin = autoSize(25)
+                }
+                /** 升贴水/值 **/
+                textView {
+                    data.bindOptional(context){
+                        if (type == "1"){
+                            text = it?.pricemove
+                        }else{
+                            text = it?.reckonvalue
+                        }
+
+                    }
+                    textSizeAuto = 22
+                    textColorInt = R.color.hint_text_color
+                }.lparams(wrapContent, wrapContent){
+                    topMargin = autoSize(15)
+                }
+
+            }.lparams(autoSize(195), autoSize(120))
+
+            /** 点价数量/申请人 **/
+            verticalLayout {
+                gravity = Gravity.CENTER
+                textView {
+                    data.bindOptional(context) {
+                        if (type == "1"){
+                            text = it?.pricedQty
+                        }else{
+                            text = it?.applyname?.isBlankString()
+                        }
+                    }
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                    maxLines = 1
+                    ellipsize = TextUtils.TruncateAt.END
+                }.lparams(wrapContent, wrapContent) {
+                    topMargin = autoSize(25)
+                }
+                /** 点价金额/审核人 **/
+                textView {
+                    data.bindOptional(context){
+                        if (type == "1"){
+                            text = it?.amount?.isBlankNumber()
+                        }else{
+                            text = it?.auditname?.isBlankString()
+                        }
+                    }
+                    textSizeAuto = 22
+                    textColorInt = R.color.hint_text_color
+                }.lparams(wrapContent, wrapContent){
+                    topMargin = autoSize(15)
+                }
+            }.lparams(autoSize(195), autoSize(120))
+
+            verticalLayout {
+                gravity = Gravity.CENTER
+                /** 状态 */
+                textView {
+                    data.bindOptional(context){
+                        if (type == "1"){
+                            text = it?.applyname + "/" + it?.auditname
+                        }else{
+                            text = ViewEnumUtils.getBusinessManagementStatus(it?.applystatus ?: "")
+                        }
+                    }
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                    maxLines = 1
+                    ellipsize = TextUtils.TruncateAt.END
+                }.lparams(wrapContent, wrapContent) {
+                    topMargin = autoSize(25)
+                }
+
+                textView {
+                    data.bindOptional(context){
+                        if (type == "1"){
+                            text = ViewEnumUtils.getBusinessManagementStatus(it?.applystatus ?: "")
+                            visibility = View.VISIBLE
+                        }else{
+                            visibility = View.GONE
+                        }
+                    }
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                    maxLines = 1
+                    ellipsize = TextUtils.TruncateAt.END
+                }.lparams(wrapContent, wrapContent)
+
+            }.lparams(autoSize(195), autoSize(120))
+
+        }.lparams(matchParent, autoSize(120))
+    }
+
+}

+ 8 - 8
RMA/app/src/main/java/cn/muchinfo/rma/view/base/sale/SaleViewModel.kt

@@ -137,9 +137,9 @@ class SaleViewModel : BaseViewModel(){
         respData.forEach {
             val newRightData = arrayListOf<String>()
             newRightData.add(it.deliverygoodsname + "\n" + it.spotgoodsdesc)
-            newRightData.add(it.goodscode + "\n" + it.pricemove)
-            newRightData.add(it.qty + "\n" + it.unpricedqty)
-            newRightData.add(it.pricedqty + "\n" + it.unsureqty)
+            newRightData.add(it.goodsname + "\n" + it.pricemove)
+            newRightData.add(it.qty+ it.enumdicname + "\n" + it.unpricedqty+ it.enumdicname)
+            newRightData.add(it.pricedqty+ it.enumdicname + "\n" + it.unsureqty+ it.enumdicname)
             newRightData.add(it.payamount + "\n" + it.unpayamount)
             newRightData.add(it.invoiceamount + "\n" + it.daikaiamount)
             newRightData.add(getTimeString(it))
@@ -160,8 +160,8 @@ class SaleViewModel : BaseViewModel(){
         respData.forEach {
             val newRightData = arrayListOf<String>()
             newRightData.add(it.deliverygoodsname + "\n" + it.spotgoodsdesc)
-            newRightData.add(it.goodscode + "\n" + it.pricemove)
-            newRightData.add(it.pricedqty + "\n" + it.unsureqty)
+            newRightData.add(it.goodsname + "\n" + it.pricemove)
+            newRightData.add(it.pricedqty+ it.enumdicname + "\n" + it.unsureqty+ it.enumdicname)
             newRightData.add(it.payamount + "\n" + it.unpayamount)
             newRightData.add(it.invoiceamount + "\n" + it.daikaiamount)
             newRightData.add(getTimeString(it))
@@ -184,14 +184,14 @@ class SaleViewModel : BaseViewModel(){
             val newRightData = arrayListOf<String>()
             newRightData.add(ViewEnumUtils.getContractStatus(it.contracctstatus ?: ""))
             newRightData.add(it.deliverygoodsname + "\n" + it.spotgoodsdesc)
-            newRightData.add(it.goodscode + "\n" + it.pricemove)
+            newRightData.add(it.goodsname + "\n" + it.pricemove)
             newRightData.add(
                 it.convertfactor + "\n" + ViewEnumUtils.getContractStatus(
                     it.contracctstatus ?: ""
                 )
             )
-            newRightData.add(it.qty + "\n" + it.unpricedqty)
-            newRightData.add(it.pricedqty + "\n" + it.unsureqty)
+            newRightData.add(it.qty+ it.enumdicname + "\n" + it.unpricedqty+ it.enumdicname)
+            newRightData.add(it.pricedqty+ it.enumdicname + "\n" + it.unsureqty+ it.enumdicname)
             newRightData.add(it.payamount + "\n" + it.unpayamount)
             newRightData.add(it.invoiceamount + "\n" + it.daikaiamount)
             newRightData.add(getTimeString(it))

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio