Selaa lähdekoodia

风险管理9月14日提交代码-liu.bolan-天津掉期与云融部分bug

Liu.bolan 4 vuotta sitten
vanhempi
commit
9fce59d19f
30 muutettua tiedostoa jossa 871 lisäystä ja 281 poistoa
  1. 1 0
      RMA/.idea/encodings.xml
  2. 3 3
      RMA/app/build.gradle
  3. 28 4
      RMA/app/src/main/java/cn/muchinfo/rma/business/swaps/SwapsManager.kt
  4. 7 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/StringUtils.kt
  5. 121 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/TjmdTodayAccountMarginData.kt
  6. 134 135
      RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI3.java
  7. 9 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  8. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainViewModel.kt
  9. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  10. 8 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/ContractOrdersViewModel.kt
  11. 6 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/adapter/ContractPositionContentAdapter.java
  12. 3 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/AgreementUnwindActivity.kt
  13. 8 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/AgreementUnwindViewModel.kt
  14. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performance/adapter/PerformanceInformationContentAdapter.java
  15. 37 11
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performancetemplate/AddPerformanceTempateActivity.kt
  16. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performancetemplate/AddPerformanceViewHolder.kt
  17. 4 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedActivity.kt
  18. 7 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/ChartViewData.kt
  19. 44 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdDemoData.kt
  20. 91 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeFragment.kt
  21. 70 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeMarketViewHolder.kt
  22. 33 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeSonViewHolder.kt
  23. 26 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeViewModel.kt
  24. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/GoodsSwapsFragment.kt
  25. 13 12
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/TransferSwapsAdapter.java
  26. 32 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/business/SwapsBusinessHallActivity.kt
  27. 36 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingActivity.kt
  28. 28 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingViewModel.kt
  29. 91 72
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/listed/SwapsListedActivity.kt
  30. 25 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/listed/SwapsListedViewModel.kt

+ 1 - 0
RMA/.idea/encodings.xml

@@ -4,6 +4,7 @@
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/Common.java" charset="GBK" />
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ErmcpMI1.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI2.java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI3.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/PerformanceMI1.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/PublicMI1.java" charset="GBK" />
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/SystemMI1.java" charset="GBK" />

+ 3 - 3
RMA/app/build.gradle

@@ -19,8 +19,8 @@ android {
         applicationId "cn.muchinfo.rma"
         minSdkVersion 24
         targetSdkVersion 30
-        versionCode 50026
-        versionName "5.0.26"
+        versionCode 50027
+        versionName "5.0.27"
         multiDexEnabled true
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         //指定room.schemaLocation生成的文件路径
@@ -62,7 +62,7 @@ android {
         app4 {
             // 解释同app1
             applicationId "cn.muchinfo.tjmd"
-            resValue "string","app_name","天津麦顿"
+            resValue "string","app_name","掉期市场"
             manifestPlaceholders = [app_icon : "@mipmap/ic_launcher_tjmd"]
         }
     }

+ 28 - 4
RMA/app/src/main/java/cn/muchinfo/rma/business/swaps/SwapsManager.kt

@@ -1,10 +1,7 @@
 package cn.muchinfo.rma.business.swaps
 
 import cn.muchinfo.rma.business.performance.PerformanceAdapter
-import cn.muchinfo.rma.global.data.QuoteGoodsListData
-import cn.muchinfo.rma.global.data.TjmdTradeOrderDetailData
-import cn.muchinfo.rma.global.data.TjmdTransferApplyData
-import cn.muchinfo.rma.global.data.TradeHolderDetailData
+import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.netManage.base.ResponseCallback
 import cn.muchinfo.rma.netManage.utils.MyOkHttpUtils
 import cn.muchinfo.rma.netcore.packet.Packet50
@@ -180,4 +177,31 @@ class SwapsManager {
             }
         )
     }
+
+
+    /**
+     * 查询今日账户保证金配置
+     * @param params Map<String, String>
+     * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<ContractData>?, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryTjmdTodayAccountMargin(
+        params: Map<String, String>,
+        responseBack: (isSuccess: Boolean, respData: List<TjmdTodayAccountMarginData>?, error: Error?) -> Unit
+    ) {
+        MyOkHttpUtils().query(
+            URL = SPUtils.getInstance()
+                .getString(Constant.goCommonSearchUrl) + "/Tjmd/QueryTjmdTodayAccountMargin",
+            params = params,
+            type = "1",
+            callback = object : ResponseCallback<BaseResult<List<TjmdTodayAccountMarginData>>>() {
+                override fun onResponse(response: BaseResult<List<TjmdTodayAccountMarginData>>?, id: Int) {
+                    responseBack(true, response?.data, null)
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    responseBack(false, null, Error(e?.message))
+                }
+            }
+        )
+    }
 }

+ 7 - 0
RMA/app/src/main/java/cn/muchinfo/rma/global/StringUtils.kt

@@ -28,6 +28,13 @@ fun String.isBlankString() : String{
     return this
 }
 
+fun String.toDoubleNoNull() : Double{
+    if (this.isNullOrEmpty()){
+        return 0.0
+    }
+    return this.toDouble()
+}
+
 
 fun String.isZeroBlankString() : String{
     if (this.isNullOrEmpty()){

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

@@ -0,0 +1,121 @@
+package cn.muchinfo.rma.global.data
+
+import android.os.Parcel
+import android.os.Parcelable
+import cn.muchinfo.rma.global.database.DataBase
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import com.google.gson.annotations.SerializedName
+
+data class TjmdTodayAccountMarginData(
+    @SerializedName("accountid")
+    val accountid : String? = "",
+    @SerializedName("goodsid")
+    val goodsid : String? = "",
+    @SerializedName("infoc")
+    val infoc : Infoc? = Infoc(),
+    @SerializedName("marketid")
+    val marketid : String? = ""
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readParcelable(Infoc::class.java.classLoader),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(accountid)
+        parcel.writeString(goodsid)
+        parcel.writeParcelable(infoc, flags)
+        parcel.writeString(marketid)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<TjmdTodayAccountMarginData> {
+        override fun createFromParcel(parcel: Parcel): TjmdTodayAccountMarginData {
+            return TjmdTodayAccountMarginData(parcel)
+        }
+
+        override fun newArray(size: Int): Array<TjmdTodayAccountMarginData?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}
+
+data class Infoc(
+    @SerializedName("CustomerTypeID")
+    val CustomerTypeID : String? = "",//投资者客户类型
+    @SerializedName("GoodsID")
+    val GoodsID : String? = "",//商品ID
+    @SerializedName("IsDefault")
+    val IsDefault : String? = "",//是否默认标志位
+    @SerializedName("LockMarginValue")
+    val LockMarginValue : String? = "",//锁仓保证金
+    @SerializedName("MarginAlgorithm")
+    val MarginAlgorithm : String? = "",//保证金计算方式 1 是比例 2是固定值
+    @SerializedName("MarketMarginValue")
+    val MarketMarginValue : String? = "0",//即市保证金值
+    @SerializedName("RealMarginAlgorithm")
+    val RealMarginAlgorithm : String? = "",//实付保证金计算方式
+    @SerializedName("RealMarginValue")
+    val RealMarginValue : String? = "",//实付比例
+    @SerializedName("ReckonMarginValue")
+    val ReckonMarginValue : String? = ""//结算保证金值
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(CustomerTypeID)
+        parcel.writeString(GoodsID)
+        parcel.writeString(IsDefault)
+        parcel.writeString(LockMarginValue)
+        parcel.writeString(MarginAlgorithm)
+        parcel.writeString(MarketMarginValue)
+        parcel.writeString(RealMarginAlgorithm)
+        parcel.writeString(RealMarginValue)
+        parcel.writeString(ReckonMarginValue)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<Infoc> {
+        override fun createFromParcel(parcel: Parcel): Infoc {
+            return Infoc(parcel)
+        }
+
+        override fun newArray(size: Int): Array<Infoc?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+    //获取保证金数值
+    fun getMargainValue(amout : Double = 0.0,number : Double = 0.0,goodsid: String) : String{
+        var marginValue = ""
+        val goodsInfo = DataBase.getInstance().goodsInfoDao().getGoodsInfo(goodsid.toInt())
+        marginValue = if (MarginAlgorithm == "1"){//比例
+            NumberUtils.roundNum(amout.times(MarketMarginValue?.toDouble() ?: 0.0).times(goodsInfo.agreeunit),2)
+        }else{//固定值
+            NumberUtils.roundNum(number.times(MarketMarginValue?.toDouble() ?: 0.0),2)
+        }
+        return marginValue
+    }
+
+}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 134 - 135
RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI3.java


+ 9 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt

@@ -19,6 +19,7 @@ import cn.muchinfo.rma.view.base.future.FutureFragment
 import cn.muchinfo.rma.view.base.hnstcdys.HnstcdysFragment
 import cn.muchinfo.rma.view.base.hnstmain.HnstMainFragment
 import cn.muchinfo.rma.view.base.home.NewHomeFragment
+import cn.muchinfo.rma.view.base.home.tjmd.TjmdHomeFragment
 import cn.muchinfo.rma.view.base.home.yrdz.YrdzHomeFragment
 import cn.muchinfo.rma.view.base.main.SeaKingMainFragment
 import cn.muchinfo.rma.view.base.platinumtreasure.PlatinumTreasureFragment
@@ -55,6 +56,11 @@ class MainActivity : BaseActivity<MainViewModel>() {
         YrdzHomeFragment()
     }
 
+    /** 掉期市场首页 **/
+    val tjmdHomeFragment by lazy {
+        TjmdHomeFragment()
+    }
+
     /** 采购页面 **/
     val procurementFragment by lazy {//client_po
         ProcurementFragment()
@@ -142,7 +148,9 @@ class MainActivity : BaseActivity<MainViewModel>() {
 
         if (SPUtils.getInstance().getString(Constant.oem) == "yrdz"){
             newFragments.add(yrdzHomeFragment)
-        }else{
+        }else if (SPUtils.getInstance().getString(Constant.oem) == "tjmd"){
+            newFragments.add(tjmdHomeFragment)
+        } else{
             newFragments.add(homeFragment)
         }
         newTabText.add("首页")

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/MainViewModel.kt

@@ -90,7 +90,7 @@ class MainViewModel : BaseViewModel() {
 //            e.printStackTrace()
 //        }
 
-        if (SPUtils.getInstance().getString(Constant.oem) == "yrdz"){
+        if (SPUtils.getInstance().getString(Constant.oem) == "yrdz" || SPUtils.getInstance().getString(Constant.oem) == "tjmd"){
             queryWrMarketTradeConfig()
         }
 

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

@@ -14,9 +14,9 @@ object Constant {
 
 
 //    const val baseurl = "http://192.168.31.93:8080/cfg?key=test_93"//李倩企业风管 18611112222
-    const val baseurl = "http://192.168.31.104:8080/cfg?key=test_104"//李倩云融 18611112222
+//    const val baseurl = "http://192.168.31.104:8080/cfg?key=test_104"//李倩云融 18611112222
 //
-//    const val baseurl = "http://192.168.31.135:8080/cfg?key=test_135"// 瑶姐 云融 130000000001 123456
+    const val baseurl = "http://192.168.31.135:8080/cfg?key=test_135"// 瑶姐 云融 130000000001 123456
 
 //    const val baseurl = "http://192.168.31.175:8080/cfg?key=test_175" // 8888  123123
 //    const val baseurl = "http://192.168.31.223:8080/cfg?key=test_223"

+ 8 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/ContractOrdersViewModel.kt

@@ -10,6 +10,7 @@ import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
 import cn.muchinfo.rma.view.base.BaseViewModel
 import cn.muchinfo.rma.view.base.app.Constant
 import com.blankj.utilcode.util.LogUtils
+import com.blankj.utilcode.util.TimeUtils
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
 import mtp.polymer.com.autowidget.utils.TaskUiModel
@@ -200,6 +201,9 @@ class ContractOrdersViewModel : BaseViewModel(){
             val newData = it.copy(rightData = newRightData)
             newList.add(newData)
         }
+        newList.sortWith(Comparator { t1, t2 ->
+            TimeUtils.string2Millis(t2.applytime).minus(TimeUtils.string2Millis(t1.applytime)).toInt()
+        })
         return newList
     }
 
@@ -338,6 +342,10 @@ class ContractOrdersViewModel : BaseViewModel(){
             newRightData.add(NumberUtils.roundNum(NumberUtils.doubleDistortion(it.tradeprice),2))
             //成交数量
             newRightData.add(it.tradeqty + it.enumdicname)
+            //成交金额
+            newRightData.add(NumberUtils.roundNum(NumberUtils.doubleDistortion(it.tradeamount),2))
+            //手续费
+            newRightData.add(NumberUtils.roundNum(NumberUtils.doubleDistortion(it.charge),2))
             //成交单号
             newRightData.add(it.tradeid ?: "-")
             //成交时间

+ 6 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/adapter/ContractPositionContentAdapter.java

@@ -120,6 +120,12 @@ public class ContractPositionContentAdapter extends RecyclerView.Adapter<Contrac
             }
         }
         List<String> rightData = new ArrayList<>();
+        //方向
+        if (data.getBuyorsell().equals("0")){
+            rightData.add("买入");
+        }else {
+            rightData.add("卖出");
+        }
         //持有数量
         rightData.add(data.getCurpositionqty());
         //可用数量

+ 3 - 5
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/AgreementUnwindActivity.kt

@@ -87,7 +87,7 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
 
         EventBus.getDefault().register(this)
         verticalLayout {
-            viewModel.queryTradeHolderDetail(data = data)
+            viewModel.queryTradeHolderDetail(data = data,tag = thisTag)
             createLoadingDialog(hintStr = "").bindTaskStatus(context, viewModel.loadingDialogStatus)
             topBar {
                 commonLeftButton()
@@ -180,9 +180,7 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
                         }
                     }, emptyBlock = {
                         emptyView(hint = resources.getString(R.string.now_no_data))
-                    }).lparams(matchParent, matchParent) {
-                        bottomMargin = autoSize(240)
-                    }
+                    }).lparams(matchParent, matchParent)
 
                     viewModel.agreementDataList.bindOptional(context) {
                         if (it?.isEmpty() == true || it?.size == 0) {
@@ -248,7 +246,7 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
 
                             textView {
                                 viewModel.agreementData.bindOptional(context) {
-                                    if (agrement_price_edittext.text.toString().isNullOrEmpty().not()) {
+                                    if (agrement_price_edittext.text.toString().isNullOrEmpty().not() && it?.goodsid.isNullOrEmpty().not()) {
                                         val input_price =
                                             agrement_price_edittext.text.toString().toDouble()
                                         val goodsInfo = DataBase.getInstance().goodsInfoDao()

+ 8 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/AgreementUnwindViewModel.kt

@@ -8,6 +8,7 @@ import cn.muchinfo.rma.global.data.WrDeliveryAvalidHoldLBData
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.autoWidget.remove
 import cn.muchinfo.rma.view.base.BaseViewModel
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
@@ -71,7 +72,8 @@ class AgreementUnwindViewModel : BaseViewModel(){
 
     //查询协议平仓单据
     fun queryTradeHolderDetail(
-        data : ContractTradePositionData
+        data : ContractTradePositionData,
+        tag : String
     ){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
@@ -84,7 +86,11 @@ class AgreementUnwindViewModel : BaseViewModel(){
 
         MyApplication.getInstance()?.quoteManager?.queryTradeHolderDetail(params = params){isSuccess, respData, error ->
             if (isSuccess){
-                agreementDataList.postValue(respData)
+                val newList = respData?.remove { it?.holderqty?.toDouble() ?: 0.0 > 0 }
+                agreementDataList.postValue(newList)
+                queryQuoteDay(tag = tag,list = newList ?: arrayListOf()){ isCompleted, err ->
+
+                }
             }
         }
     }

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performance/adapter/PerformanceInformationContentAdapter.java

@@ -192,7 +192,7 @@ public class PerformanceInformationContentAdapter extends RecyclerView.Adapter<P
             itemViewHolder.details.setVisibility(View.VISIBLE);
         }else {
             itemViewHolder.payment_registration.setVisibility(View.GONE);
-            itemViewHolder.details.setVisibility(View.GONE);
+
         }
 
         //付款

+ 37 - 11
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performancetemplate/AddPerformanceTempateActivity.kt

@@ -30,7 +30,6 @@ class AddPerformanceTempateActivity : BaseActivity<PerformanceTemplateViewModel>
      */
     val type by lazy { intent.getStringExtra("type") }
 
-
     val data by lazy { intent.getParcelableExtra<PermancePlanTmpData>("data") as PermancePlanTmpData }
 
     // 下拉刷新
@@ -223,9 +222,14 @@ class AddPerformanceTempateActivity : BaseActivity<PerformanceTemplateViewModel>
                                     return@onThrottleFirstClick
                                 }
 
-                                if (check100().not()){
+                                if (checkBuy100().not()){
+                                    return@onThrottleFirstClick
+                                }
+
+                                if (checkSell100().not()){
                                     return@onThrottleFirstClick
                                 }
+
                                 if (type == "1") {
                                     viewModel.performancePlanTemplateReq(
                                         templatename = performance_name.text.toString(),
@@ -314,29 +318,51 @@ class AddPerformanceTempateActivity : BaseActivity<PerformanceTemplateViewModel>
         return tempateInfoList
     }
 
-    fun check100() : Boolean{
+    fun checkBuy100() : Boolean{
         var returnBooble = false
         val cashDataList = viewModel.wrGoodsPerformanceStepCashDataList.value
         var buyallstepValue = 0.0//总的买入步骤值
-        var sellallstepValue = 0.0//总的卖出步骤值
+
         cashDataList?.forEach {
             if (it.steptypeid == "1"){
-                buyallstepValue += (it.stepvalue?.toDouble() ?: 0.0)
-            }
-            if (it.steptypeid == "2"){
-                sellallstepValue += (it.stepvalue?.toDouble() ?: 0.0)
+                if (it.stepvalue.isNullOrEmpty()){
+                    buyallstepValue += 0
+                }else{
+                    buyallstepValue += (it.stepvalue?.toDouble() ?: 0.0)
+                }
             }
         }
 
-        if (buyallstepValue < 100.0){
+        if (buyallstepValue < 1.0){
             ToastUtils.showLong("买方支付步骤总值小于100,应等于100")
             returnBooble = false
         }else{
             returnBooble = true
         }
+        return returnBooble
+    }
+
+    fun checkSell100() : Boolean{
+        var returnBooble = false
+        val cashDataList = viewModel.wrGoodsPerformanceStepCashDataList.value
+
+        var sellallstepValue = 0.0//总的卖出步骤值
+        cashDataList?.forEach {
+
+            if (it.steptypeid == "2"){
+                if (it.stepvalue.isNullOrEmpty()){
+                    sellallstepValue += 0
+                }else{
+                    sellallstepValue += (it.stepvalue?.toDouble() ?: 0.0)
+                }
+
+            }
+        }
+
+
 
-        if (sellallstepValue < 100.0){
-            ToastUtils.showLong("卖方付款步骤总值小于100,应等于100")
+        if (sellallstepValue < 1.0){
+            ToastUtils.showLong("卖方款步骤总值小于100,应等于100")
             returnBooble = false
         }else{
             returnBooble = true

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performancetemplate/AddPerformanceViewHolder.kt

@@ -122,7 +122,7 @@ class AddPerformanceViewHolder(private val activity : AppCompatActivity,private
                             }
                         }
                         background = null
-                        setDecimalInputType(BigDecimal("999999999.99"),0)
+                        setDecimalInputType(BigDecimal("365"),0)
                         hintColorStr = "#CCCCCC"
                         textSizeAuto = 29
                         inputType = EditorInfo.TYPE_CLASS_NUMBER

+ 4 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedActivity.kt

@@ -20,6 +20,8 @@ import cn.muchinfo.rma.global.MTPEnums
 import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.global.database.DataBase
+import cn.muchinfo.rma.global.isBlankString
+import cn.muchinfo.rma.global.toDoubleNoNull
 import cn.muchinfo.rma.global.utils.TimeUtils
 import cn.muchinfo.rma.global.utils.VIewUtils
 import cn.muchinfo.rma.lifecycle.bindOptional
@@ -169,11 +171,11 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
         viewModel.queryMarketRun()
         if (type == "1") {//现货仓单
             marginValue.value =
-                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue?.toDouble()
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue?.toDoubleNoNull()
                     ?: 0.0
         } else {
             marginValue.value =
-                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue2?.toDouble()
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue2?.toDoubleNoNull()
                     ?: 0.0
         }
     }

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

@@ -0,0 +1,7 @@
+package cn.muchinfo.rma.view.base.home.tjmd
+
+data class ChartViewData(
+    var price : Double = 0.0,
+    var gains : String = "",
+    var time : String = ""
+)

+ 44 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdDemoData.kt

@@ -0,0 +1,44 @@
+package cn.muchinfo.rma.view.base.home.tjmd
+
+import android.os.Parcel
+import android.os.Parcelable
+
+data class TjmdDemoData(
+    var id : String? = "",
+    var goodsName : String? = "",//名字
+    var price : Double? = 0.0,//价格
+    var gains : Double? = 0.0,//涨幅
+    var forehead : Double? = 0.0//涨跌额
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readValue(Double::class.java.classLoader) as? Double,
+        parcel.readValue(Double::class.java.classLoader) as? Double,
+        parcel.readValue(Double::class.java.classLoader) as? Double
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(id)
+        parcel.writeString(goodsName)
+        parcel.writeValue(price)
+        parcel.writeValue(gains)
+        parcel.writeValue(forehead)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<TjmdDemoData> {
+        override fun createFromParcel(parcel: Parcel): TjmdDemoData {
+            return TjmdDemoData(parcel)
+        }
+
+        override fun newArray(size: Int): Array<TjmdDemoData?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}

+ 91 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeFragment.kt

@@ -18,11 +18,16 @@ import androidx.annotation.Nullable
 import androidx.cardview.widget.CardView
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentPagerAdapter
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.StaggeredGridLayoutManager
 import androidx.viewpager.widget.ViewPager
 import cn.bingoogolapple.bgabanner.BGABanner
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.BannerData
 import cn.muchinfo.rma.global.data.NoticeData
+import cn.muchinfo.rma.global.data.WrGoodsPerformanceStepData
 import cn.muchinfo.rma.global.toShowTime3
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.lifecycle.getAppCompatActivity
@@ -33,6 +38,7 @@ import cn.muchinfo.rma.view.base.app.Constant
 import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.hnstmain.bookingwarehouse.BookingWarehouseActivity
 import cn.muchinfo.rma.view.base.hnstmain.performance.PerformanceInformationActivity
+import cn.muchinfo.rma.view.base.hnstmain.performancetemplate.PerformanceItemViewHolder
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.reference.ReferenceActivity
 import cn.muchinfo.rma.view.base.home.yrdz.YrdzHomeFragment
@@ -43,6 +49,8 @@ import cn.muchinfo.rma.view.base.home.yrdz.market.YrdzMarketFragment
 import cn.muchinfo.rma.view.eventbus.MainTabSelectMessageEvent
 import com.blankj.utilcode.util.*
 import com.facebook.drawee.view.SimpleDraweeView
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAScrollablePlotArea
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
 import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
 import com.qmuiteam.qmui.widget.tab.QMUITabSegment
@@ -68,12 +76,28 @@ class TjmdHomeFragment : BaseFragment<TjmdHomeViewModel>(){
     private lateinit var statusLayout: StatusLayout
 
     lateinit var segment: QMUITabSegment
-    lateinit var segment1: QMUITabSegment
+
     var selectedTabIndex: Int = 0
     private lateinit var viewPager: ViewPager
 
     lateinit var noticeViewFlipper : ViewFlipper
 
+    private val tjmdHomeMarketViewHolder: BaseAdapter<TjmdDemoData, TjmdHomeMarketViewHolder> =
+        BaseAdapter { _, _ ->
+            TjmdHomeMarketViewHolder(
+                this.getAppCompatActivity(),
+                viewModel
+            )
+        }
+
+    private val tjmdHomeSonAdapter: BaseAdapter<String, TjmdHomeSonViewHolder> =
+        BaseAdapter { _, _ ->
+            TjmdHomeSonViewHolder(
+                this.getAppCompatActivity(),
+                viewModel
+            )
+        }
+
     private fun initViewFlipper(notice: List<NoticeData>) {
         for (i in 0 until notice.size) {
             val view = TextView(context)
@@ -116,6 +140,7 @@ class TjmdHomeFragment : BaseFragment<TjmdHomeViewModel>(){
         return UI {
             viewModel.getBanner()
             viewModel.setDataList()
+
             viewModel.queryNotice()
             verticalLayout {
                 linearLayout {
@@ -161,11 +186,11 @@ class TjmdHomeFragment : BaseFragment<TjmdHomeViewModel>(){
                                 val scrollRect = Rect()
                                 getHitRect(scrollRect)
                                 LogUtils.eTag("adakhsfkjahsfa", "x = " + p1 + "y = " + p2)
-                                if (p2 > 1000) {
-                                    segment1.visibility = View.VISIBLE
-                                } else {
-                                    segment1.visibility = View.INVISIBLE
-                                }
+//                                if (p2 > 1000) {
+//                                    segment1.visibility = View.VISIBLE
+//                                } else {
+//                                    segment1.visibility = View.INVISIBLE
+//                                }
                             }
                         })
                         verticalLayout {
@@ -408,9 +433,68 @@ class TjmdHomeFragment : BaseFragment<TjmdHomeViewModel>(){
                             }.lparams(matchParent, autoSize(140)) {
                                 topMargin = autoSize(40)
                             }
+
+
+                            recyclerView {
+                                background = resources.getDrawable(R.color.white)
+                                adapter = tjmdHomeMarketViewHolder
+                                layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false)
+                            }.lparams(matchParent, autoSize(300))
+                            viewModel.dataList.bindOptional(context){
+                                tjmdHomeMarketViewHolder.setNewData(it)
+                            }
+
+                            chartview {
+                                val aaChartModel = AAChartModel()
+                                    .chartType(AAChartType.Areaspline)
+                                    .title("")
+                                    .yAxisTitle("")
+                                    .legendEnabled(false)
+                                    .dataLabelsEnabled(false)
+                                    .yAxisGridLineWidth(0f)
+                                    .animationType(AAChartAnimationType.EaseOutQuart)
+                                    .legendEnabled(false)
+                                    .gradientColorEnable(true)
+                                    .markerRadius(2f)
+                                    .markerSymbol(AAChartSymbolType.Circle)
+                                    .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
+                                    .colorsTheme(arrayOf("#FF9A2A", "#F39730"))
+                                    .scrollablePlotArea(
+                                        AAScrollablePlotArea()
+                                            .minWidth(300)
+                                            .scrollPositionX(1f)
+                                    )
+
+                                viewModel.wrAverageTradePriceDataList.bindOptional(context) {
+                                    val list = it
+                                    val totalexposureelement = AASeriesElement()
+                                        .lineWidth(2f)
+                                        .name("成交均价")
+                                        .step(true)
+                                        .data(list?.map { it.price }!!.toTypedArray())
+
+//                aaChartModel.tooltipValueSuffix(resp.enumdicname)
+                                    aaChartModel.categories(list.map { it.time }.toTypedArray())
+                                    aaChartModel.series(arrayOf(totalexposureelement))
+                                    aa_drawChartWithChartModel(aaChartModel)
+                                }
+
+                            }.lparams(matchParent, autoSize(380))
+
+
+                            recyclerView {
+                                background = resources.getDrawable(R.color.white)
+                                val staggeredGridLayoutManager = StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)
+                                layoutManager = staggeredGridLayoutManager
+                                adapter = tjmdHomeSonAdapter
+                            }.lparams(matchParent, autoSize(500))
+
+                            viewModel.sonItemList.bindOptional(context){
+                                tjmdHomeSonAdapter.setNewData(it)
+                            }
                         }
                     }.lparams(matchParent, matchParent)
-
+                    viewModel.resetChartViewData()
                 }
             }
         }.view

+ 70 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeMarketViewHolder.kt

@@ -0,0 +1,70 @@
+package cn.muchinfo.rma.view.base.home.tjmd
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+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.*
+
+class TjmdHomeMarketViewHolder(private val activity : AppCompatActivity,private val viewModel: TjmdHomeViewModel) : BaseViewHolder<TjmdDemoData>(activity){
+    override val itemSize: IntArray = intArrayOf(autoSize(300), autoSize(200))
+
+    override fun _FrameLayout.createContentView() {
+        verticalLayout {
+            gravity = Gravity.CENTER_HORIZONTAL
+            textView {
+                data.bindOptional(context){
+                    text = it?.goodsName
+                }
+                textSizeAuto = 34
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent){
+                topMargin = 25
+            }
+
+            textView {
+                data.bindOptional(context){
+                    text = it?.price.toString()
+                }
+                textSizeAuto = 34
+                textColorInt = R.color.rma_red_color
+            }.lparams(wrapContent, wrapContent){
+                topMargin = autoSize(15)
+            }
+
+            linearLayout {
+                emptyView()
+
+                textView {
+                    data.bindOptional(context){
+                        text = it?.forehead.toString()
+                    }
+                    textSizeAuto = 27
+                    textColorInt = R.color.rma_red_color
+                }.lparams(wrapContent, wrapContent){
+                    marginEnd = autoSize(10)
+                }
+
+                textView {
+                    data.bindOptional(context){
+                        text = it?.gains.toString()
+                    }
+                    textSizeAuto = 27
+                    textColorInt = R.color.rma_red_color
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(10)
+                }
+
+                emptyView()
+            }.lparams(matchParent, wrapContent){
+                topMargin = 18
+            }
+        }.lparams(autoSize(300), autoSize(200))
+    }
+
+}

+ 33 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeSonViewHolder.kt

@@ -0,0 +1,33 @@
+package cn.muchinfo.rma.view.base.home.tjmd
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+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._FrameLayout
+import org.jetbrains.anko.linearLayout
+import org.jetbrains.anko.textView
+
+class TjmdHomeSonViewHolder(private val activity : AppCompatActivity,private val viewModel: TjmdHomeViewModel) : BaseViewHolder<String>(activity){
+    override val itemSize: IntArray = intArrayOf(autoSize(300), autoSize(100))
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            gravity = Gravity.CENTER
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context){
+                    text = it
+                }
+                textSizeAuto = 30
+                textColorInt = R.color.rma_gray_color
+            }.lparams(autoSize(264), autoSize(72))
+        }.lparams(autoSize(300), autoSize(100))
+    }
+
+
+}

+ 26 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeViewModel.kt

@@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.BannerData
 import cn.muchinfo.rma.global.data.NoticeData
+import cn.muchinfo.rma.global.data.WrAverageTradePriceData
 import cn.muchinfo.rma.netManage.base.ResponseCallback
 import cn.muchinfo.rma.netManage.utils.MyOkHttpUtils
 import cn.muchinfo.rma.view.MyApplication
@@ -30,7 +31,7 @@ class TjmdHomeViewModel : BaseViewModel(){
     val bannerList : MutableLiveData<List<BannerData>> = MutableLiveData()
 
     //数据
-    val dataList : MutableLiveData<List<IndexData>> = MutableLiveData()
+    val dataList : MutableLiveData<List<TjmdDemoData>> = MutableLiveData()
 
     /**
      * 公告信息
@@ -39,18 +40,36 @@ class TjmdHomeViewModel : BaseViewModel(){
 
     fun setDataList(){
         val list = arrayListOf(
-            IndexData(name = "ABS",firstNumber = 18234.0,secondNumber = 18673.0),
-            IndexData(name = "PA6",firstNumber = 17134.0,secondNumber = 16993.0),
-            IndexData(name = "PA67",firstNumber = 18312.0,secondNumber = 18893.0),
-            IndexData(name = "PC",firstNumber = 19782.0,secondNumber = 17293.0),
-            IndexData(name = "PE",firstNumber = 16128.0,secondNumber = 16993.0),
-            IndexData(name = "PVC",firstNumber = 15123.0,secondNumber = 15193.0)
+            TjmdDemoData(goodsName = "橡胶2019",price = 12434.0,gains = 0.0021,forehead = +132.2,id = "1"),
+            TjmdDemoData(goodsName = "焦炭2019",price = 4164.2,gains = 0.023,forehead = +113.2,id = "2"),
+            TjmdDemoData(goodsName = "棕榈油",price = 4164.2,gains = 0.023,forehead = +113.2,id = "2")
         )
 
         dataList.postValue(list)
     }
 
 
+    /**
+     * 历史走势图
+     */
+    val wrAverageTradePriceDataList : MutableLiveData<List<ChartViewData>> = MutableLiveData()
+
+    val sonItemList : MutableLiveData<List<String>> = MutableLiveData()
+
+    fun resetChartViewData(){
+        val chartList = arrayListOf(
+            ChartViewData(price = 12334.2,time = "09-01",gains = "1.2%"),
+            ChartViewData(price = 12326.4,time = "09-02",gains = "0.2%"),
+            ChartViewData(price = 12462.3,time = "09-03",gains = "0.22%"),
+            ChartViewData(price = 12663.4,time = "09-04",gains = "0.29%"),
+            ChartViewData(price = 12902.3,time = "09-05",gains = "1.2%"),
+            ChartViewData(price = 14361.5,time = "09-06",gains = "2.2%"),
+            ChartViewData(price = 11346.9,time = "09-07",gains = "2.8%")
+        )
+        wrAverageTradePriceDataList.postValue(chartList)
+        val sonItemDataList = arrayListOf<String>("橡胶20天","橡胶30天","橡胶60天","焦炭20天","焦炭30天","焦炭60天","棕榈油20天","棕榈油30天","棕榈油60天")
+        sonItemList.postValue(sonItemDataList)
+    }
 
     /**
      * 通知公告查询

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/GoodsSwapsFragment.kt

@@ -96,7 +96,7 @@ class GoodsSwapsFragment : BaseFragment<GoodsSwapsViewModel>() , TransferSwapsAd
 //                            viewModel.titleList.bindOptional(context) {
 //                                text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
 //                            }
-                            text = "合约"
+                            text = "商品/标的"
                             textColorStr = "#AAAAAA"
                             textSizeAuto = 31
                         }.lparams(wrapContent, wrapContent)

+ 13 - 12
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/TransferSwapsAdapter.java

@@ -106,7 +106,7 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
             }
         }
 
-        itemViewHolder.tvLeftTitle.setText(datas.get(i).getGoodsname());
+        itemViewHolder.tvLeftTitle.setText(datas.get(i).getGoodsname() + "\n" + quoteGoodsListData.getRefgoodsname());
         //右边滑动部分
         LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
         linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
@@ -122,7 +122,7 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
         List<GoodsInfoAndQuotes> quotesList = GlobalDataCollection.Companion.getInstance().getGoodsInfoAndQuotesList();//获取盘面信息列表
         for (int j = 0; j < quotesList.size(); j++) {
             if (quotesList.get(j) != null) {
-                if (data.getGoodscode().equals(quotesList.get(j).getOutgoodscode())) {
+                if (quoteGoodsListData.getRefgoodscode().equals(quotesList.get(j).getOutgoodscode())) {
                     quoteDayData = quotesList.get(j).getQuoteDayData();//赋值当前商品的盘面信息
                 }
             }
@@ -148,7 +148,7 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
 
             //最新价
             QHjRightData newPriceData = new QHjRightData();
-            if (quoteDayData.getLast() == 0.0){
+            if (quoteDayData.getPrice() == 0.0){
                 newPriceData.setValue("--");
                 newPriceData.setColorType("1");
             }else {
@@ -212,12 +212,20 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
 
             //最高价
             QHjRightData highPriceData = new QHjRightData();
-            highPriceData.setValue(NumberUtils.roundNum(quoteDayData.getHighest(),2));
+            if (quoteDayData.getHighest() == 0){
+                highPriceData.setValue("--");
+            }else {
+                highPriceData.setValue(NumberUtils.roundNum(quoteDayData.getHighest(),2));
+            }
             highPriceData.setColorType("3");
 
             //最低价
             QHjRightData lowesPriceData = new QHjRightData();
-            lowesPriceData.setValue(NumberUtils.roundNum(quoteDayData.getLast(),2));
+            if (quoteDayData.getLowest() == 0){
+                lowesPriceData.setValue("--");
+            }else {
+                lowesPriceData.setValue(NumberUtils.roundNum(quoteDayData.getLowest(),2));
+            }
             lowesPriceData.setColorType("2");
 
             //结算价-实时结算价
@@ -248,13 +256,6 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
             rightData.add(settlementData);//结算
             rightData.add(preSettlementData);//昨结
         }
-        ContractTradePositionData positionData = null;
-        List<ContractTradePositionData> positionDataList = GlobalDataCollection.Companion.getInstance().getContractTradePositionDataArrayList();
-        for (int j = 0; j < positionDataList.size(); j++) {
-            if (String.valueOf(data.getGoodsid()).equals(positionDataList.get(j).getGoodsid())) {
-                positionData = positionDataList.get(j);
-            }
-        }
 
         DeliveryRelationData deliveryData = null;
         List<DeliveryRelationData> deliveryRelationDataList = GlobalDataCollection.Companion.getInstance().getDeliveryRelationDataArrayList();

+ 32 - 3
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/business/SwapsBusinessHallActivity.kt

@@ -7,6 +7,7 @@ import android.view.Gravity
 import android.view.View
 import android.view.ViewGroup
 import android.widget.ImageView
+import android.widget.TextView
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.MutableLiveData
 import androidx.viewpager.widget.PagerAdapter
@@ -66,6 +67,9 @@ class SwapsBusinessHallActivity : BaseActivity<SwapsBusinessHallViewModel>() {
     //顶部数据是否展开
     val priceUpDown: MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
 
+    //涨跌幅
+    lateinit var applies_text : TextView
+
     /** 用于订阅行情的唯一标识 */
     val thisTag by lazy {
         "SwapsBusinessHallActivity"
@@ -267,7 +271,13 @@ class SwapsBusinessHallActivity : BaseActivity<SwapsBusinessHallViewModel>() {
                     }
 
                     textView {
-                        text = "1233"
+                        viewModel.quoteDayData.bindOptional(context){
+                            if (it?.getPrice() == 0.0){
+                                text = "--"
+                            }else{
+                                text = NumberUtils.roundNum(it?.getPrice() ?: 0.0,2)
+                            }
+                        }
                         textSizeAuto = 44
                         textColorInt = R.color.rma_red_color
                     }.lparams(wrapContent, wrapContent){
@@ -275,7 +285,26 @@ class SwapsBusinessHallActivity : BaseActivity<SwapsBusinessHallViewModel>() {
                     }
 
                     textView {
-                        text = "+19"
+                        viewModel.quoteDayData.bindOptional(context){
+                            if (it?.presettle == 0.0){
+                                text = "--"
+                            }else{
+                                val gainsAmount = it?.getPrice()?.minus(it.presettle)
+                                text = NumberUtils.roundNum(gainsAmount.toString(),2)
+                                applies_text.text = NumberUtils.roundNum(gainsAmount?.div(it?.presettle)?.times(100) ?: 0.0,2) + "%"
+                                if (gainsAmount ?: 0.0 > 0.0){
+                                    textColorInt = R.color.rma_red_color
+                                    applies_text.textColorInt = R.color.rma_red_color
+                                }else if (gainsAmount ?: 0.0 < 0.0){
+                                    textColorInt = R.color.rma_gray_color
+                                    applies_text.textColorInt =  R.color.rma_gray_color
+                                }else{
+                                    textColorInt = R.color.rma_gray_color
+                                    applies_text.textColorInt = R.color.rma_gray_color
+                                }
+                            }
+                        }
+
                         textSizeAuto = 27
                         textColorInt = R.color.rma_red_color
                     }.lparams(wrapContent, wrapContent){
@@ -283,7 +312,7 @@ class SwapsBusinessHallActivity : BaseActivity<SwapsBusinessHallViewModel>() {
                     }
 
                     textView {
-                        text = "+19%"
+                        applies_text = this
                         textSizeAuto = 27
                         textColorInt = R.color.rma_red_color
                     }.lparams(wrapContent, wrapContent){

+ 36 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingActivity.kt

@@ -86,6 +86,7 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
 
     /** 对页面数据进行初始化 **/
     fun initializeData(){
+        viewModel.queryTjmdTodayAccountMargin(goodsId = goodsId ?: "")
         selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
         viewModel.goodsInfo.postValue(DataBase.getInstance().goodsInfoDao().getGoodsInfo(goodsId?.toInt() ?: 0))
         if (type == "0"){//摘卖 摘卖操作时需要查找相应accountid的持仓单
@@ -472,22 +473,50 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
 
                 textView {
                     if (data.pricemode == "2"){//挂牌单据为固定价时
-                        text = NumberUtils.roundNum(data.orderprice?.toDouble()?.times(data.orderqty?.toDouble() ?: 0.0) ?: 0.0,2)
+                        val amout = data.orderprice?.toDouble()?.times(data.orderqty?.toDouble() ?: 0.0)
+                        val infoc = viewModel.tjmdTodayAccountMarginData.value?.infoc
+                        if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype == 2){
+                            text = NumberUtils.roundNum(amout ?: 0.0,2) + "需履约保证金 : " + infoc?.getMargainValue(amout = amout ?: 0.0,number = data.orderqty?.toDouble() ?: 0.0,goodsid = goodsId ?: "0")
+                        }else{
+                            var numberInput = 0.0
+                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
+                                numberInput = 0.0
+                            }else{
+                                numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                            }
+                            text = NumberUtils.roundNum(amout ?: 0.0,2) + "需履约保证金 : " + infoc?.getMargainValue(amout = amout ?: 0.0,number = numberInput,goodsid = goodsId ?: "0")
+                        }
+
                     }
                     viewModel.quoteDayData.bindOptional(context){
                         if (data.pricemode == "3"){//挂牌单据为浮动价时,才会有估算金额,并且选择为市价时根据行情变动,选择为限价时根据输入的限价价格变动
-                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
-                                text = "--"
-                            }else{
-                                val numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                            val infoc = viewModel.tjmdTodayAccountMarginData.value?.infoc
+                            if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype == 2){
+                                val numberInput = data.orderqty?.toDouble() ?: 0.0
                                 if (priceType.value == 1){//市价计算
-                                    text = NumberUtils.roundNum(it?.getPrice()?.times(numberInput) ?: 0.0,2)
+                                    text = NumberUtils.roundNum(it?.getPrice()?.times(numberInput) ?: 0.0,2) + "需履约保证金 :" + infoc?.getMargainValue(amout = it?.getPrice()?.times(numberInput) ?: 0.0,number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
                                 }else{//限价计算
                                     if (limit_price_edittext.text.toString().isNullOrEmpty()){
                                         text = "--"
                                     }else{
                                         val limit_price = limit_price_edittext.text.toString().toDouble()
-                                        text = NumberUtils.roundNum(limit_price.times(numberInput),2)
+                                        text = NumberUtils.roundNum(limit_price.times(numberInput),2) +  "需履约保证金 :" + infoc?.getMargainValue(amout = limit_price.times(numberInput),number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
+                                    }
+                                }
+                            }else{
+                                if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
+                                    text = "--"
+                                }else{
+                                    val numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                                    if (priceType.value == 1){//市价计算
+                                        text = NumberUtils.roundNum(it?.getPrice()?.times(numberInput) ?: 0.0,2) + "需履约保证金 :" + infoc?.getMargainValue(amout = it?.getPrice()?.times(numberInput) ?: 0.0,number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
+                                    }else{//限价计算
+                                        if (limit_price_edittext.text.toString().isNullOrEmpty()){
+                                            text = "--"
+                                        }else{
+                                            val limit_price = limit_price_edittext.text.toString().toDouble()
+                                            text = NumberUtils.roundNum(limit_price.times(numberInput),2) +  "需履约保证金 :" + infoc?.getMargainValue(amout = limit_price.times(numberInput),number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
+                                        }
                                     }
                                 }
                             }

+ 28 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingViewModel.kt

@@ -7,6 +7,7 @@ import cn.muchinfo.rma.global.MTPEnums
 import cn.muchinfo.rma.global.data.AccountData
 import cn.muchinfo.rma.global.data.ContractTradePositionData
 import cn.muchinfo.rma.global.data.QuoteDayData
+import cn.muchinfo.rma.global.data.TjmdTodayAccountMarginData
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
@@ -52,6 +53,33 @@ class SwapsDelistingViewModel : BaseViewModel(){
     val quoteDayData: MutableLiveData<QuoteDayData> = MutableLiveData()
 
     /**
+     * 账户保证金配置
+     */
+    val tjmdTodayAccountMarginData : MutableLiveData<TjmdTodayAccountMarginData> = MutableLiveData()
+
+
+    /**
+     * 查询当前选择资金账号的持仓汇总单据
+     * @param accountid String 当前资金账号
+     * @param goodsId String 当前页面的goodsid
+     */
+    fun queryTjmdTodayAccountMargin(goodsId : String){
+        val params = mutableMapOf<String,String>().apply {
+            put("accountid",GlobalDataCollection.instance?.accountId.toString())
+            put("marketid",GlobalDataCollection.instance?.getMaketidByTrademode(46).toString())
+            put("goodsid",goodsId)
+        }
+        MyApplication.getInstance()?.swapsManager?.queryTjmdTodayAccountMargin(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData?.size ?: 0 > 0){
+                    tjmdTodayAccountMarginData.postValue(respData?.get(0))
+                }
+            }
+        }
+    }
+
+
+    /**
      * 查询当前选择资金账号的持仓汇总单据
      * @param accountid String 当前资金账号
      * @param goodsId String 当前页面的goodsid

+ 91 - 72
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/listed/SwapsListedActivity.kt

@@ -151,6 +151,7 @@ class SwapsListedActivity : BaseActivity<SwapsListedViewModel>() {
         EventBus.getDefault().register(this)
         createLoadingDialog(hintStr = "").bindTaskStatus(this, viewModel.loadingDialogStatus)
         viewModel.resetAccountData()
+        viewModel.queryTjmdTodayAccountMargin(goodsId = goodsId ?: "")
         initializeData()
         initMenuData()
         verticalLayout {
@@ -238,8 +239,8 @@ class SellListedUI(
     /** SeekBar **/
     lateinit var one_seekbar: SeekBar
 
-    /** 挂牌金额 **/
-    lateinit var one_delisting_amount: TextView
+    /** 价格变动监听 ***/
+    val valueChange : MutableLiveData<Int> = MutableLiveData()
 
     //初始化一些数据
     fun initializeData() {
@@ -393,7 +394,7 @@ class SellListedUI(
                 gravity = Gravity.CENTER_VERTICAL
                 linearLayout {
                     textView {
-                        text = "差"
+                        text = "差"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
                     }.lparams(wrapContent, wrapContent) {
@@ -404,7 +405,7 @@ class SellListedUI(
                 numberEditText {
                     basis_price_input = this
                     setOnTextChangeListener { view, value ->
-                        viewModel.quoteDayData.postValue(viewModel.quoteDayData.value)
+                        valueChange.postValue(valueChange.value)
                     }
                     text = "0"
                     setTextColor(R.color.buy_hall_color)
@@ -461,6 +462,7 @@ class SellListedUI(
 
                 numberEditText {
                     viewModel.quoteDayData.bindOptional(context) {
+                        valueChange.postValue(valueChange.value)
                         text = NumberUtils.roundNum(
                             it?.getPrice()?.toString(),
                             viewModel.goodsInfo.value?.decimalplace ?: 2
@@ -473,14 +475,7 @@ class SellListedUI(
                     onePriceInputEdittext = this
                     setOnTextChangeListener { view, value ->
                         if (value.isNullOrEmpty().not() && value.toString().toDouble() != 0.0) {
-                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty().not()) {
-                                one_delisting_amount.text = NumberUtils.roundNum(
-                                    value.toString().toDouble().times(
-                                        onePriceInputNumberEdittext.text.toString()?.toDouble()
-                                    )?.times(viewModel.goodsInfo.value?.agreeunit ?: 1), 2
-                                )
-                            }
-
+                            valueChange.postValue(valueChange.value)
                             viewModel.maxSellListedingNumber.postValue(
                                 viewModel.usedAccountData.value?.canUserAmount?.div(
                                     value?.toString()?.toDouble() ?: 1.0
@@ -520,15 +515,7 @@ class SellListedUI(
                             }
                             setOnTextChangeListener { view, value ->
                                 if (value.isNullOrEmpty().not()) {
-                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
-                                            .not()
-                                    ) {
-                                        one_delisting_amount.text = NumberUtils.roundNum(
-                                            value.toString().toDouble().times(
-                                                onePriceInputEdittext.text.toString()?.toDouble()
-                                            )?.times(viewModel.goodsInfo.value?.agreeunit ?: 1), 2
-                                        )
-                                    }
+                                    valueChange.postValue(valueChange.value)
                                 }
                             }
                             setTextColor(R.color.buy_hall_color)
@@ -611,7 +598,7 @@ class SellListedUI(
                         if (it == 1){//固定价
                             text = "挂牌金额"
                         }else{//浮动价
-                            text = "挂牌金额"
+                            text = "估算金额"
                         }
                     }
 
@@ -622,25 +609,50 @@ class SellListedUI(
                 }
                 //公式 :挂牌金额*挂牌数量*合约单位
                 textView {
-                    viewModel.quoteDayData.bindOptional(context){
-                        if (priceType.value == 2){
-                            var basis = 0.0
+                    valueChange.bindOptional(context){
+                        val infoc = viewModel.tjmdTodayAccountMarginData.value?.infoc
+                        if (priceType.value == 2){//浮动价
+                            var basis = 0.0//输入的点差
                             if (basis_price_input.text.toString().isNullOrEmpty()){
                                 basis = 0.0
                             }else{
                                 basis = basis_price_input.text.toString().toDouble()
                             }
-                            text = NumberUtils.roundNum(
-                                (it?.getPrice()?.plus(basis))?.times(
-                                    onePriceInputEdittext.text.toString().toDouble()
-                                        .times(
-                                            viewModel.goodsInfo.value?.agreeunit ?: 1
-                                        )
-                                ) ?: 0.0, 2
+                            var numberInput = 0.0//输入的数量
+                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
+                                numberInput = 0.0
+                            }else{
+                                numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                            }
+                            val amount = (viewModel.quoteDayData.value?.getPrice()?.plus(basis))?.times(
+                                numberInput.times(
+                                    viewModel.goodsInfo.value?.agreeunit ?: 1
+                                )
+                            ) ?: 0.0
+                            text = NumberUtils.roundNum(amount, 2) + "需履约保证金 :" + infoc?.getMargainValue(amout = amount,number = numberInput,goodsid = goodsId)
+                        }else if (priceType.value == 1){//固定价
+                            var priceInput = 0.0//输入的固定价
+                            if (onePriceInputEdittext.text.toString().isNullOrEmpty()){
+                                priceInput = 0.0
+                            }else{
+                                priceInput = onePriceInputEdittext.text.toString().toDouble()
+                            }
+                            var numberInput = 0.0//输入的数量
+                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
+                                numberInput = 0.0
+                            }else{
+                                numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                            }
+
+                            val amount = priceInput.times(
+                                numberInput.times(
+                                    viewModel.goodsInfo.value?.agreeunit ?: 1
+                                )
                             )
+                            text = NumberUtils.roundNum(amount, 2) + "需履约保证金 :" + infoc?.getMargainValue(amout = amount,number = numberInput,goodsid = goodsId)
                         }
                     }
-                    one_delisting_amount = this
+
                     text = "--"
                     textSizeAuto = 29
                     textColorInt = R.color.rma_black_33
@@ -649,7 +661,7 @@ class SellListedUI(
 
             textView {
                 viewModel.usedAccountData.bindOptional(context) {
-                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(), 2)
+                    text = "可用资金" + NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.canUserAmount.toString()), 2)
                 }
                 textSizeAuto = 29
                 textColorInt = R.color.rma_black_33
@@ -766,8 +778,8 @@ class BuyListedUI(
     /** SeekBar **/
     lateinit var one_seekbar: SeekBar
 
-    /** 挂牌金额 **/
-    lateinit var one_delisting_amount: TextView
+    /** 价格变动监听 ***/
+    val valueChange : MutableLiveData<Int> = MutableLiveData()
 
     //初始化一些数据
     fun initializeData() {
@@ -916,7 +928,7 @@ class BuyListedUI(
                 gravity = Gravity.CENTER_VERTICAL
                 linearLayout {
                     textView {
-                        text = "差"
+                        text = "差"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
                     }.lparams(wrapContent, wrapContent) {
@@ -927,7 +939,7 @@ class BuyListedUI(
                 numberEditText {
                     basis_price_input = this
                     setOnTextChangeListener { view, value ->
-                        viewModel.quoteDayData.postValue(viewModel.quoteDayData.value)
+                        valueChange.postValue(valueChange.value)
                     }
                     text = "0"
                     setTextColor(R.color.buy_hall_color)
@@ -985,6 +997,7 @@ class BuyListedUI(
 
                 numberEditText {
                     viewModel.quoteDayData.bindOptional(context) {
+                        valueChange.postValue(valueChange.value)
                         text = NumberUtils.roundNum(
                             it?.getPrice()?.toString(),
                             viewModel.goodsInfo.value?.decimalplace ?: 2
@@ -997,15 +1010,7 @@ class BuyListedUI(
                     onePriceInputEdittext = this
                     setOnTextChangeListener { view, value ->
                         if (value.isNullOrEmpty().not() && value.toString().toDouble() != 0.0) {
-                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty().not()) {
-                                one_delisting_amount.text = NumberUtils.roundNum(
-                                    value.toString().toDouble()
-                                        .times(
-                                            onePriceInputNumberEdittext.text.toString().toDouble()
-                                        )
-                                        .times(viewModel.goodsInfo.value?.agreeunit ?: 1), 2
-                                )
-                            }
+                            valueChange.postValue(valueChange.value)
                             viewModel.maxBuyListedingNumber.postValue(
                                 viewModel.usedAccountData.value?.canUserAmount?.div(
                                     value?.toString()?.toDouble() ?: 1.0
@@ -1042,18 +1047,7 @@ class BuyListedUI(
                             onePriceInputNumberEdittext = this
                             setOnTextChangeListener { view, value ->
                                 if (value.isNullOrEmpty().not()) {
-                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
-                                            .not()
-                                    ) {
-                                        one_delisting_amount.text = NumberUtils.roundNum(
-                                            value.toString().toDouble().times(
-                                                onePriceInputEdittext.text.toString().toDouble()
-                                                    .times(
-                                                        viewModel.goodsInfo.value?.agreeunit ?: 1
-                                                    )
-                                            ), 2
-                                        )
-                                    }
+                                    valueChange.postValue(valueChange.value)
                                 }
                             }
                             setTextColor(R.color.buy_hall_color)
@@ -1136,7 +1130,7 @@ class BuyListedUI(
                         if (it == 1){//固定价
                             text = "挂牌金额"
                         }else{//浮动价
-                            text = "挂牌金额"
+                            text = "估算金额"
                         }
                     }
 
@@ -1147,25 +1141,50 @@ class BuyListedUI(
                 }
                 //公式 :挂牌金额*挂牌数量*合约单位
                 textView {
-                    viewModel.quoteDayData.bindOptional(context){
-                        if (priceType.value == 2){
-                            var basis = 0.0
+                    valueChange.bindOptional(context){
+                        val infoc = viewModel.tjmdTodayAccountMarginData.value?.infoc
+                        if (priceType.value == 2){//浮动价
+                            var basis = 0.0//输入的点差
                             if (basis_price_input.text.toString().isNullOrEmpty()){
                                 basis = 0.0
                             }else{
                                 basis = basis_price_input.text.toString().toDouble()
                             }
-                            text = NumberUtils.roundNum(
-                                (it?.getPrice()?.plus(basis))?.times(
-                                    onePriceInputEdittext.text.toString().toDouble()
-                                        .times(
-                                            viewModel.goodsInfo.value?.agreeunit ?: 1
-                                        )
-                                ) ?: 0.0, 2
+                            var numberInput = 0.0//输入的数量
+                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
+                                numberInput = 0.0
+                            }else{
+                                numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                            }
+                            val amount = (viewModel.quoteDayData.value?.getPrice()?.plus(basis))?.times(
+                                numberInput.times(
+                                    viewModel.goodsInfo.value?.agreeunit ?: 1
+                                )
+                            ) ?: 0.0
+                            text = NumberUtils.roundNum(amount, 2) + "需履约保证金 :" + infoc?.getMargainValue(amout = amount,number = numberInput,goodsid = goodsId)
+                        }else if (priceType.value == 1){//固定价
+                            var priceInput = 0.0//输入的固定价
+                            if (onePriceInputEdittext.text.toString().isNullOrEmpty()){
+                                priceInput = 0.0
+                            }else{
+                                priceInput = onePriceInputEdittext.text.toString().toDouble()
+                            }
+                            var numberInput = 0.0//输入的数量
+                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
+                                numberInput = 0.0
+                            }else{
+                                numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                            }
+
+                            val amount = priceInput.times(
+                                numberInput.times(
+                                    viewModel.goodsInfo.value?.agreeunit ?: 1
+                                )
                             )
+                            text = NumberUtils.roundNum(amount, 2) + "需履约保证金 :" + infoc?.getMargainValue(amout = amount,number = numberInput,goodsid = goodsId)
                         }
                     }
-                    one_delisting_amount = this
+
                     text = "--"
                     textSizeAuto = 29
                     textColorInt = R.color.rma_black_33
@@ -1174,7 +1193,7 @@ class BuyListedUI(
 
             textView {
                 viewModel.usedAccountData.bindOptional(context) {
-                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(), 2)
+                    text = "可用资金" + NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.canUserAmount.toString()), 2)
                 }
                 textSizeAuto = 29
                 textColorInt = R.color.rma_black_33

+ 25 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/listed/SwapsListedViewModel.kt

@@ -4,10 +4,7 @@ import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.business.contractgoods.adapter.OrderData
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.MTPEnums
-import cn.muchinfo.rma.global.data.AccountData
-import cn.muchinfo.rma.global.data.ContractTradePositionData
-import cn.muchinfo.rma.global.data.PayOrderData
-import cn.muchinfo.rma.global.data.QuoteDayData
+import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
@@ -57,6 +54,30 @@ class SwapsListedViewModel : BaseViewModel(){
      */
     val quoteDayData: MutableLiveData<QuoteDayData> = MutableLiveData()
 
+    /**
+     * 账户保证金配置
+     */
+    val tjmdTodayAccountMarginData : MutableLiveData<TjmdTodayAccountMarginData> = MutableLiveData()
+
+
+    /**
+     * 查询当前选择资金账号的持仓汇总单据
+     */
+    fun queryTjmdTodayAccountMargin(goodsId : String){
+        val params = mutableMapOf<String,String>().apply {
+            put("accountid",GlobalDataCollection.instance?.accountId.toString())
+            put("marketid",GlobalDataCollection.instance?.getMaketidByTrademode(46).toString())
+            put("goodsid",goodsId)
+        }
+        MyApplication.getInstance()?.swapsManager?.queryTjmdTodayAccountMargin(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData?.size ?: 0 > 0){
+                    tjmdTodayAccountMarginData.postValue(respData?.get(0))
+                }
+            }
+        }
+    }
+
 
     //查询资金账号信息
     fun getTaAccounts(){

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä