Browse Source

风险管理11月125日提交代码-liu.bolan-风管bug

Liu.bolan 4 years ago
parent
commit
c7d337e369
64 changed files with 10794 additions and 411 deletions
  1. 18 0
      RMA/.idea/statistic.xml
  2. 2 2
      RMA/app/build.gradle
  3. 16 0
      RMA/app/src/main/assets/errormessage.json
  4. 28 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/account/AccountManager.kt
  5. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/warehouse/WarehouseManager.kt
  6. 1 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/warehouse/adapter/WarehouseAdapter.kt
  7. 17 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/BaseGlobalData.java
  8. 16 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/GlobalDataCollection.kt
  9. 50 44
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/AccountData.kt
  10. 289 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/TjmdMarketSectionData.kt
  11. 3 2
      RMA/app/src/main/java/cn/muchinfo/rma/netManage/base/interceptor/LoggingInterceptor.kt
  12. 69 19
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  13. 1 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/dialog/Dialog.kt
  14. 3 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  15. 8 8
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/CdysCircleUI.kt
  16. 10 10
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/CdysWarehouseScreeningDialog.kt
  17. 19 14
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysFragment.kt
  18. 18 18
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysViewModel.kt
  19. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/dialog/HnstFloatListedDialog.kt
  20. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/dialog/HnstOneListedDialog.kt
  21. 36 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainFragment.kt
  22. 18 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/ContractOrdersActivity.kt
  23. 8 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/ContractOrdersViewModel.kt
  24. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performancetemplate/PerformanceTemplateViewModel.kt
  25. 58 46
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedActivity.kt
  26. 19 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedViewModel.kt
  27. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgeDetailsActivity.kt
  28. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reference/ReferenceAdapter.java
  29. 118 118
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeFragment.kt
  30. 38 25
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/LoginActivity.kt
  31. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/platinumtreasure/PlatinumTreasureFragment.kt
  32. 59 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/QhjTopTabAdpater.java
  33. 1 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/TopTabAdpater.java
  34. 257 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/reference/ReferenceFragment.kt
  35. 280 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/GoodsSwapsUI.kt
  36. 753 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/HnstcdysUI.kt
  37. 275 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/PurchaseOrderUI.kt
  38. 416 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdCdysWarehouseScreeningDialog.kt
  39. 1132 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdHnstFloatListedDialog.kt
  40. 1013 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdHnstOneListedDialog.kt
  41. 425 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdMarketFragment.kt
  42. 1215 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdMarketViewModel.kt
  43. 1105 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdWarehouseFloatListedDialog.kt
  44. 1210 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdWarehouseOneListedDialog.kt
  45. 369 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdWarehouseScreeningDialog.kt
  46. 765 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/WarehouseReceiptUI.kt
  47. 44 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdmyviewholder/TjmdWarehouseSelectViewHolder.kt
  48. 64 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdmyviewholder/TjmdWarehouseWrstandardnameViewHolder.kt
  49. 44 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdmyviewholder/TjmdWarehouseWrstandnameSoneViewHolder.kt
  50. 62 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdmyviewholder/TjmdWrStandardFactoryItemSonViewHolder.kt
  51. 66 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdmyviewholder/TjmdWrStandardFactoryItemViewHolder.kt
  52. 43 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysSelectViewHolder.kt
  53. 48 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysWrStandardFactoryItemSonViewHolder.kt
  54. 62 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysWrStandardFactoryItemViewHolder.kt
  55. 60 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysWrstandardnameViewHolder.kt
  56. 43 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysWrstandnameSoneViewHolder.kt
  57. 8 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessBuyHallViewHolder.kt
  58. 20 16
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallActivity.kt
  59. 8 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessSellHallViewHolder.kt
  60. 0 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/PurchaseOrderFragment.kt
  61. 9 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/adapter/TransferAdapter.java
  62. 48 31
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/TransferSwapsAdapter.java
  63. 14 0
      RMA/app/src/main/res/layout/layout_item_qhj_top_scroll.xml
  64. BIN
      RMA/app/src/main/res/mipmap-xhdpi/hnst_dqdd_icon.png

+ 18 - 0
RMA/.idea/statistic.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Statistic">
+    <option name="excludedDirectories">
+      <list>
+        <option value="$PROJECT_DIR$/build" />
+        <option value="$PROJECT_DIR$/chart" />
+        <option value="$PROJECT_DIR$/gradle" />
+        <option value="$PROJECT_DIR$/keystore" />
+        <option value="$PROJECT_DIR$/app/fxgl" />
+        <option value="$PROJECT_DIR$/build" />
+        <option value="$PROJECT_DIR$/app/build" />
+        <option value="$PROJECT_DIR$/app/tjmd" />
+        <option value="$PROJECT_DIR$/app/yrdz" />
+      </list>
+    </option>
+  </component>
+</project>

+ 2 - 2
RMA/app/build.gradle

@@ -19,8 +19,8 @@ android {
         applicationId "cn.muchinfo.rma"
         minSdkVersion 24
         targetSdkVersion 30
-        versionCode 50037
-        versionName "5.0.37"
+        versionCode 50038
+        versionName "5.0.38"
         multiDexEnabled true
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         //指定room.schemaLocation生成的文件路径

+ 16 - 0
RMA/app/src/main/assets/errormessage.json

@@ -6600,6 +6600,22 @@
     "rownumber": "AAI+HaABDAAABxiAAB"
   },
   {
+    "errorid": 11051,
+    "errorcode": "11051",
+    "modulecode": "11",
+    "operatecode": "ERR_ORDERWRTRADE_WRTRADE_MUST_PLANTEMPLATEID",
+    "description": "委托必须有履约模板ID",
+    "rownumber": "AABTW2AAnAAAAL1ABu"
+  },
+  {
+    "errorid": 11052,
+    "errorcode": "11052",
+    "modulecode": "11",
+    "operatecode": "ERR_ORDERWRTRADE_SPOT_TRADE_HASWR_TYPE",
+    "description": "是否有仓单类型错误",
+    "rownumber": "AABTW2AAnAAAAL1ABv"
+  },
+  {
     "errorid": 23002,
     "errorcode": "23002",
     "modulecode": "23",

+ 28 - 1
RMA/app/src/main/java/cn/muchinfo/rma/business/account/AccountManager.kt

@@ -421,7 +421,7 @@ class AccountManager {
         val params = mutableMapOf<String, String>().apply {
             put("loginID", GlobalDataCollection.instance?.loginRsp?.loginID.toString())
             put("clientType", "1")//终端类型,0:PC 1:Mobile
-            if (SPUtils.getInstance().getString(Constant.oem) == "qyfg"){
+            if (SPUtils.getInstance().getString(Constant.oem) == "qyfg" || SPUtils.getInstance().getString(Constant.oem) == "qhj" ){
 //                put("name","ermcp")
             }else{
                 put("name","trader")
@@ -1376,4 +1376,31 @@ class AccountManager {
     }
 
 
+    /**
+     * 查询市场板块
+     * @param params Map<String, String>
+     * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<BankInfoData>?, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryTjmdMarketSection(
+        params: Map<String, String>,
+        responseBack: (isSuccess: Boolean, respData: List<TjmdMarketSectionData>?, error: Error?) -> Unit
+    ) {
+        MyOkHttpUtils().query(
+            URL = SPUtils.getInstance()
+                .getString(Constant.goCommonSearchUrl) + "/Tjmd/QueryTjmdMarketSection",
+            params = params,
+            type = "1",
+            callback = object : ResponseCallback<BaseResult<List<TjmdMarketSectionData>>>() {
+                override fun onResponse(response: BaseResult<List<TjmdMarketSectionData>>?, id: Int) {
+                    responseBack(true, response?.data, null)
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    responseBack(false, null, Error(e?.message))
+                }
+            }
+        )
+    }
+
+
 }

+ 2 - 1
RMA/app/src/main/java/cn/muchinfo/rma/business/warehouse/WarehouseManager.kt

@@ -560,6 +560,7 @@ class WarehouseManager {
      * 持仓单挂单委托请求
      */
     fun HdWROrderReq(
+        marketid : Long = 0,//市场id
         ValidTime : String = "",//有效期限
         LadingBillId : Long = 0,//提单id(wrholdlb的LadingBillId字段),卖的时候填写
         TradeDate : String = "",//交易日
@@ -603,7 +604,7 @@ class WarehouseManager {
             return
         }
         val reqPacket = WarehouseAdapter.getHdWROrderReqInfo(
-            ValidTime,LadingBillId, TradeDate, SubNum, WRFactorTypeId, UserID, AccountID, IsSpecified, OrderQty, DeliveryGoodsID, WRPriceType, FixedPrice, WRTradeGoods, PriceFactor, PriceMove, TimevalidType, FirstRatio, PerformanceTemplateID, BuyOrSell, PriceDisplayMode, CanBargain, Attachment1, Attachment2, Remark, ApplyID, CanPart, MatchAccIDsString, DeliveryMonth, HasWr, WRStandardID, DelistMinQty, FactoryItems, MarginFlag, MarginAlgorithm, MarginValue, AllFriendsFlag
+            marketid,ValidTime,LadingBillId, TradeDate, SubNum, WRFactorTypeId, UserID, AccountID, IsSpecified, OrderQty, DeliveryGoodsID, WRPriceType, FixedPrice, WRTradeGoods, PriceFactor, PriceMove, TimevalidType, FirstRatio, PerformanceTemplateID, BuyOrSell, PriceDisplayMode, CanBargain, Attachment1, Attachment2, Remark, ApplyID, CanPart, MatchAccIDsString, DeliveryMonth, HasWr, WRStandardID, DelistMinQty, FactoryItems, MarginFlag, MarginAlgorithm, MarginValue, AllFriendsFlag
         )
 
         tradeSocketManager.send(

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

@@ -295,6 +295,7 @@ object WarehouseAdapter {
      * 持仓单挂牌请求
      */
     fun getHdWROrderReqInfo(
+        marketid : Long = 0,//市场id
         ValidTime : String = "",//有效期限
         LadingBillId : Long = 0,//提单id(wrholdlb的LadingBillId字段),卖的时候填写
         TradeDate : String = "",//交易日

+ 17 - 0
RMA/app/src/main/java/cn/muchinfo/rma/global/BaseGlobalData.java

@@ -18,6 +18,7 @@ import cn.muchinfo.rma.global.data.MarketTradeConfigData;
 import cn.muchinfo.rma.global.data.QhjContractDetailsData;
 import cn.muchinfo.rma.global.data.QuoteGoodsListData;
 import cn.muchinfo.rma.global.data.RStrategyData;
+import cn.muchinfo.rma.global.data.TjmdMarketSectionData;
 import cn.muchinfo.rma.global.data.UserAccountData;
 import cn.muchinfo.rma.global.data.account.LoginQueryData;
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo;
@@ -143,6 +144,22 @@ public class BaseGlobalData {
      */
     private ArrayList<QuoteGoodsListData> quoteGoodsListDataArrayList;
 
+    /**
+     * 天津麦顿-市场板块信息
+     * @return
+     */
+    private ArrayList<TjmdMarketSectionData> tjmdMarketSectionDataArrayList;
+
+    public ArrayList<TjmdMarketSectionData> getTjmdMarketSectionDataArrayList() {
+        if (tjmdMarketSectionDataArrayList == null){
+            tjmdMarketSectionDataArrayList = new ArrayList<>();
+        }
+        return tjmdMarketSectionDataArrayList;
+    }
+
+    public void setTjmdMarketSectionDataArrayList(ArrayList<TjmdMarketSectionData> tjmdMarketSectionDataArrayList) {
+        this.tjmdMarketSectionDataArrayList = tjmdMarketSectionDataArrayList;
+    }
 
     public ArrayList<QuoteGoodsListData> getQuoteGoodsListDataArrayList() {
         if (quoteGoodsListDataArrayList == null){

+ 16 - 0
RMA/app/src/main/java/cn/muchinfo/rma/global/GlobalDataCollection.kt

@@ -1,6 +1,7 @@
 package cn.muchinfo.rma.global
 
 import cn.muchinfo.rma.global.data.AccountData
+import cn.muchinfo.rma.global.data.TjmdMarketSectionData
 import cn.muchinfo.rma.global.data.database.EnumDicEntity
 import cn.muchinfo.rma.view.base.app.Constant
 import com.blankj.utilcode.util.SPUtils
@@ -8,9 +9,24 @@ import java.text.SimpleDateFormat
 import java.util.*
 import java.util.concurrent.locks.Lock
 import java.util.concurrent.locks.ReentrantLock
+import kotlin.collections.ArrayList
 
 class GlobalDataCollection : BaseGlobalData() {
 
+
+    /**
+     * 获取首页应该展示的市场板块数据列表(当总列表条数大于3时取前三条)
+     */
+    fun getTjmdShowMarketSectionList() : ArrayList<TjmdMarketSectionData>{
+        val newMarketSectionList = arrayListOf<TjmdMarketSectionData>()
+        if (tjmdMarketSectionDataArrayList.size > 3){
+            newMarketSectionList.addAll(tjmdMarketSectionDataArrayList.subList(0,3))
+        }else{
+            newMarketSectionList.addAll(tjmdMarketSectionDataArrayList)
+        }
+        return newMarketSectionList
+    }
+
     /**
      * 获取首页菜单的列表
      */

+ 50 - 44
RMA/app/src/main/java/cn/muchinfo/rma/global/data/AccountData.kt

@@ -4,6 +4,8 @@ import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.global.database.DataBase
 import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.base.app.Constant
+import com.blankj.utilcode.util.SPUtils
 import com.google.gson.annotations.SerializedName
 
 /**
@@ -205,62 +207,66 @@ open class AccountData(
             }
         }
 
-        newList.forEach {
-            var goodsInfoData: GoodsInfo
-            if (it.trademode == "16") {
-                goodsInfoData = DataBase.getInstance().goodsInfoDao()
+        if (SPUtils.getInstance().getString(Constant.oem) == "yrdz" || SPUtils.getInstance().getString(
+                Constant.oem) == "tjmd" ){
+            newList.forEach {
+                var goodsInfoData: GoodsInfo
+                if (it.trademode == "16") {
+                    goodsInfoData = DataBase.getInstance().goodsInfoDao()
+                        .getGoodsInfo(it.goodsid?.toInt() ?: 0)
+                } else {
+                    goodsInfoData = DataBase.getInstance().goodsInfoDao()
+                        .getGoodsInfo(it.refgoodsId)
+                }
+                //瞎几把搞,46市场的价格取参考,其他信息取本身的
+                val goodsInfo2 = DataBase.getInstance().goodsInfoDao()
                     .getGoodsInfo(it.goodsid?.toInt() ?: 0)
-            } else {
-                goodsInfoData = DataBase.getInstance().goodsInfoDao()
-                    .getGoodsInfo(it.refgoodsId)
-            }
-            //瞎几把搞,46市场的价格取参考,其他信息取本身的
-            val goodsInfo2 = DataBase.getInstance().goodsInfoDao()
-                .getGoodsInfo(it.goodsid?.toInt() ?: 0)
 
-            val quoteDayData =
-                GlobalDataCollection.instance?.goodsInfoAndQuotesList?.find { data ->
-                    data.outgoodscode == goodsInfoData.goodscode.toUpperCase()
-                }?.quoteDayData
-            if (it.tradeproperty == "2") {//交易模式为所有权时才在我的页面算市值
-                valueOfposition += quoteDayData?.getPrice()?.times(
-                    it.curpositionqty?.toDouble() ?: 0.0
-                )?.times(goodsInfoData.agreeunit) ?: 0.0
-            }
+                val quoteDayData =
+                    GlobalDataCollection.instance?.goodsInfoAndQuotesList?.find { data ->
+                        data.outgoodscode == goodsInfoData.goodscode.toUpperCase()
+                    }?.quoteDayData
+                if (it.tradeproperty == "2") {//交易模式为所有权时才在我的页面算市值
+                    valueOfposition += quoteDayData?.getPrice()?.times(
+                        it.curpositionqty?.toDouble() ?: 0.0
+                    )?.times(goodsInfoData.agreeunit) ?: 0.0
+                }
 
-            var Profit: Double? = 0.0
-            if (it.tradeproperty == "1") {//交易模式为收益权时才在我的页面算浮动盈亏
-                if (quoteDayData!!.getPrice() == 0.0) {
-                    Profit = 0.0
-                } else {
-                    if (it.averageprice == "" || it.averageprice == "0") {
+                var Profit: Double? = 0.0
+                if (it.tradeproperty == "1") {//交易模式为收益权时才在我的页面算浮动盈亏
+                    if (quoteDayData!!.getPrice() == 0.0) {
                         Profit = 0.0
                     } else {
-                        if (it.buyorsell == "1") { //卖方向
-                            Profit = NumberUtils.roundNum(
-                                (quoteDayData.getPrice().minus(
-                                    it.averageprice?.toDouble() ?: 0.0
-                                )).times(it.curpositionqty?.toDouble() ?: 0.0)
-                                    .times(goodsInfo2.agreeunit).times(-1).toString(),
-                                2
-                            ).toDouble()
+                        if (it.averageprice == "" || it.averageprice == "0") {
+                            Profit = 0.0
                         } else {
-                            Profit = NumberUtils.roundNum(
-                                (quoteDayData.getPrice().minus(
-                                    it.averageprice?.toDouble() ?: 0.0
-                                )).times(it.curpositionqty?.toDouble() ?: 0.0)
-                                    .times(goodsInfo2.agreeunit).toString(),
-                                2
-                            ).toDouble()
-                        }
+                            if (it.buyorsell == "1") { //卖方向
+                                Profit = NumberUtils.roundNum(
+                                    (quoteDayData.getPrice().minus(
+                                        it.averageprice?.toDouble() ?: 0.0
+                                    )).times(it.curpositionqty?.toDouble() ?: 0.0)
+                                        .times(goodsInfo2.agreeunit).times(-1).toString(),
+                                    2
+                                ).toDouble()
+                            } else {
+                                Profit = NumberUtils.roundNum(
+                                    (quoteDayData.getPrice().minus(
+                                        it.averageprice?.toDouble() ?: 0.0
+                                    )).times(it.curpositionqty?.toDouble() ?: 0.0)
+                                        .times(goodsInfo2.agreeunit).toString(),
+                                    2
+                                ).toDouble()
+                            }
 
+                        }
                     }
+                    valueOfposition_keep_watch_profit_and_loss += Profit
                 }
-                valueOfposition_keep_watch_profit_and_loss += Profit
-            }
 
 
+            }
         }
+
         /** 计算融资额 **/
         val qhjContractDetailsDataArrayList =
             GlobalDataCollection.instance?.qhjContractDetailsDataArrayList

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

@@ -0,0 +1,289 @@
+package cn.muchinfo.rma.global.data
+
+import android.os.Parcel
+import android.os.Parcelable
+import com.google.gson.annotations.SerializedName
+
+/**
+ * 市场板块
+ */
+data class TjmdMarketSectionData(
+    @SerializedName("marketsectionid")
+    val marketsectionid : String? = "",//市场版块ID(SEQ_MARKETSECTION)
+    @SerializedName("marketsectionname")
+    val marketsectionname : String? = "",//市场版块名称
+    @SerializedName("orderindex")
+    val orderindex : String? = "",//排序
+    @SerializedName("pictureurl")
+    val pictureurl : String? = "",//图片url, 规格(90*90)
+    @SerializedName("remark")
+    val remark : String? = "",//备注
+    @SerializedName("mlist")
+    val mlist : List<TjmdMarketSectionConfigData>? = arrayListOf()//市场列表(板块下面有多少个市场)
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.createTypedArrayList(TjmdMarketSectionConfigData)
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(marketsectionid)
+        parcel.writeString(marketsectionname)
+        parcel.writeString(orderindex)
+        parcel.writeString(pictureurl)
+        parcel.writeString(remark)
+        parcel.writeTypedList(mlist)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<TjmdMarketSectionData> {
+        override fun createFromParcel(parcel: Parcel): TjmdMarketSectionData {
+            return TjmdMarketSectionData(parcel)
+        }
+
+        override fun newArray(size: Int): Array<TjmdMarketSectionData?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}
+
+/**
+ * 市场列表
+ */
+data class TjmdMarketSectionConfigData(
+    @SerializedName("auctionwrtype")
+    val auctionwrtype : String? = "",//仓单类型(现货交易) - 1:无仓单 2:有仓单 3;有无仓单均可
+    @SerializedName("canacceptquote")
+    val canacceptquote : String? = "",//确认行权是否接收行情 - 0:不接受 1:接受 [可确认权的挂牌期权市场可配置]
+    @SerializedName("cangoodsexercise")
+    val cangoodsexercise : String? = "",//[期权]是否可现货行权- 0:否 1:是
+    @SerializedName("cangoodsexercisetype")
+    val cangoodsexercisetype : String? = "",//可现货行权期权类型 - 1:认购 2认沽 3:认购认沽 [CanGoodsExercise = 1时可设置]
+    @SerializedName("canmanualquotestrike")
+    val canmanualquotestrike : String? = "",//是否可手动报行权价- 0:否 1:是 [期权]
+    @SerializedName("canmutistage")
+    val canmutistage : String? = "",//是否可多段运行 – 0:不可 1:可 [挂牌期权]
+    @SerializedName("canpreexercise")
+    val canpreexercise : String? = "",//[期权]是否可预申报- 0:否 1:是
+    @SerializedName("clearinterval")
+    val clearinterval : String? = "",//待开市间隔(交易市场开盘前多久发市场待开市信号(单位分钟))
+    @SerializedName("contracttmp")
+    val contracttmp : String? = "",//合同模板[荷兰式][竞价式][仓单贸易]
+    @SerializedName("exchareaid")
+    val exchareaid : String? = "",//所属交易所,可以没有
+    @SerializedName("financemarketid")
+    val financemarketid : String? = "",//融资回购市场ID [仓单贸易]
+    @SerializedName("goodstype")
+    val goodstype : String? = "",//商品类型 - 1:交易商品 2:仓单商品
+    @SerializedName("hasrebate")
+    val hasrebate : String? = "",//是否返利[竞价式] 0:不返,1:返利 – 根据系统参数088显示或隐藏
+    @SerializedName("hastradecredit")
+    val hastradecredit : String? = "",//是否交易授信[做市收益权] - 0:不授信 1:授信
+    @SerializedName("haswr")
+    val haswr : String? = "",//[竞拍]是否需要仓单 - 0:不需要 1:需要-作废
+    @SerializedName("isdeductmargin")
+    val isdeductmargin : String? = "",//竞拍违约是否扣除保证金[竞拍-降价式] - 0:不扣 1:扣除
+    @SerializedName("isrecordsource")
+    val isrecordsource : String? = "",//是否记录成交源 - 0:不记录 1:记录 [所有权]
+    @SerializedName("isreleasemargin")
+    val isreleasemargin : String? = "",//成交参与保证金是否释放[竞价式] - 0:不释放 1释放
+    @SerializedName("isupdatereckonprice")
+    val isupdatereckonprice : String? = "",//输入结算价标识 - 0:系统生成 1:手工输入(自动) 2:手工输入(手动)
+    @SerializedName("listingmode")
+    val listingmode : String? = "",//挂牌方式 1:一口价 2:浮动价 3:贸易圈 4:协议指定
+    @SerializedName("marginformula")
+    val marginformula : String? = "",//持仓保证金公式 - 1:双边收 2:净头寸收 3:大小边差异收 4:大边收 5:卖持仓收(仅期权)
+    @SerializedName("marginformula2")
+    val marginformula2 : String? = "",//持仓保证金公式(仅受托竞价) - 1:双边收 2:净头寸收 3:大小边差异收 4:大边收 5:卖持仓收(仅期权)
+    @SerializedName("marketid")
+    val marketid : String? = "",//市场ID正常5位,前三位固定:两位表示交易模式, 一位表示交易属性(1:收益权,2:所有权) 其它特殊市场:0-系统 1-交割服务 2-账户服务3-履约服务 4-仓单服务 5-积分服务 6-银行服务
+    @SerializedName("marketname")
+    val marketname : String? = "",//市场名称
+    @SerializedName("marketsectionid")
+    val marketsectionid : String? = "",//市场版块ID(SEQ_MARKETSECTION)
+    @SerializedName("marketserviceid")
+    val marketserviceid : String? = "",//市场服务ID
+    @SerializedName("marketstatus")
+    val marketstatus : String? = "",//生效状态(ValidStatus枚举): 1:待生效 2:正常 3:注销
+    @SerializedName("markettype")
+    val markettype : String? = "",//市场类型- 1:非交易服务 2:交易服务
+    @SerializedName("matchermode")
+    val matchermode : String? = "",//指定对手模式[仓单贸易模式专用] - 1:任意对手 - 作废
+    @SerializedName("nowrquotaflag")
+    val nowrquotaflag : String? = "",//是否校验无仓单额度(仓单贸易) 0:否 1:是
+    @SerializedName("openmethod")
+    val openmethod : String? = "",//开盘模式 - 0 自动 1手动
+    @SerializedName("orderindex")
+    val orderindex : String? = "",//排序
+    @SerializedName("otcuserid")
+    val otcuserid : String? = "",//场外期权做市商[场外期权]
+    @SerializedName("outersynctime")
+    val outersynctime : String? = "",//外部同步时间点(h24:mi:ss)[场外期权]
+    @SerializedName("paylaterflag")
+    val paylaterflag : String? = "",//是否支持后付 - 0:不支持 1;支持 - [挂牌点选 所有权、预售挂牌支持]
+    @SerializedName("pendingflag")
+    val pendingflag : String? = "",//待开市时间标识[通道交易-对冲] - 0:当日 1:上日
+    @SerializedName("pendingtime")
+    val pendingtime : String? = "",//待开市时间通道交易-对冲
+    @SerializedName("performancetempid")
+    val performancetempid : String? = "",//履约计划模板ID - 作废
+    @SerializedName("premiumquotemode")
+    val premiumquotemode : String? = "",//权利金报价方式 - 1:自动 2:手动
+    @SerializedName("rebateratio")
+    val rebateratio : String? = "",//返利比率[竞价式]
+    @SerializedName("reckonorder")
+    val reckonorder : String? = "",//结算顺序
+    @SerializedName("reckonpricealgorithm")
+    val reckonpricealgorithm : String? = "",//结算价算法: 1:最后多少笔成交价加权平均 2:最后多少秒成交价加权平均 3:全天加权平均 4:最后一口价 5.买一价 6.卖一价 7.买一卖一均价 8.外部结算价
+    @SerializedName("reckonpriceparam")
+    val reckonpriceparam : String? = "",//结算价参数
+    @SerializedName("reckontime")
+    val reckontime : String? = "",//结算时间通道交易-对冲
+    @SerializedName("roleprioritytype")
+    val roleprioritytype : String? = "",//角色优先类型 - 1:无 2:报价商优先 3:非报价商优先 [16:挂牌点选]
+    @SerializedName("selllistingauditflag")
+    val selllistingauditflag : String? = "",//卖挂牌是否需要审核(仓单贸易) - 0:不需要 1:需要
+    @SerializedName("trademarkettype")
+    val trademarkettype : String? = "",//交易市场类型 - 1:合约市场 2:外部市场 3:仓单市场
+    @SerializedName("trademode")
+    val trademode : String? = "",//交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
+    @SerializedName("tradeproperty")
+    val tradeproperty : String? = "",//交易属性 - 1:收益权(可做空) 2:所有权(不可做空) 3:期权 4:现货 5:参考行情 6:通道交易 7:币交易 8:场外期权
+    @SerializedName("tradetype")
+    val tradetype : String? = "",//下单方式[通道交易] - 1:直接转单 2:净头寸下单
+    @SerializedName("updatereckonpriceinterval")
+    val updatereckonpriceinterval : String? = ""//输入结算价时长(分钟) [1:手工输入(自动)]
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        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(auctionwrtype)
+        parcel.writeString(canacceptquote)
+        parcel.writeString(cangoodsexercise)
+        parcel.writeString(cangoodsexercisetype)
+        parcel.writeString(canmanualquotestrike)
+        parcel.writeString(canmutistage)
+        parcel.writeString(canpreexercise)
+        parcel.writeString(clearinterval)
+        parcel.writeString(contracttmp)
+        parcel.writeString(exchareaid)
+        parcel.writeString(financemarketid)
+        parcel.writeString(goodstype)
+        parcel.writeString(hasrebate)
+        parcel.writeString(hastradecredit)
+        parcel.writeString(haswr)
+        parcel.writeString(isdeductmargin)
+        parcel.writeString(isrecordsource)
+        parcel.writeString(isreleasemargin)
+        parcel.writeString(isupdatereckonprice)
+        parcel.writeString(listingmode)
+        parcel.writeString(marginformula)
+        parcel.writeString(marginformula2)
+        parcel.writeString(marketid)
+        parcel.writeString(marketname)
+        parcel.writeString(marketsectionid)
+        parcel.writeString(marketserviceid)
+        parcel.writeString(marketstatus)
+        parcel.writeString(markettype)
+        parcel.writeString(matchermode)
+        parcel.writeString(nowrquotaflag)
+        parcel.writeString(openmethod)
+        parcel.writeString(orderindex)
+        parcel.writeString(otcuserid)
+        parcel.writeString(outersynctime)
+        parcel.writeString(paylaterflag)
+        parcel.writeString(pendingflag)
+        parcel.writeString(pendingtime)
+        parcel.writeString(performancetempid)
+        parcel.writeString(premiumquotemode)
+        parcel.writeString(rebateratio)
+        parcel.writeString(reckonorder)
+        parcel.writeString(reckonpricealgorithm)
+        parcel.writeString(reckonpriceparam)
+        parcel.writeString(reckontime)
+        parcel.writeString(roleprioritytype)
+        parcel.writeString(selllistingauditflag)
+        parcel.writeString(trademarkettype)
+        parcel.writeString(trademode)
+        parcel.writeString(tradeproperty)
+        parcel.writeString(tradetype)
+        parcel.writeString(updatereckonpriceinterval)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<TjmdMarketSectionConfigData> {
+        override fun createFromParcel(parcel: Parcel): TjmdMarketSectionConfigData {
+            return TjmdMarketSectionConfigData(parcel)
+        }
+
+        override fun newArray(size: Int): Array<TjmdMarketSectionConfigData?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}

+ 3 - 2
RMA/app/src/main/java/cn/muchinfo/rma/netManage/base/interceptor/LoggingInterceptor.kt

@@ -1,5 +1,6 @@
 package cn.muchinfo.rma.netManage.base.interceptor
 
+import cn.muchinfo.rma.BuildConfig
 import com.blankj.utilcode.util.JsonUtils
 import com.blankj.utilcode.util.LogUtils
 import okhttp3.*
@@ -65,7 +66,7 @@ class LoggingInterceptor(
 
         val logRequest =
             printLevel == Level.ALL || printLevel != Level.NONE && printLevel == Level.REQUEST
-        if (logRequest) {
+        if (logRequest && BuildConfig.DEBUG) {
             //打印请求信息
             if (request.body() != null && isParseable(
                     request.body()!!.contentType()
@@ -97,7 +98,7 @@ class LoggingInterceptor(
         if (responseBody != null && isParseable(responseBody.contentType())) {
             bodyString = printResult(request, originalResponse, logResponse)
         }
-        if (logResponse) {
+        if (logResponse && BuildConfig.DEBUG) {
             val segmentList =
                 request.url().encodedPathSegments()
             val header = originalResponse.headers().toString()

+ 69 - 19
RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt

@@ -1,6 +1,7 @@
 package cn.muchinfo.rma.view
 
 
+import android.content.Intent
 import android.graphics.Color
 import android.os.Bundle
 import android.view.KeyEvent
@@ -25,9 +26,11 @@ import cn.muchinfo.rma.view.base.main.SeaKingMainFragment
 import cn.muchinfo.rma.view.base.platinumtreasure.PlatinumTreasureFragment
 import cn.muchinfo.rma.view.base.procurement.ProcurementFragment
 import cn.muchinfo.rma.view.base.recycling.RecyclingFragment
+import cn.muchinfo.rma.view.base.reference.ReferenceFragment
 import cn.muchinfo.rma.view.base.report.ReportFragment
 import cn.muchinfo.rma.view.base.sale.SaleFragment
 import cn.muchinfo.rma.view.base.spot.SpotFragment
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketFragment
 import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptFragment
 import cn.muchinfo.rma.view.base.yrdzpurchase.YrdzDdjyFragment
 import cn.muchinfo.rma.view.eventbus.EventConstent
@@ -156,6 +159,10 @@ class MainActivity : BaseActivity<MainViewModel>() {
         }
     }
 
+    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+        super.onActivityResult(requestCode, resultCode, data)
+    }
+
     fun initFragmentData() {
 
         if (SPUtils.getInstance().getString(Constant.oem) == "yrdz"){
@@ -225,28 +232,71 @@ class MainActivity : BaseActivity<MainViewModel>() {
             newSelectIcon.add(R.mipmap.qhj_main_tab_select)
         }
 
-        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnstcdmy") == true) {
-            //华南顺通 仓单贸易
-            newFragments.add(warehouseReceiptFragment)
-            newTabText.add("仓单贸易")
-            newNormalIcon.add(R.mipmap.warehous_recepit_normal)
-            newSelectIcon.add(R.mipmap.warehous_recepit_celect)
-        }
+        if (SPUtils.getInstance().getString(Constant.oem) == "tjmd"){
+            val tjmdMarketList = GlobalDataCollection.instance?.getTjmdShowMarketSectionList()
+            tjmdMarketList?.forEach {
+                //由于在板块信息中没有区分的字段,所以用子列表内的trademodel判断是否是参考行情的页面(参考行情是后期发现有的,没有柔合到TjmdMarketFragment内)
+                var isReference = false
+                it.mlist?.forEach {
+                    if (it.trademode == "99"){
+                        isReference = true
+                    }
+                }
+                if (isReference){
+                    val referenceFragment = ReferenceFragment()
+                    val bundle = Bundle()
+                    bundle.putString("titlename",it.marketsectionname)
+                    referenceFragment.arguments = bundle
+                    newFragments.add(referenceFragment)
+                    newTabText.add(it.marketsectionname ?: "")
+                }else{
+                    val tjmdMarketFragment = TjmdMarketFragment()
+                    val bundle = Bundle()
+                    bundle.putString("titlename",it.marketsectionname)
+                    bundle.putString("index",tjmdMarketList.indexOf(it).toString())
+                    tjmdMarketFragment.arguments = bundle
+                    newFragments.add(tjmdMarketFragment)
+                    newTabText.add(it.marketsectionname ?: "")
+                }
 
-        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnstcdys") == true) {
-            //华南顺通 仓单预售
-            newFragments.add(hnstcdysFragment)
-            newTabText.add("仓单预售")
-            newNormalIcon.add(R.mipmap.yrdz_cdys_normal)
-            newSelectIcon.add(R.mipmap.yrdz_yscd_select)
+                if (tjmdMarketList.indexOf(it) == 0){
+                    newNormalIcon.add(R.mipmap.warehous_recepit_normal)
+                    newSelectIcon.add(R.mipmap.warehous_recepit_celect)
+                }else if (tjmdMarketList.indexOf(it) == 1){
+                    newNormalIcon.add(R.mipmap.yrdz_cdys_normal)
+                    newSelectIcon.add(R.mipmap.yrdz_yscd_select)
+                }else{
+                    newNormalIcon.add(R.mipmap.yrdz_ddjy_normal)
+                    newSelectIcon.add(R.mipmap.yrdz_ddjy_select)
+                }
+            }
         }
 
-        if(GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnsthyjy") == true){
-            //华南顺通 订单交易
-            newFragments.add(yrdzDdjyFragment)
-            newTabText.add("订单交易")
-            newNormalIcon.add(R.mipmap.yrdz_ddjy_normal)
-            newSelectIcon.add(R.mipmap.yrdz_ddjy_select)
+        //云融大宗就用原本的写死的仓单贸易/预售/订单交易
+        if (SPUtils.getInstance().getString(Constant.oem) == "yrdz"){
+            if (GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnstcdmy") == true) {
+                //华南顺通 仓单贸易
+                newFragments.add(warehouseReceiptFragment)
+                newTabText.add("仓单贸易")
+                newNormalIcon.add(R.mipmap.warehous_recepit_normal)
+                newSelectIcon.add(R.mipmap.warehous_recepit_celect)
+            }
+
+            if (GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnstcdys") == true) {
+                //华南顺通 仓单预售
+                newFragments.add(hnstcdysFragment)
+                newTabText.add("仓单预售")
+                newNormalIcon.add(R.mipmap.yrdz_cdys_normal)
+                newSelectIcon.add(R.mipmap.yrdz_yscd_select)
+            }
+
+            if(GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnsthyjy") == true){
+                //华南顺通 订单交易
+                newFragments.add(yrdzDdjyFragment)
+                newTabText.add("订单交易")
+                newNormalIcon.add(R.mipmap.yrdz_ddjy_normal)
+                newSelectIcon.add(R.mipmap.yrdz_ddjy_select)
+            }
         }
 
         if (GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnstmine") == true) {

+ 1 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/dialog/Dialog.kt

@@ -581,6 +581,7 @@ fun Dialog.autoDismissAfterShow(
 data class SelectData(
     var id: String,//现货商品id
     var value: String,
+    var marketId : String = "0",
     var goodsCode : String = "",//用于选择商品时写入code
     var goodsgroupid : String = "",//商品组id
     var deliverygoodsid: String = "",//现货合同中的现货品种id

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

@@ -17,8 +17,10 @@ object Constant {
 //    const val baseurl = "http://192.168.31.104:8080/cfg?key=test_104"//李倩云融 18611112222
 //    const val baseurl = "http://192.168.31.203:8080/cfg?key=test_203"//李倩云融 18611112222
 //
-    const val baseurl = "http://192.168.31.204:8080/cfg?key=test_204"// 瑶姐 云融 190000000001 123456
+//    const val baseurl = "http://192.168.31.204:8080/cfg?key=test_204"// 瑶姐 云融 190000000001 123456
+    const val baseurl = "http://192.168.31.202:8080/cfg?key=test_202"// 瑶姐 云融 190000000001 123456
 //    const val baseurl = "http://192.168.31.205:8080/cfg?key=test_205"// 瑶姐 云融 190000000001 123456
+//    const val baseurl = "http://192.168.31.201:8080/cfg?key=test_201"// 邓工 千海金
 
 //    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 - 8
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/CdysCircleUI.kt

@@ -176,7 +176,7 @@ class CdysCircleSellUI(private val fragment : Fragment,private val viewModel: Hn
     @RequiresApi(Build.VERSION_CODES.N)
     val root = _FrameLayout(fragment.activity!!).apply {
         verticalLayout {
-            viewModel.queryOrderSellQuoteMyq()
+            viewModel.queryysOrderSellQuoteMyq()
 //            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
             tradeCircleContentAdapter.setOnContentScrollListener(this@CdysCircleSellUI)
             linearLayout {
@@ -224,14 +224,14 @@ class CdysCircleSellUI(private val fragment : Fragment,private val viewModel: Hn
             statusLayout(contentBlock = {
                 statusLayout = this
                 setRetryAction {
-                    viewModel.queryOrderSellQuoteMyq()
+                    viewModel.queryysOrderSellQuoteMyq()
                 }
                 swipeToLoadLayout {
                     swipeToLayout = this
                     setEnableRefresh(true)
                     setEnableLoadMore(true)
                     setOnRefreshListener {
-                        viewModel.queryOrderSellQuoteMyq()
+                        viewModel.queryysOrderSellQuoteMyq()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
@@ -263,7 +263,7 @@ class CdysCircleSellUI(private val fragment : Fragment,private val viewModel: Hn
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
 
-            viewModel.circleSellContentDataList.bindOptional(context) {
+            viewModel.yscircleSellContentDataList.bindOptional(context) {
                 if (it?.isEmpty() == true || it?.size == 0) {
                     statusLayout.showEmpty()
                 } else {
@@ -315,7 +315,7 @@ class CdysCircleBuyUI(private val fragment : Fragment,private val viewModel: Hns
     @RequiresApi(Build.VERSION_CODES.N)
     val root = _FrameLayout(fragment.activity!!).apply {
         verticalLayout {
-            viewModel.queryOrderBuyQuoteMyq()
+            viewModel.queryysOrderBuyQuoteMyq()
 //            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
             tradeCircleContentAdapter.setOnContentScrollListener(this@CdysCircleBuyUI)
             linearLayout {
@@ -363,14 +363,14 @@ class CdysCircleBuyUI(private val fragment : Fragment,private val viewModel: Hns
             statusLayout(contentBlock = {
                 statusLayout = this
                 setRetryAction {
-                    viewModel.queryOrderBuyQuoteMyq()
+                    viewModel.queryysOrderBuyQuoteMyq()
                 }
                 swipeToLoadLayout {
                     swipeToLayout = this
                     setEnableRefresh(true)
                     setEnableLoadMore(true)
                     setOnRefreshListener {
-                        viewModel.queryOrderBuyQuoteMyq()
+                        viewModel.queryysOrderBuyQuoteMyq()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
@@ -402,7 +402,7 @@ class CdysCircleBuyUI(private val fragment : Fragment,private val viewModel: Hns
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
 
-            viewModel.circleBuyContentDataList.bindOptional(context) {
+            viewModel.yscircleBuyContentDataList.bindOptional(context) {
                 if (it?.isEmpty() == true || it?.size == 0) {
                     statusLayout.showEmpty()
                 } else {

+ 10 - 10
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/CdysWarehouseScreeningDialog.kt

@@ -281,8 +281,8 @@ fun AppCompatActivity.CdysScreeningDialog(
                     gravity = Gravity.CENTER_VERTICAL
                     textView {
                         onThrottleFirstClick {
-                            viewModel.queryOneOrderQuote()
-                            viewModel.queryFloatOrderQuote()
+                            viewModel.queryysOneOrderQuote()
+                            viewModel.queryysFloatOrderQuote()
                             dialog.dismiss()
                             viewModel.resetSelectContent()
                         }
@@ -302,7 +302,7 @@ fun AppCompatActivity.CdysScreeningDialog(
                                 return@onThrottleFirstClick
                             }
                             if (type == "1") {
-                                viewModel.queryOneOrderQuote(
+                                viewModel.queryysOneOrderQuote(
                                     wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                                         ?: "",
                                     warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
@@ -310,7 +310,7 @@ fun AppCompatActivity.CdysScreeningDialog(
                                     deliverymonth = tradedatetextview.text.toString()
                                 )
                             } else if (type == "2") {
-                                viewModel.queryFloatOrderQuote(
+                                viewModel.queryysFloatOrderQuote(
                                     wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                                         ?: "",
                                     warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
@@ -319,13 +319,13 @@ fun AppCompatActivity.CdysScreeningDialog(
                                 )
                             }else{
                                 if (buyOrSell == "0") {//查询贸易圈买挂牌
-                                    viewModel.queryOrderSellQuoteMyq(
+                                    viewModel.queryysOrderSellQuoteMyq(
                                         wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                                             ?: "",
                                         dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
                                     )
                                 } else {//查询贸易圈卖挂牌
-                                    viewModel.queryOrderBuyQuoteMyq(
+                                    viewModel.queryysOrderBuyQuoteMyq(
                                         wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                                             ?: "",
                                         dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
@@ -366,7 +366,7 @@ fun AppCompatActivity.CdysScreeningDialog(
                                 return@onThrottleFirstClick
                             }
                             if (type == "1") {
-                                viewModel.queryOneOrderQuoteByListed(
+                                viewModel.queryysOneOrderQuoteByListed(
                                     wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                                         ?: "",
                                     warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
@@ -374,7 +374,7 @@ fun AppCompatActivity.CdysScreeningDialog(
                                     deliverymonth = tradedatetextview.text.toString()
                                 )
                             } else if (type == "2"){
-                                viewModel.queryFloatOrderQuoteByListed(
+                                viewModel.queryysFloatOrderQuoteByListed(
                                     wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                                         ?: "",
                                     warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
@@ -383,14 +383,14 @@ fun AppCompatActivity.CdysScreeningDialog(
                                 )
                             }else{
                                 if (buyOrSell == "0") {//查询贸易圈买挂牌
-                                    viewModel.queryOrderSellQuoteMyqByListed(
+                                    viewModel.queryysOrderSellQuoteMyqByListed(
                                         wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                                             ?: "",
                                         dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
                                     )
 
                                 } else {//查询贸易圈卖挂牌
-                                    viewModel.queryOrderBuyQuoteMyqByListed(
+                                    viewModel.queryysOrderBuyQuoteMyqByListed(
                                         wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                                             ?: "",
                                         dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")

+ 19 - 14
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysFragment.kt

@@ -47,6 +47,7 @@ import java.util.concurrent.TimeUnit
 /**
  * 华南顺通 仓单预售页面
  */
+@Suppress("DEPRECATION")
 class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
 
     lateinit var segment: QMUITabSegment
@@ -113,8 +114,8 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMessageEvent(messageEvent: MessageEvent) {
         if (messageEvent.messageType == EventConstent.refresh_circle_list) {//接到通知更新贸易圈列表
-             viewModel.queryOrderSellQuoteMyq()
-             viewModel.queryOrderBuyQuoteMyq()
+             viewModel.queryysOrderSellQuoteMyq()
+             viewModel.queryysOrderBuyQuoteMyq()
         }
     }
 
@@ -140,12 +141,12 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
         mdDisposable = Flowable.interval(5, 10, TimeUnit.SECONDS)
             .doOnNext {
                 if (selectedTabIndex == 0){
-                    viewModel.queryOneOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                    viewModel.queryysOneOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                         ?: "",
                         warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
                         dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
                 }else{
-                    viewModel.queryFloatOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                    viewModel.queryysFloatOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                         ?: "",
                         warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
                         dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
@@ -205,12 +206,16 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
                         gravity = Gravity.CENTER_VERTICAL
                         imageView {
                             onThrottleFirstClick {
-                                if (selectedTabIndex == 0){
-                                    getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),"-1","1").show()
-                                }else if (selectedTabIndex == 1){
-                                    getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),"-1","2").show()
-                                }else{
-                                    getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),cdysCircleUI.selectedTabIndex.toString(),"3").show()
+                                when (selectedTabIndex) {
+                                    0 -> {
+                                        getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),"-1","1").show()
+                                    }
+                                    1 -> {
+                                        getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),"-1","2").show()
+                                    }
+                                    else -> {
+                                        getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),cdysCircleUI.selectedTabIndex.toString(),"3").show()
+                                    }
                                 }
                             }
                             imageResource = R.mipmap.yrdz_screening_icon
@@ -308,7 +313,7 @@ class YSOnePriceUI(private val fragment : Fragment, private val viewModel: Hnstc
 
     val root = _FrameLayout(fragment.context!!).apply {
         verticalLayout {
-            viewModel.queryOneOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+            viewModel.queryysOneOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                 ?: "",
                 warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
                 dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
@@ -418,7 +423,7 @@ class YSOnePriceUI(private val fragment : Fragment, private val viewModel: Hnstc
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
 
-            viewModel.onePrcieDataList.bindOptional(context) {
+            viewModel.ysonePrcieDataList.bindOptional(context) {
 //                if (it?.size ?: 0 > 10){
 //                    lastShow = 10
 //                }else{
@@ -472,7 +477,7 @@ class YSFloatingPriceUI(private val fragment : Fragment, private val viewModel:
 
     val root = _FrameLayout(fragment.context!!).apply {
         verticalLayout {
-            viewModel.queryFloatOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+            viewModel.queryysFloatOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
                 ?: "",
                 warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
                 dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
@@ -582,7 +587,7 @@ class YSFloatingPriceUI(private val fragment : Fragment, private val viewModel:
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
 
-            viewModel.floatProceDataList.bindOptional(context) {
+            viewModel.ysfloatProceDataList.bindOptional(context) {
 //                if (it?.size ?: 0 > 10){
 //                    lastShow = 10
 //                }else{

+ 18 - 18
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysViewModel.kt

@@ -29,10 +29,10 @@ class HnstcdysViewModel : BaseViewModel(){
     val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
 
     //一口价报价牌数据
-    val onePrcieDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
+    val ysonePrcieDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
 
     //浮动价报价牌数据
-    val floatProceDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
+    val ysfloatProceDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
 
     //用于控制挂牌弹窗的消失 当值设置为true时,控制dialog隐藏
     val controlDialogDisappear : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
@@ -77,20 +77,20 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 贸易圈卖挂牌单据数据
      */
-    val circleSellContentDataList: MutableLiveData<List<OrderQuoteMyqData>> = MutableLiveData()
+    val yscircleSellContentDataList: MutableLiveData<List<OrderQuoteMyqData>> = MutableLiveData()
 
 
     /**
      * 贸易圈买挂牌单据数据
      */
-    val circleBuyContentDataList: MutableLiveData<List<OrderQuoteMyqData>> = MutableLiveData()
+    val yscircleBuyContentDataList: MutableLiveData<List<OrderQuoteMyqData>> = MutableLiveData()
 
 
     //-----------------贸易圈买挂牌-----------------
     /**
      * 查询贸易圈卖挂牌
      */
-    fun queryOrderBuyQuoteMyq(wrstandardid : String = "",dgitemname : String = ""){
+    fun queryysOrderBuyQuoteMyq(wrstandardid : String = "",dgitemname : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("buyorsell","0")
@@ -104,7 +104,7 @@ class HnstcdysViewModel : BaseViewModel(){
         }
         MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
             if (isSuccess){
-                circleBuyContentDataList.postValue(getcircleContentDataListRightData(respData ?: arrayListOf()))
+                yscircleBuyContentDataList.postValue(getyscircleContentDataListRightData(respData ?: arrayListOf()))
             }
         }
     }
@@ -115,7 +115,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 查询贸易圈买挂牌-筛选挂牌时
      */
-    fun queryOrderBuyQuoteMyqByListed(wrstandardid : String = "",dgitemname : String = ""){
+    fun queryysOrderBuyQuoteMyqByListed(wrstandardid : String = "",dgitemname : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("buyorsell","0")
@@ -143,7 +143,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 查询贸易圈卖挂牌-筛选挂牌
      */
-    fun queryOrderSellQuoteMyqByListed(wrstandardid : String = "",dgitemname : String = ""){
+    fun queryysOrderSellQuoteMyqByListed(wrstandardid : String = "",dgitemname : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("buyorsell","1")
@@ -169,7 +169,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 查询贸易圈卖挂牌
      */
-    fun queryOrderSellQuoteMyq(wrstandardid : String = "",dgitemname : String = ""){
+    fun queryysOrderSellQuoteMyq(wrstandardid : String = "",dgitemname : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("buyorsell","1")
@@ -183,7 +183,7 @@ class HnstcdysViewModel : BaseViewModel(){
         }
         MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
             if (isSuccess){
-                circleSellContentDataList.postValue(getcircleContentDataListRightData(respData ?: arrayListOf()))
+                yscircleSellContentDataList.postValue(getyscircleContentDataListRightData(respData ?: arrayListOf()))
             }
         }
     }
@@ -191,7 +191,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 贸易圈卖挂牌组装右侧数据 "挂牌方","价格","数量","议价","整单","挂牌有效期","履约保证金","履约方式","仓库"
      */
-    fun getcircleContentDataListRightData(respData: List<OrderQuoteMyqData>) : List<OrderQuoteMyqData>{
+    fun getyscircleContentDataListRightData(respData: List<OrderQuoteMyqData>) : List<OrderQuoteMyqData>{
         val newList = arrayListOf<OrderQuoteMyqData>()
         respData.forEach {
             val newRightData = arrayListOf<String>()
@@ -222,7 +222,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 查询相应要素下的预售仓单
      */
-    fun queryorderSummaryWrPosition(deliverygoodsid : String = "",warehouseid : String = "",wrstandardid : String = "",dgitemname : String = ""){
+    fun queryysorderSummaryWrPosition(deliverygoodsid : String = "",warehouseid : String = "",wrstandardid : String = "",dgitemname : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("querytype","2")
@@ -575,7 +575,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 查询一口价报价牌筛选
      */
-    fun queryOneOrderQuoteByListed(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
+    fun queryysOneOrderQuoteByListed(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("marketid","17201")
             put("wrpricetype","1")
@@ -610,7 +610,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 查询一口价报价牌
      */
-    fun queryOneOrderQuote(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
+    fun queryysOneOrderQuote(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("marketid","17201")
             put("wrpricetype","1")
@@ -631,7 +631,7 @@ class HnstcdysViewModel : BaseViewModel(){
 
         MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){ isSuccess, respData, error ->
             if (isSuccess){
-                onePrcieDataList.postValue(respData)
+                ysonePrcieDataList.postValue(respData)
             }
         }
     }
@@ -639,7 +639,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 查询浮动价报价牌筛选
      */
-    fun queryFloatOrderQuoteByListed(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
+    fun queryysFloatOrderQuoteByListed(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("marketid","17201")
             put("wrpricetype","2")//价格方式 - 1:固定价 2-浮动价
@@ -674,7 +674,7 @@ class HnstcdysViewModel : BaseViewModel(){
     /**
      * 查询浮动价报价牌
      */
-    fun queryFloatOrderQuote(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
+    fun queryysFloatOrderQuote(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("marketid","17201")
             put("wrpricetype","2")//价格方式 - 1:固定价 2-浮动价
@@ -695,7 +695,7 @@ class HnstcdysViewModel : BaseViewModel(){
 
         MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){ isSuccess, respData, error ->
             if (isSuccess){
-                floatProceDataList.postValue(respData)
+                ysfloatProceDataList.postValue(respData)
             }
         }
     }

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/dialog/HnstFloatListedDialog.kt

@@ -128,7 +128,7 @@ fun AppCompatActivity.HnstFloatListedDialog(
         //对资金信息进行初始化
         viewModel.resetAccountData()
         //查询是否有相应的预售仓单
-        viewModel.queryorderSummaryWrPosition(deliverygoodsid = data.DeliveryGoodsID ?: "",wrstandardid = data.WrFtWrstandard?.wrstandardid ?: "",warehouseid = data.getWarehouseid(),dgitemname = data.getdgitemname())
+        viewModel.queryysorderSummaryWrPosition(deliverygoodsid = data.DeliveryGoodsID ?: "",wrstandardid = data.WrFtWrstandard?.wrstandardid ?: "",warehouseid = data.getWarehouseid(),dgitemname = data.getdgitemname())
 
         viewModel.queryQuoteDayByListed(
             tag = tag,

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

@@ -50,6 +50,7 @@ import org.jetbrains.anko.support.v4.viewPager
  * @receiver AppCompatActivity
  * @return CustomDialogFragment
  */
+@Suppress("DEPRECATION")
 fun AppCompatActivity.HnstOneListedDialog(
     activity: AppCompatActivity,
     type: String,
@@ -119,7 +120,7 @@ fun AppCompatActivity.HnstOneListedDialog(
         backgroundColor = Color.parseColor("#5f000000")
         initMenuData()
         viewModel.resetAccountData()
-        viewModel.queryorderSummaryWrPosition(deliverygoodsid = data.DeliveryGoodsID ?: "",wrstandardid = data.WrFtWrstandard?.wrstandardid ?: "",warehouseid = data.getWarehouseid(),dgitemname = data.getdgitemname())
+        viewModel.queryysorderSummaryWrPosition(deliverygoodsid = data.DeliveryGoodsID ?: "",wrstandardid = data.WrFtWrstandard?.wrstandardid ?: "",warehouseid = data.getWarehouseid(),dgitemname = data.getdgitemname())
         verticalLayout {
             viewModel.controlDialogDisappear.bindOptional(context) {
                 if (it == true) {

+ 36 - 6
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainFragment.kt

@@ -834,7 +834,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                         linearLayout {
 
-                            //交易撤
+                            //现货仓
                             verticalLayout {
                                 onThrottleFirstClick {
                                     val intent = Intent()
@@ -858,8 +858,9 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                             }.lparams(0, autoSize(200), 1f)
 
-                            //成交记录
+                            //预售仓单
                             verticalLayout {
+                                visibility = View.GONE//任务 2621
                                 onThrottleFirstClick {
                                     val intent = Intent()
                                     intent.setClass(context, BookingWarehouseActivity::class.java)
@@ -881,10 +882,12 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                                 }
                             }.lparams(0, autoSize(200), 1f)
 
-                            //资金流水
+                            //商品订单
                             verticalLayout {
+                                visibility = View.GONE//任务 2621
                                 onThrottleFirstClick {
                                     val intent = Intent()
+                                    intent.putExtra("type","1")
                                     intent.setClass(context, ContractOrdersActivity::class.java)
                                     ActivityUtils.startActivity(intent)
                                 }
@@ -904,7 +907,31 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                                 }
                             }.lparams(0, autoSize(200), 1f)
 
-                            //提货查询
+                            //掉期订单
+                            verticalLayout {
+                                onThrottleFirstClick {
+                                    val intent = Intent()
+                                    intent.putExtra("type","2")
+                                    intent.setClass(context, ContractOrdersActivity::class.java)
+                                    ActivityUtils.startActivity(intent)
+                                }
+                                gravity = Gravity.CENTER_HORIZONTAL
+                                imageView {
+                                    imageResource = R.mipmap.hnst_dqdd_icon
+                                }.lparams(autoSize(60), autoSize(60)) {
+                                    topMargin = autoSize(45)
+                                }
+
+                                textView {
+                                    text = "掉期订单"
+                                    textSizeAuto = 31
+                                    textColorInt = R.color.rma_black_33
+                                }.lparams(wrapContent, wrapContent) {
+                                    topMargin = autoSize(10)
+                                }
+                            }.lparams(0, autoSize(200), 1f)
+
+                            //履约信息
                             verticalLayout {
 
                                 onThrottleFirstClick {
@@ -986,6 +1013,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                         itemView()
 
                         linearLayout {
+                            visibility = View.GONE//任务 2621
                             onThrottleFirstClick {
                                 val intent = Intent()
                                 intent.setClass(context, FinanceManagementActivity::class.java)
@@ -1032,9 +1060,10 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                             }
                         }.lparams(com.qmuiteam.qmui.kotlin.matchParent, autoSize(140))
 
-                        itemView()
+//                        itemView()
 
                         linearLayout {
+                            visibility = View.GONE//任务 2621
                             onThrottleFirstClick {
                                 val intent = Intent()
                                 intent.setClass(context, PerformanceTemplateActivity::class.java)
@@ -1137,9 +1166,10 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                             }
                         }.lparams(com.qmuiteam.qmui.kotlin.matchParent, autoSize(140))
 
-                        itemView()
+//                        itemView()
 
                         linearLayout {
+                            visibility = View.GONE//任务 2621
                             onThrottleFirstClick {
                                 val intent = Intent()
                                 intent.setClass(context, MainFriendActivity::class.java)

+ 18 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/ContractOrdersActivity.kt

@@ -1,3 +1,5 @@
+@file:Suppress("DEPRECATION")
+
 package cn.muchinfo.rma.view.base.hnstmain.contractorders
 
 import android.os.Build
@@ -49,8 +51,13 @@ class ContractOrdersActivity : BaseActivity<ContractOrdersViewModel>() {
     var selectedTabIndex: Int = 0
     private lateinit var viewPager: ViewPager
 
+    /**
+     * 1 是商品订单 2 是掉期订单
+     */
+    val type by lazy { intent.getStringExtra("type") }
+
     //合约汇总单
-    val positionUI by lazy { PositionUI(this, viewModel) }
+    val positionUI by lazy { PositionUI(this, viewModel,type ?: "1") }
 
     //委托单
     val orderUI by lazy { OrderUI(this, viewModel) }
@@ -87,8 +94,11 @@ class ContractOrdersActivity : BaseActivity<ContractOrdersViewModel>() {
         newTabsArray.add("成交")
         uiList.add(traderUI.root)
 
-        newTabsArray.add("交收")
-        uiList.add(deliveryUI.root)
+        //是商品订单时有交收页面
+        if (type == "1"){
+            newTabsArray.add("交收")
+            uiList.add(deliveryUI.root)
+        }
 
         newPagerAdapter = object : PagerAdapter() {
 
@@ -129,7 +139,7 @@ class ContractOrdersActivity : BaseActivity<ContractOrdersViewModel>() {
 
     override fun onResume() {
         super.onResume()
-        viewModel.queryContractTradePosition()
+        viewModel.queryContractTradePosition(type = type ?: "1")
         viewModel.queryContractTradeOrderDetail()
         viewModel.queryContractTradeDetail()
         viewModel.queryWrDeliveryDetail()
@@ -201,7 +211,8 @@ class ContractOrdersActivity : BaseActivity<ContractOrdersViewModel>() {
  */
 class PositionUI(
     private val activity: AppCompatActivity,
-    private val viewModel: ContractOrdersViewModel
+    private val viewModel: ContractOrdersViewModel,
+    private val type : String//1 是商品订单 2 是掉期订单
 ) : ContractPositionContentAdapter.OnContentScrollListener {
 
     private lateinit var swipeToLayout: SwipeToLoadLayout
@@ -255,7 +266,7 @@ class PositionUI(
     @RequiresApi(Build.VERSION_CODES.N)
     val root = _FrameLayout(activity).apply {
         verticalLayout {
-            viewModel.queryContractPositionTitle(Constant.table_mobile_hnst_hydd_hyhz)
+            viewModel.queryContractPositionTitle(Constant.table_mobile_hnst_hydd_hyhz,type)
             contractPositionContentAdapter.setOnContentScrollListener(this@PositionUI)
 
             linearLayout {
@@ -319,7 +330,7 @@ class PositionUI(
                     setEnableRefresh(true)
                     setEnableLoadMore(true)
                     setOnRefreshListener {
-                        viewModel.queryContractTradePosition()
+                        viewModel.queryContractTradePosition(type = type)
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)

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

@@ -423,8 +423,9 @@ class ContractOrdersViewModel : BaseViewModel(){
     //-----------------合约汇总------------------
     /**
      * 查询合约汇总头部数据
+     * //1 是商品订单 2 是掉期订单
      */
-    fun queryContractPositionTitle(tableKey: String){
+    fun queryContractPositionTitle(tableKey: String,type : String){
         val params = mutableMapOf<String, String>().apply {
             put("tableKey", tableKey)
             put("tableType", "3")
@@ -436,17 +437,21 @@ class ContractOrdersViewModel : BaseViewModel(){
                     t1.orderindex?.toInt()?.minus(t2.orderindex?.toInt() ?: 0) ?: 0
                 })
                 positionTitleDataList.postValue(newlist)
-                queryContractTradePosition()
+                queryContractTradePosition(type = type)
             }
         }
     }
 
     /**
      * 查询合约汇总
+     * 1 是商品订单 2 是掉期订单
      */
-    fun queryContractTradePosition(){
+    fun queryContractTradePosition(type : String){
         val params = mutableMapOf<String,String>().apply {
             put("accountID", GlobalDataCollection.instance?.accountId?.toString() ?: "")
+            if (type == "2"){
+                put("tradeMode","46")
+            }
         }
         MyApplication.getInstance()?.contractGoodsManager?.queryContractTradePosition(params = params){ isSuccess, respData, error ->
             if (isSuccess){

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

@@ -303,7 +303,8 @@ class PerformanceTemplateViewModel : BaseViewModel(){
      */
     fun queryPermancePlanTmp(){
         val params = mutableMapOf<String,String>().apply {
-            put("userid",GlobalDataCollection.instance?.loginRsp?.userID?.toString() ?: "")
+//            put("userid",GlobalDataCollection.instance?.loginRsp?.userID?.toString() ?: "")
+            put("marketid",GlobalDataCollection.instance?.getMaketidByTrademode(17).toString())
         }
 
         MyApplication.getInstance()?.performanceManager?.queryPermancePlanTmp(params = params){isSuccess, respData, error ->

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

@@ -16,14 +16,9 @@ import androidx.annotation.RequiresApi
 import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.GlobalDataCollection
-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
 import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
 import cn.muchinfo.rma.view.autoWidget.*
@@ -39,7 +34,6 @@ import cn.muchinfo.rma.view.base.hnstmain.friend.SelectFriendListData
 import cn.muchinfo.rma.view.base.hnstmain.performancetemplate.SelectPerformanceTemplateActivity
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.contract.viewItemUI
-import cn.muchinfo.rma.view.base.main.addressmanagement.AddressSelectActivity
 import cn.muchinfo.rma.view.base.main.castsurely.JsonBean
 import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
 import com.blankj.utilcode.util.LogUtils
@@ -85,7 +79,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
     var opt1tx: JsonBean? = null
     var opt2tx: JsonBean.CityBean? = null
 
-    lateinit var main_seekbar : SeekBar
+    lateinit var main_seekbar: SeekBar
 
     /**
      * 查询所用的date 注意(页面显示时间规则yyyy-MM-dd,而接口请求规则yyyyMMdd,简直无fuck可说)
@@ -141,7 +135,9 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
 
 
     fun initData() {
-        listedType.postValue(SelectData(id = "1", value = "一口价"))
+        if (viewModel.getSelectTypeList().size == 1){
+            listedType.postValue(viewModel.getSelectTypeList().get(0))
+        }
         viewModel.initSelectGoodsInfo()
     }
 
@@ -339,28 +335,28 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
                             onThrottleFirstClick {
-                                val selectDataList = arrayListOf(
-                                    SelectData(
-                                        id = "1",
-                                        value = "一口价"
-                                    ),
-                                    SelectData(
-                                        id = "2",
-                                        value = "浮动价"
-                                    ),
-                                    SelectData(
-                                        id = "3",
-                                        value = "贸易圈"
-                                    )
-                                )
-                                creatBottomSheetDialog("请选择挂牌方式", selectDataList) {
+//                                val selectDataList = arrayListOf(
+//                                    SelectData(
+//                                        id = "1",
+//                                        value = "一口价市场"
+//                                    ),
+//                                    SelectData(
+//                                        id = "2",
+//                                        value = "浮动价市场"
+//                                    ),
+//                                    SelectData(
+//                                        id = "3",
+//                                        value = "贸易圈市场"
+//                                    )
+//                                )
+                                creatBottomSheetDialog("请选择交易市场", viewModel.getSelectTypeList()) {
                                     listedType.postValue(this)
                                 }
                             }
 
 
                             textView {
-                                text = "挂牌方式"
+                                text = "交易市场"
                                 textSizeAuto = 34
                                 textColorInt = R.color.rma_hint_text_color_ccc
                             }.lparams(wrapContent, wrapContent) {
@@ -566,12 +562,17 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
 
                             numberEditText3 {
                                 viewModel.quoteDayData.bindOptional(context) {
-                                    val MarketTradeConfig = GlobalDataCollection.instance?.marketTradeConfigData
+                                    val MarketTradeConfig =
+                                        GlobalDataCollection.instance?.marketTradeConfigData
                                     max =
-                                        it?.preclose?.times(MarketTradeConfig?.basisupratio?.toDouble() ?: 0.0)
+                                        it?.preclose?.times(
+                                            MarketTradeConfig?.basisupratio?.toDouble() ?: 0.0
+                                        )
                                             ?: 0.0
                                     min = it?.preclose?.times(-1.0)
-                                        ?.times(MarketTradeConfig?.basisdownratio?.toDouble() ?: 0.0) ?: 0.0
+                                        ?.times(
+                                            MarketTradeConfig?.basisdownratio?.toDouble() ?: 0.0
+                                        ) ?: 0.0
                                 }
 
                                 basisInputEdittext = this
@@ -632,9 +633,15 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
 
                                                 if (type == "1") {
 //                                                    main_seekbar.progress = value.toString().toDouble().div(data.enableqty?.toDouble() ?: 1.0).toInt()
-                                                    main_seekbar.progress = value.toString().toDouble().div(data.enableqty?.toDouble() ?: 1.0).times(100).toInt()
+                                                    main_seekbar.progress =
+                                                        value.toString().toDouble()
+                                                            .div(data.enableqty?.toDouble() ?: 1.0)
+                                                            .times(100).toInt()
                                                 } else {
-                                                    main_seekbar.progress = value.toString().toDouble().div(data1.creditenableqty?.toDouble() ?: 1.0).times(100).toInt()
+                                                    main_seekbar.progress =
+                                                        value.toString().toDouble().div(
+                                                            data1.creditenableqty?.toDouble() ?: 1.0
+                                                        ).times(100).toInt()
                                                 }
 
                                                 if (listedType.value?.id == "1" || listedType.value?.id == "3") {//一口价
@@ -955,13 +962,13 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                         viewItemUI()
 
                         linearLayout {
-                            listedType.bindOptional(context) {
-                                if (it?.id == "3") {
-                                    visibility = View.VISIBLE
-                                } else {
-                                    visibility = View.GONE
-                                }
-                            }
+//                            listedType.bindOptional(context) {
+//                                if (it?.id == "3") {
+//                                    visibility = View.VISIBLE
+//                                } else {
+//                                    visibility = View.GONE
+//                                }
+//                            }
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
                             onThrottleFirstClick {
@@ -1267,7 +1274,8 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                             .build(),
                                         TimevalidType = 4,
                                         FirstRatio = 0.0,
-                                        PerformanceTemplateID = 0,
+                                        PerformanceTemplateID = selectPerformanceStepData.value?.autoid?.toLong()
+                                            ?: 0,
                                         BuyOrSell = 1,
                                         PriceDisplayMode = 1,
                                         CanBargain = 0,
@@ -1298,7 +1306,8 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                         PriceMove = basisInputEdittext.text.toString().toDouble(),
                                         TimevalidType = 4,
                                         FirstRatio = 0.0,
-                                        PerformanceTemplateID = 0,
+                                        PerformanceTemplateID = selectPerformanceStepData.value?.autoid?.toLong()
+                                            ?: 0,
                                         BuyOrSell = 1,
                                         PriceDisplayMode = 1,
                                         CanBargain = 0,
@@ -1310,7 +1319,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                     ) {
                                         finish()
                                     }
-                                } else if (listedType.value?.id == "3"){//贸易圈
+                                } else if (listedType.value?.id == "3") {//贸易圈
                                     var canBargain = 0
                                     if (can_be_negotiation.isChecked) {
                                         canBargain = 1
@@ -1394,7 +1403,8 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                         TimevalidType = 4,
                                         FirstRatio = 0.0,
                                         DeliveryMonth = month_text.text.toString(),
-                                        PerformanceTemplateID = 0,
+                                        PerformanceTemplateID = selectPerformanceStepData.value?.autoid?.toLong()
+                                            ?: 0,
                                         BuyOrSell = 1,
                                         PriceDisplayMode = 1,
                                         CanBargain = 0,
@@ -1425,7 +1435,8 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                         PriceMove = basisInputEdittext.text.toString().toDouble(),
                                         TimevalidType = 4,
                                         FirstRatio = 0.0,
-                                        PerformanceTemplateID = 0,
+                                        PerformanceTemplateID = selectPerformanceStepData.value?.autoid?.toLong()
+                                            ?: 0,
                                         DeliveryMonth = month_text.text.toString(),
                                         BuyOrSell = 1,
                                         PriceDisplayMode = 1,
@@ -1543,6 +1554,12 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
      * 提交数据前的校验
      */
     fun check(): Boolean {
+
+        if (selectPerformanceStepData.value?.autoid.isNullOrEmpty()) {
+            ToastUtils.showLong("请选择履约模版")
+            return false
+        }
+
         if (listedType.value?.id == "1") {//一口价校验
             if (onePriceInputEdittext.text.toString().isNullOrEmpty()) {
                 ToastUtils.showLong("请输入挂牌价格")
@@ -1670,11 +1687,6 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                 return false
             }
 
-            if (selectPerformanceStepData.value?.autoid.isNullOrEmpty()) {
-                ToastUtils.showLong("请选择履约模版")
-                return false
-            }
-
             if (no_friend.isChecked.not()) {
                 if (selectFriendList.value.isNullOrEmpty()) {
                     ToastUtils.showLong("请选择朋友")

+ 19 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedViewModel.kt

@@ -16,6 +16,7 @@ import cn.muchinfo.rma.view.base.main.castsurely.JsonBean
 import com.blankj.utilcode.util.LogUtils
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
+import mtp.polymer.com.autowidget.dialog.SelectData
 import mtp.polymer.com.autowidget.utils.TaskUiModel
 
 /**
@@ -181,6 +182,23 @@ class ListedViewModel : BaseViewModel(){
     }
 
     /**
+     * 获取
+     * @return List<SelectData>
+     */
+    fun getSelectTypeList() : List<SelectData>{
+        val newSelectDataList = arrayListOf<SelectData>()
+        val tjmdMarketList = GlobalDataCollection.instance?.getTjmdShowMarketSectionList()
+        tjmdMarketList?.forEach {
+            it.mlist?.forEach {data ->
+                if (data.trademode == "17" && data.auctionwrtype == "2"){
+                    newSelectDataList.add(SelectData(id = data.listingmode ?: "",value = data.marketname ?: "",marketId = data.marketid ?: "0"))
+                }
+            }
+        }
+        return newSelectDataList
+    }
+
+    /**
      * 持仓挂牌
      * @param LadingBillId Long
      * @param TradeDate String
@@ -213,6 +231,7 @@ class ListedViewModel : BaseViewModel(){
      * @param isSuccess Function1<[@kotlin.ParameterName] Boolean, Unit>
      */
     fun requeryWRListingOrderReq(
+        marketid : Long = 0,//市场id
         ValidTime : String = "",//有效期限
         LadingBillId: Long = 0,//提单id(wrholdlb的LadingBillId字段),卖的时候填写
         TradeDate: String = "",//交易日

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

@@ -424,9 +424,9 @@ class HedgeDetailsActivity : BaseActivity<HedgePlanViewModel>() {
                     textView {
 
                         onThrottleFirstClick {
-                            viewModel.orderHedge(
+                            viewModel.orderOneHedge(
                                 hedgePlanID = data.hedgeplanid?.toLong() ?: 0,
-                                operateType = 3,
+                                operateType = 5,
                                 remark = audit_opinion_edittext.text.toString()
                             ) {
                                 finish()

+ 2 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reference/ReferenceAdapter.java

@@ -349,8 +349,8 @@ public class ReferenceAdapter extends RecyclerView.Adapter<ReferenceAdapter.Item
                 intent.putExtra("type","2");
 //                intent.putExtra("goodsGroupId", list?.get(position)?.goodsgroupid)
                 intent.putExtra("marketId", data.getMarketid());
-                intent.setClass(context, ChartActivity.class);
-//                intent.setClass(context, YrdzChartActivity.class);
+//                intent.setClass(context, ChartActivity.class);
+                intent.setClass(context, YrdzChartActivity.class);
                 ActivityUtils.startActivity(intent);
             }
         });

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

@@ -25,6 +25,7 @@ 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.GlobalDataCollection
 import cn.muchinfo.rma.global.data.BannerData
 import cn.muchinfo.rma.global.data.NoticeData
 import cn.muchinfo.rma.global.data.WrGoodsPerformanceStepData
@@ -327,130 +328,129 @@ class TjmdHomeFragment : BaseFragment<TjmdHomeViewModel>(){
                             itemView()
 
                             linearLayout {
-                                //参考行情
-                                relativeLayout {
-                                    verticalLayout {
-                                        onThrottleFirstClick {
-                                            val intent = Intent()
-                                            intent.setClass(
-                                                context,
-                                                ReferenceActivity::class.java
-                                            )
-                                            ActivityUtils.startActivity(intent)
-                                        }
-                                        imageView {
-                                            imageResource = R.mipmap.yrdz_reference_prices
-                                        }.lparams(autoSize(72), autoSize(72)) {
-                                            gravity = Gravity.CENTER_HORIZONTAL
-                                        }
-
-                                        textView {
-                                            text = "参考行情"
-                                            textColorInt = R.color.black
-                                            textSizeAuto = 26
-                                        }.lparams(wrapContent, wrapContent) {
-                                            topMargin = autoSize(20)
-                                            gravity = Gravity.CENTER_HORIZONTAL
-                                        }
-                                    }.lparams(matchParent, matchParent)
-
-                                    textView {
-                                        visibility = View.GONE
-                                        textColorInt = R.color.p_global_write_color
-                                        textSizeAuto = 15
-                                        setPadding(
-                                            autoSize(10),
-                                            autoSize(6),
-                                            autoSize(10),
-                                            autoSize(6)
-                                        )
-                                        backgroundDrawable =
-                                            createRoundRectDrawable("#fe671a", 45)
-                                    }.lparams(wrapContent, wrapContent) {
-                                        marginStart = autoSize(130)
-                                    }
-                                }.lparams(autoSize(225), matchParent)
+                                val tjmdMarketList = GlobalDataCollection.instance?.getTjmdShowMarketSectionList()
+                                tjmdMarketList?.forEach {data ->
+                                    relativeLayout {
+                                        verticalLayout {
+                                            onThrottleFirstClick {
+                                                EventBus.getDefault().post(MainTabSelectMessageEvent(tjmdMarketList.indexOf(data).plus(1)))// 黄老板说的要跳去仓单贸易
+                                            }
+                                            imageView {
+                                                showImage(SPUtils.getInstance().getString(Constant.uploadUrl).replace("/upload","") + data.pictureurl?.substring(1))
+                                            }.lparams(autoSize(72), autoSize(72)) {
+                                                gravity = Gravity.CENTER_HORIZONTAL
+                                            }
 
-                                relativeLayout {
-                                    verticalLayout {
-                                        onThrottleFirstClick {
-                                            EventBus.getDefault().post(MainTabSelectMessageEvent(1))// 黄老板说的要跳去仓单贸易
-                                        }
-                                        imageView {
-                                            imageResource = R.mipmap.yrdz_home_wymh_icon
-                                        }.lparams(autoSize(72), autoSize(72)) {
-                                            gravity = Gravity.CENTER_HORIZONTAL
-                                        }
+                                            textView {
+                                                text = data.marketsectionname
+                                                textColorInt = R.color.black
+                                                textSizeAuto = 26
+                                            }.lparams(wrapContent, wrapContent) {
+                                                topMargin = autoSize(20)
+                                                gravity = Gravity.CENTER_HORIZONTAL
+                                            }
+                                        }.lparams(matchParent, matchParent)
 
                                         textView {
-                                            text = "我要买货"
-                                            textColorInt = R.color.black
-                                            textSizeAuto = 26
-                                        }.lparams(wrapContent, wrapContent) {
-                                            topMargin = autoSize(20)
-                                            gravity = Gravity.CENTER_HORIZONTAL
-                                        }
-                                    }.lparams(matchParent, matchParent)
-
-                                    textView {
-                                        visibility = View.GONE
-                                        textColorInt = R.color.p_global_write_color
-                                        textSizeAuto = 15
-                                        setPadding(
-                                            autoSize(10),
-                                            autoSize(6),
-                                            autoSize(10),
-                                            autoSize(6)
-                                        )
-                                        backgroundDrawable =
-                                            createRoundRectDrawable("#fe671a", 45)
-                                    }.lparams(wrapContent, wrapContent) {
-                                        marginStart = autoSize(130)
-                                    }
-                                }.lparams(autoSize(225), matchParent)
-
-                                relativeLayout {
-                                    verticalLayout {
-                                        onThrottleFirstClick {
-                                            val intent = Intent()
-                                            intent.setClass(
-                                                context,
-                                                BookingWarehouseActivity::class.java
+                                            visibility = View.GONE
+                                            textColorInt = R.color.p_global_write_color
+                                            textSizeAuto = 15
+                                            setPadding(
+                                                autoSize(10),
+                                                autoSize(6),
+                                                autoSize(10),
+                                                autoSize(6)
                                             )
-                                            ActivityUtils.startActivity(intent)
-                                        }
-                                        imageView {
-                                            imageResource = R.mipmap.yrdz_home_wyys_icon
-                                        }.lparams(autoSize(72), autoSize(72)) {
-                                            gravity = Gravity.CENTER_HORIZONTAL
-                                        }
-
-                                        textView {
-                                            text = "我要预售"
-                                            textColorInt = R.color.black
-                                            textSizeAuto = 26
+                                            backgroundDrawable =
+                                                createRoundRectDrawable("#fe671a", 45)
                                         }.lparams(wrapContent, wrapContent) {
-                                            topMargin = autoSize(20)
-                                            gravity = Gravity.CENTER_HORIZONTAL
+                                            marginStart = autoSize(130)
                                         }
-                                    }.lparams(matchParent, matchParent)
+                                    }.lparams(autoSize(225), matchParent)
+                                }
+                                //参考行情
 
-                                    textView {
-                                        visibility = View.GONE
-                                        textColorInt = R.color.p_global_write_color
-                                        textSizeAuto = 15
-                                        setPadding(
-                                            autoSize(10),
-                                            autoSize(6),
-                                            autoSize(10),
-                                            autoSize(6)
-                                        )
-                                        backgroundDrawable =
-                                            createRoundRectDrawable("#fe671a", 45)
-                                    }.lparams(wrapContent, wrapContent) {
-                                        marginStart = autoSize(130)
-                                    }
-                                }.lparams(autoSize(225), matchParent)
+
+//                                relativeLayout {
+//                                    verticalLayout {
+//                                        onThrottleFirstClick {
+//                                            EventBus.getDefault().post(MainTabSelectMessageEvent(1))// 黄老板说的要跳去仓单贸易
+//                                        }
+//                                        imageView {
+//                                            imageResource = R.mipmap.yrdz_home_wymh_icon
+//                                        }.lparams(autoSize(72), autoSize(72)) {
+//                                            gravity = Gravity.CENTER_HORIZONTAL
+//                                        }
+//
+//                                        textView {
+//                                            text = "我要买货"
+//                                            textColorInt = R.color.black
+//                                            textSizeAuto = 26
+//                                        }.lparams(wrapContent, wrapContent) {
+//                                            topMargin = autoSize(20)
+//                                            gravity = Gravity.CENTER_HORIZONTAL
+//                                        }
+//                                    }.lparams(matchParent, matchParent)
+//
+//                                    textView {
+//                                        visibility = View.GONE
+//                                        textColorInt = R.color.p_global_write_color
+//                                        textSizeAuto = 15
+//                                        setPadding(
+//                                            autoSize(10),
+//                                            autoSize(6),
+//                                            autoSize(10),
+//                                            autoSize(6)
+//                                        )
+//                                        backgroundDrawable =
+//                                            createRoundRectDrawable("#fe671a", 45)
+//                                    }.lparams(wrapContent, wrapContent) {
+//                                        marginStart = autoSize(130)
+//                                    }
+//                                }.lparams(autoSize(225), matchParent)
+//
+//                                relativeLayout {
+//                                    verticalLayout {
+//                                        onThrottleFirstClick {
+//                                            val intent = Intent()
+//                                            intent.setClass(
+//                                                context,
+//                                                BookingWarehouseActivity::class.java
+//                                            )
+//                                            ActivityUtils.startActivity(intent)
+//                                        }
+//                                        imageView {
+//                                            imageResource = R.mipmap.yrdz_home_wyys_icon
+//                                        }.lparams(autoSize(72), autoSize(72)) {
+//                                            gravity = Gravity.CENTER_HORIZONTAL
+//                                        }
+//
+//                                        textView {
+//                                            text = "我要预售"
+//                                            textColorInt = R.color.black
+//                                            textSizeAuto = 26
+//                                        }.lparams(wrapContent, wrapContent) {
+//                                            topMargin = autoSize(20)
+//                                            gravity = Gravity.CENTER_HORIZONTAL
+//                                        }
+//                                    }.lparams(matchParent, matchParent)
+//
+//                                    textView {
+//                                        visibility = View.GONE
+//                                        textColorInt = R.color.p_global_write_color
+//                                        textSizeAuto = 15
+//                                        setPadding(
+//                                            autoSize(10),
+//                                            autoSize(6),
+//                                            autoSize(10),
+//                                            autoSize(6)
+//                                        )
+//                                        backgroundDrawable =
+//                                            createRoundRectDrawable("#fe671a", 45)
+//                                    }.lparams(wrapContent, wrapContent) {
+//                                        marginStart = autoSize(130)
+//                                    }
+//                                }.lparams(autoSize(225), matchParent)
 
                                 relativeLayout {
                                     verticalLayout {
@@ -513,7 +513,7 @@ class TjmdHomeFragment : BaseFragment<TjmdHomeViewModel>(){
                                     override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
                                         super.onScrollStateChanged(recyclerView, newState)
                                         // DES: 找出当前可视Item位置
-                                        val linearLayoutManager = dataRecyclerview!!.layoutManager as LinearLayoutManager
+                                        val linearLayoutManager = dataRecyclerview.layoutManager as LinearLayoutManager
                                         if (newState == RecyclerView.SCROLL_STATE_IDLE) {// 这个判断是当recyclerview不滚动时
                                             fistShow = linearLayoutManager.findFirstVisibleItemPosition()//获取第一个显示条目
                                             lastShow = linearLayoutManager.findLastVisibleItemPosition()//获取最后一个显示条目

+ 38 - 25
RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/LoginActivity.kt

@@ -512,6 +512,7 @@ class LoginActivity : BaseActivity<LoginViewModel>(), UserPopupWindow.OnClearAcc
                                 )
                             return@getErmcpRoleFuncMenuLists
                         } else {
+
                             MyApplication.getInstance()?.futureManager?.queryGoodsList { isCompleted, err ->
                                 if (isCompleted) {
                                     SPUtils.getInstance()
@@ -533,34 +534,46 @@ class LoginActivity : BaseActivity<LoginViewModel>(), UserPopupWindow.OnClearAcc
                                         }
                                     }else if (SPUtils.getInstance().getString(Constant.oem) == "tjmd"){//如果是天津麦顿的掉期交易则要请求接口掉期报价列表
 
-                                        val params1 = mutableMapOf<String,String>().apply {
-                                            put("marketid",GlobalDataCollection.instance?.getMaketidByTrademode(16).toString())
-                                        }
-                                        MyApplication.getInstance()?.chartManager?.queryDeliveryRelation(params = params1){isSuccess, respData, error ->
+                                        val params2 = mutableMapOf<String,String>()
+                                        MyApplication.getInstance()?.accountManager?.queryTjmdMarketSection(params = params2){isSuccess, respData, error ->
                                             if (isSuccess){
-                                                GlobalDataCollection.instance?.setDeliveryRelationDataArrayList(respData?.toArrayList())
-                                                viewModel.loadingDialogStatus.value =
-                                                    TaskUiModel.success(msg = "登录成功")
-                                                goHomePage()
-                                            }else{
-                                                viewModel.loadingDialogStatus.value =
-                                                    TaskUiModel.failed(InteractiveException(errorMessage = "商品交割关系表请求失败"))
-                                            }
-                                        }
-
-                                        val params = mutableMapOf<String,String>().apply {
-                                            put("usertype",GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype?.toString() ?: "")
-                                            put("marketids",GlobalDataCollection.instance?.getMaketidByTrademode(46)?.toString() ?: "")
-                                        }
-                                        MyApplication.getInstance()?.swapsManager?.queryQuoteGoodsList(params = params){isSuccess, respData, error ->
-                                            if (isSuccess){
-                                                GlobalDataCollection.instance?.setQuoteGoodsListDataArrayList(respData?.toArrayList())
-                                                viewModel.loadingDialogStatus.value =
-                                                    TaskUiModel.success(msg = "登录成功")
-                                                goHomePage()
+                                                //天津麦顿的市场板块信息暂存于数据中心
+                                                GlobalDataCollection.instance?.tjmdMarketSectionDataArrayList =
+                                                    respData?.toArrayList()
+
+                                                val params1 = mutableMapOf<String,String>().apply {
+                                                    put("marketid",GlobalDataCollection.instance?.getMaketidByTrademode(16).toString())
+                                                }
+                                                MyApplication.getInstance()?.chartManager?.queryDeliveryRelation(params = params1){isSuccess, respData, error ->
+                                                    if (isSuccess){
+                                                        GlobalDataCollection.instance?.setDeliveryRelationDataArrayList(respData?.toArrayList())
+                                                        viewModel.loadingDialogStatus.value =
+                                                            TaskUiModel.success(msg = "登录成功")
+                                                        goHomePage()
+                                                    }else{
+                                                        viewModel.loadingDialogStatus.value =
+                                                            TaskUiModel.failed(InteractiveException(errorMessage = "商品交割关系表请求失败"))
+                                                    }
+                                                }
+
+                                                val params = mutableMapOf<String,String>().apply {
+                                                    put("usertype",GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype?.toString() ?: "")
+                                                    put("marketids",GlobalDataCollection.instance?.getMaketidByTrademode(46)?.toString() ?: "")
+                                                }
+                                                MyApplication.getInstance()?.swapsManager?.queryQuoteGoodsList(params = params){isSuccess, respData, error ->
+                                                    if (isSuccess){
+                                                        GlobalDataCollection.instance?.setQuoteGoodsListDataArrayList(respData?.toArrayList())
+                                                        viewModel.loadingDialogStatus.value =
+                                                            TaskUiModel.success(msg = "登录成功")
+                                                        goHomePage()
+                                                    }else{
+                                                        viewModel.loadingDialogStatus.value =
+                                                            TaskUiModel.failed(InteractiveException(errorMessage = "掉期报价列表请求失败"))
+                                                    }
+                                                }
                                             }else{
                                                 viewModel.loadingDialogStatus.value =
-                                                    TaskUiModel.failed(InteractiveException(errorMessage = "掉期报价列表请求失败"))
+                                                    TaskUiModel.failed(InteractiveException(errorMessage = "市场板块查询失败"))
                                             }
                                         }
                                     } else {

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

@@ -10,6 +10,7 @@ import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseFragment
 import cn.muchinfo.rma.view.base.platinumtreasure.adapter.PlatnumTreasureAdapter
 import cn.muchinfo.rma.view.base.procurement.ContentAdapter
+import cn.muchinfo.rma.view.base.procurement.QhjTopTabAdpater
 import cn.muchinfo.rma.view.base.procurement.TopTabAdpater
 import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
 import com.blankj.utilcode.util.LogUtils
@@ -41,7 +42,7 @@ class PlatinumTreasureFragment : BaseFragment<PlatinumTreasureViewModel>() , Pla
 
     //标题头部
     val topAdapter by lazy {
-        TopTabAdpater(activity)
+        QhjTopTabAdpater(activity)
     }
 
     val platnumTreasureAdapter by lazy {

+ 59 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/QhjTopTabAdpater.java

@@ -0,0 +1,59 @@
+package cn.muchinfo.rma.view.base.procurement;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+
+import cn.muchinfo.rma.R;
+
+
+public class QhjTopTabAdpater extends RecyclerView.Adapter<QhjTopTabAdpater.TabViewHolder> {
+
+
+    private Context context;
+    private List<String> datas;
+
+    public QhjTopTabAdpater(Context context) {
+        this.context = context;
+    }
+
+    public void setDatas(List<String> datas) {
+        this.datas = datas;
+        notifyDataSetChanged();
+    }
+
+    @NonNull
+    @Override
+    public TabViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+        View view = LayoutInflater.from(context).inflate(R.layout.layout_item_qhj_top_scroll, viewGroup, false);
+        return new TabViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull TabViewHolder tabViewHolder, int i) {
+        tabViewHolder.mTabTv.setText(datas.get(i));
+    }
+
+    @Override
+    public int getItemCount() {
+        return null == datas ? 0 : datas.size();
+    }
+
+    class TabViewHolder extends RecyclerView.ViewHolder {
+
+        TextView mTabTv;
+
+        public TabViewHolder(@NonNull View itemView) {
+            super(itemView);
+            mTabTv = itemView.findViewById(R.id.tv_right_scroll);
+        }
+    }
+
+}

+ 1 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/TopTabAdpater.java

@@ -14,11 +14,7 @@ import java.util.List;
 
 import cn.muchinfo.rma.R;
 
-/**
- * @author:JianFeng
- * @date:2019/3/26 17:19
- * @description:
- */
+
 public class TopTabAdpater extends RecyclerView.Adapter<TopTabAdpater.TabViewHolder> {
 
 
@@ -29,13 +25,11 @@ public class TopTabAdpater extends RecyclerView.Adapter<TopTabAdpater.TabViewHol
         this.context = context;
     }
 
-
     public void setDatas(List<String> datas) {
         this.datas = datas;
         notifyDataSetChanged();
     }
 
-
     @NonNull
     @Override
     public TabViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

+ 257 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/reference/ReferenceFragment.kt

@@ -0,0 +1,257 @@
+package cn.muchinfo.rma.view.base.reference
+
+import android.os.Bundle
+import android.view.*
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.BaseFragment
+import cn.muchinfo.rma.view.base.home.reference.ReferenceAdapter
+import cn.muchinfo.rma.view.base.home.reference.ReferenceViewModel
+import cn.muchinfo.rma.view.base.procurement.TopTabYrdzAdpater
+import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
+import com.blankj.utilcode.util.LogUtils
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.UI
+
+/**
+ * 天津麦顿的参考行情页面,copy自tjmd首页的参考行情avtivity
+ */
+class ReferenceFragment : BaseFragment<ReferenceViewModel>() , ReferenceAdapter.OnContentScrollListener{
+
+    val titlename by lazy {
+        arguments?.getString("titlename")
+    }
+
+     private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    lateinit var dataRecyclerview : RecyclerView
+
+    var fistShow: Int = 0
+    var lastShow: Int = 0
+
+    val thisTag by lazy {
+        "ReferenceActivity"
+    }
+
+    //标题头部
+    val topAdapter by lazy {
+        TopTabYrdzAdpater(this.activity)
+    }
+
+    val referenceAdapter by lazy {
+        ReferenceAdapter(this.activity)
+    }
+
+
+    override fun onDestroy() {
+        super.onDestroy()
+        EventBus.getDefault().unregister(this)
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onQuoteMessageEvent(quoteMessageEvent: QuoteMessageEvent) {
+        /** 行情推送过来的goodsid **/
+        quoteMessageEvent.goodsid.forEach { goodid ->
+            LogUtils.eTag("dadafafsjhdkjahkjdhak",goodid)
+            //找到相应商品信息
+            val goodsInfo = viewModel.transferDataList.value?.find { it.goodsid == goodid }
+            viewModel.transferDataList.value?.indexOf(goodsInfo)?.let {
+                if (it != -1) {//刷新相应item
+                    dataRecyclerview.adapter?.notifyItemChanged(it)
+                }
+            }
+        }
+
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        return UI {
+            viewModel.initData(tag = thisTag ?: ""){isCompleted, err ->
+                if (isCompleted){
+                    referenceAdapter.notifyDataSetChanged()
+                }
+            }
+            verticalLayout {
+                linearLayout {
+                    background = resources.getDrawable(R.color.main_title_bg_color)
+                    gravity = Gravity.CENTER
+
+                    textView {
+                        text = titlename
+                        textColorInt = R.color.white
+                        textSizeAuto = 43
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(matchParent, autoSize(120))
+
+                linearLayout {
+                    linearLayout {
+                        background = resources.getDrawable(R.color.white)
+                        gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                        textView {//待点价头部左侧数据
+//                            viewModel.titleList.bindOptional(context) {
+//                                text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+//                            }
+                            text = "合约"
+                            textColorStr = "#AAAAAA"
+                            textSizeAuto = 31
+                        }.lparams(wrapContent, wrapContent){
+                            marginStart = autoSize(30)
+                        }
+                    }.lparams(autoSize(250), autoSize(100))
+                    referenceAdapter.setOnContentScrollListener(this@ReferenceFragment)
+                    inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                        horScrollview = this
+                        setOnCustomScrollChangeListener { listener, scrollX, scrollY, oldScrollX, oldScrollY -> //代码重复,可以抽取/////
+                            referenceAdapter.offestX = scrollX
+                            val viewHolderCacheList: List<ReferenceAdapter.ItemViewHolder> =
+                                referenceAdapter.viewHolderCacheList
+                            if (null != viewHolderCacheList) {
+                                val size = viewHolderCacheList.size
+                                for (i in 0 until size) {
+                                    viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                        scrollX,
+                                        0
+                                    )
+                                }
+                            }
+                        }
+                        relativeLayout {
+                            recyclerView {//待点价头部右侧数据
+                                val linearLayoutManager = LinearLayoutManager(context)
+                                linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                                layoutManager = linearLayoutManager
+                                background = resources.getDrawable(R.color.white)
+                                adapter = topAdapter
+                            }
+//                            viewModel.titleList.bindOptional(context) {
+//                                val titleStringList = arrayListOf<String>()
+//                                it?.subList(1, it.size)?.forEach { data ->
+//                                    titleStringList.add(data.columntitle?.replace("\\n", "\n") ?: "")
+//                                }
+//                                topAdapter.setDatas(titleStringList)
+//                            }
+                            topAdapter.setDatas(arrayListOf("卖价","卖量","买价","买量","最新价","涨跌","幅度","今开","昨收","最低","最高","振幅","总量","现量","持仓量","日增","金额"))
+                        }
+                    }.lparams(matchParent, matchParent)
+                }.lparams(matchParent, autoSize(100))
+
+                statusLayout(contentBlock = {
+                    statusLayout = this
+                    setRetryAction {
+
+                    }
+//                bindTaskStatus(viewModule.status)
+                    swipeToLoadLayout {
+                        swipeToLayout = this
+                        setEnableRefresh(true)
+                        setEnableLoadMore(false)
+                        setOnRefreshListener {
+                            viewModel.queryQuoteDay(
+                                tag = thisTag ?: "",
+                                first = fistShow,
+                                last = lastShow,
+                                list = viewModel.transferDataList.value ?: arrayListOf()
+                            ) { isCompleted, err ->
+                                if (isCompleted) {
+                                    if (swipeToLayout.getIsRefreshing()) {
+                                        swipeToLayout.finishRefresh()
+                                    }
+                                    dataRecyclerview.adapter?.notifyItemRangeChanged(fistShow, lastShow)
+                                }
+                            }
+                        }
+                        setEnableScrollContentWhenLoaded(false)
+                        setEnableLoadMoreWhenContentNotFull(false)
+
+                        recyclerView {//待点价列表
+                            dataRecyclerview = this
+                            background = resources.getDrawable(R.color.white)
+                            adapter = referenceAdapter
+                            addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                                override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                    super.onScrolled(recyclerView, dx, dy)
+                                    val viewHolderCacheList: List<ReferenceAdapter.ItemViewHolder> =
+                                        referenceAdapter.viewHolderCacheList
+                                    if (null != viewHolderCacheList) {
+                                        val size = viewHolderCacheList.size
+                                        for (i in 0 until size) {
+                                            viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                                referenceAdapter.getOffestX(),
+                                                0
+                                            )
+                                        }
+                                    }
+                                }
+                            })
+
+                            addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                                override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
+                                    super.onScrollStateChanged(recyclerView, newState)
+                                    // DES: 找出当前可视Item位置
+                                    val linearLayoutManager = dataRecyclerview!!.layoutManager as LinearLayoutManager
+                                    if (newState == RecyclerView.SCROLL_STATE_IDLE) {// 这个判断是当recyclerview不滚动时
+                                        fistShow = linearLayoutManager.findFirstVisibleItemPosition()//获取第一个显示条目
+                                        lastShow = linearLayoutManager.findLastVisibleItemPosition()//获取最后一个显示条目
+                                        if (fistShow != -1 && lastShow != -1) {
+                                            viewModel.queryQuoteDay(
+                                                tag = thisTag ?: "",
+                                                first = fistShow,
+                                                last = lastShow,
+                                                list = viewModel.transferDataList.value ?: arrayListOf()
+                                            ) { isCompleted, err ->
+                                                if (isCompleted) {
+                                                    dataRecyclerview.adapter?.notifyItemRangeChanged(fistShow, lastShow)
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            })
+                        }
+
+
+                    }
+                }, emptyBlock = {
+                    emptyView(hint = resources.getString(R.string.now_no_data))
+                }).lparams(matchParent, matchParent)
+
+                viewModel.transferDataList.bindOptional(context) {
+                    if (it?.size ?: 0 > 10){
+                        lastShow = 10
+                    }else{
+                        lastShow = it?.size ?: 0
+                    }
+                    if (it?.isEmpty() == true || it?.size == 0) {
+                        statusLayout.showEmpty()
+                    } else {
+                        if (swipeToLayout.getIsRefreshing()) {
+                            swipeToLayout.finishRefresh()
+//                        mHeadHeaderHSView.scrollTo(scrollXView,scrollYView)
+                        }
+                        statusLayout.showSuccess()
+                        referenceAdapter.setDatas(it)
+                    }
+                }
+            }
+        }.view
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+}

+ 280 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/GoodsSwapsUI.kt

@@ -0,0 +1,280 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.view.Gravity
+import android.view.MotionEvent
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.procurement.TopTabYrdzAdpater
+import cn.muchinfo.rma.view.base.yrdzpurchase.swaps.TransferSwapsAdapter
+import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
+import com.blankj.utilcode.util.LogUtils
+import org.jetbrains.anko.*
+
+/**
+ * 天津麦顿-掉期商品ui
+ * @property fragment Fragment
+ * @property viewModel TjmdMarketViewModel
+ * @constructor
+ */
+class GoodsSwapsUI(private val fragment: Fragment, private val viewModel: TjmdMarketViewModel) :
+    TransferSwapsAdapter.OnContentScrollListener {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    lateinit var dataRecyclerview: RecyclerView
+
+    var fistShow: Int = 0
+    var lastShow: Int = 0
+
+    val thisTag by lazy {
+        "GoodsSwapsUI"
+    }
+
+    //标题头部
+    val topAdapter by lazy {
+        TopTabYrdzAdpater(fragment.activity)
+    }
+
+    val transferSwapsAdapter by lazy {
+        TransferSwapsAdapter(fragment.activity)
+    }
+
+    /**
+     * 此ui开始订阅行情
+     */
+    fun startSubscriptQuote() {
+        if (viewModel.swapsDataList.value?.size ?: 0 > 0) {
+            viewModel.queryQuoteDay(
+                tag = thisTag,
+                first = fistShow,
+                last = lastShow,
+                list = viewModel.swapsDataList.value ?: arrayListOf()
+            ) { isCompleted, _ ->
+                if (isCompleted) {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+                    }
+                    dataRecyclerview.adapter?.notifyItemRangeChanged(fistShow, lastShow)
+                }
+            }
+        }
+    }
+
+    /**
+     * 此ui结束订阅行情
+     */
+    fun endSubscriptQuote() {
+        viewModel.removeSubscriptQuote(tag = thisTag)
+    }
+
+    /**
+     * 此ui有行情推送刷新
+     * @param quoteMessageEvent QuoteMessageEvent
+     */
+    fun refreshQuoteMessageEvent(quoteMessageEvent: QuoteMessageEvent) {
+        /** 行情推送过来的goodsid **/
+        quoteMessageEvent.goodsid.forEach { goodid ->
+            LogUtils.eTag("dadafafsjhdkjahkjdhak", goodid)
+            //找到相应商品信息
+            val goodsInfo = viewModel.swapsDataList.value?.find { it.goodsid == goodid }
+            viewModel.swapsDataList.value?.indexOf(goodsInfo)?.let {
+                if (it != -1) {//刷新相应item
+                    dataRecyclerview.adapter?.notifyItemChanged(it)
+                }
+            }
+        }
+    }
+
+    val root = _FrameLayout(fragment.activity!!).apply {
+        verticalLayout {
+            viewModel.initswapsData(tag = thisTag) { isCompleted, _ ->
+                if (isCompleted) {
+                    transferSwapsAdapter.notifyDataSetChanged()
+                }
+            }
+
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.CENTER
+                    textView {//待点价头部左侧数据
+//                            viewModel.titleList.bindOptional(context) {
+//                                text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+//                            }
+                        text = "商品/标的"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 31
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(autoSize(250), autoSize(100))
+                transferSwapsAdapter.setOnContentScrollListener(this@GoodsSwapsUI)
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { listener, scrollX, scrollY, oldScrollX, oldScrollY -> //代码重复,可以抽取/////
+                        transferSwapsAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<TransferSwapsAdapter.ItemViewHolder> =
+                            transferSwapsAdapter.viewHolderCacheList
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+//                            viewModel.titleList.bindOptional(context) {
+//                                val titleStringList = arrayListOf<String>()
+//                                it?.subList(1, it.size)?.forEach { data ->
+//                                    titleStringList.add(data.columntitle?.replace("\\n", "\n") ?: "")
+//                                }
+//                                topAdapter.setDatas(titleStringList)
+//                            }
+                        topAdapter.setDatas(
+                            arrayListOf(
+                                "当前价",
+                                "涨跌",
+                                "涨幅",
+                                "振幅",
+                                "开盘",
+                                "最高",
+                                "最低",
+                                "结算",
+                                "昨结算"
+                            )
+                        )
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+
+                }
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryQuoteDay(
+                            tag = thisTag ?: "",
+                            first = fistShow,
+                            last = lastShow,
+                            list = viewModel.swapsDataList.value ?: arrayListOf()
+                        ) { isCompleted, err ->
+                            if (isCompleted) {
+                                if (swipeToLayout.getIsRefreshing()) {
+                                    swipeToLayout.finishRefresh()
+                                }
+                                dataRecyclerview.adapter?.notifyItemRangeChanged(fistShow, lastShow)
+                            }
+                        }
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        dataRecyclerview = this
+                        background = resources.getDrawable(R.color.white)
+                        adapter = transferSwapsAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<TransferSwapsAdapter.ItemViewHolder> =
+                                    transferSwapsAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            transferSwapsAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrollStateChanged(
+                                recyclerView: RecyclerView,
+                                newState: Int
+                            ) {
+                                super.onScrollStateChanged(recyclerView, newState)
+                                // DES: 找出当前可视Item位置
+                                val linearLayoutManager =
+                                    dataRecyclerview!!.layoutManager as LinearLayoutManager
+                                if (newState == RecyclerView.SCROLL_STATE_IDLE) {// 这个判断是当recyclerview不滚动时
+                                    fistShow =
+                                        linearLayoutManager.findFirstVisibleItemPosition()//获取第一个显示条目
+                                    lastShow =
+                                        linearLayoutManager.findLastVisibleItemPosition()//获取最后一个显示条目
+                                    if (fistShow != -1 && lastShow != -1) {
+                                        viewModel.queryQuoteDay(
+                                            tag = thisTag ?: "",
+                                            first = fistShow,
+                                            last = lastShow,
+                                            list = viewModel.swapsDataList.value ?: arrayListOf()
+                                        ) { isCompleted, err ->
+                                            if (isCompleted) {
+                                                dataRecyclerview.adapter?.notifyItemRangeChanged(
+                                                    fistShow,
+                                                    lastShow
+                                                )
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.swapsDataList.bindOptional(context) {
+                if (it?.size ?: 0 > 10) {
+                    lastShow = 10
+                } else {
+                    lastShow = it?.size ?: 0
+                }
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+//                        mHeadHeaderHSView.scrollTo(scrollXView,scrollYView)
+                    }
+                    statusLayout.showSuccess()
+                    transferSwapsAdapter.setDatas(it)
+                }
+            }
+
+        }
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+
+}

+ 753 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/HnstcdysUI.kt

@@ -0,0 +1,753 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.os.Build
+import android.view.Gravity
+import android.view.MotionEvent
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.RequiresApi
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.hnstcdys.HnstcdysViewModel
+import cn.muchinfo.rma.view.base.procurement.TopTabAdpater
+import cn.muchinfo.rma.view.base.procurement.TopTabYrdzAdpater
+import cn.muchinfo.rma.view.base.warehousereceipt.circle.TradeCircleContentAdapter
+import cn.muchinfo.rma.view.base.warehousereceipt.floata.FloatPriceAdapter
+import cn.muchinfo.rma.view.base.warehousereceipt.one.OnePriceAdapter
+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 org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 仓单预售 / 一口价报价牌
+ * @property fragment Fragment
+ * @property viewModel WarehouseReceiptViewModel
+ * @constructor
+ */
+class CDYSOnePriceUI(private val fragment : Fragment, private val viewModel: TjmdMarketViewModel) : OnePriceAdapter.OnContentScrollListener{
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    lateinit var dataRecyclerview : RecyclerView
+
+    //标题头部
+    val topAdapter by lazy {
+        TopTabYrdzAdpater(fragment.context)
+    }
+
+    val onePriceAdapter by lazy {
+        OnePriceAdapter(fragment.context,"2")
+    }
+
+    val root = _FrameLayout(fragment.context!!).apply {
+        verticalLayout {
+            viewModel.queryysOneOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                ?: "",
+                warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+//                            viewModel.titleList.bindOptional(context) {
+//                                text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+//                            }
+                        text = "品种/商品"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 31
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(250), autoSize(100))
+                onePriceAdapter.setOnContentScrollListener(this@CDYSOnePriceUI)
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { listener, scrollX, scrollY, oldScrollX, oldScrollY -> //代码重复,可以抽取/////
+                        onePriceAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<OnePriceAdapter.ItemViewHolder> =
+                            onePriceAdapter.viewHolderCacheList
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+//                            viewModel.titleList.bindOptional(context) {
+//                                val titleStringList = arrayListOf<String>()
+//                                it?.subList(1, it.size)?.forEach { data ->
+//                                    titleStringList.add(data.columntitle?.replace("\\n", "\n") ?: "")
+//                                }
+//                                topAdapter.setDatas(titleStringList)
+//                            }
+                        topAdapter.setDatas(arrayListOf("卖价","卖量","买价","买量","仓库"))
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+
+                }
+
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        dataRecyclerview = this
+                        background = resources.getDrawable(R.color.white)
+                        adapter = onePriceAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<OnePriceAdapter.ItemViewHolder> =
+                                    onePriceAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            onePriceAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
+                                super.onScrollStateChanged(recyclerView, newState)
+                                // DES: 找出当前可视Item位置
+                                val linearLayoutManager = dataRecyclerview!!.layoutManager as LinearLayoutManager
+                                if (newState == RecyclerView.SCROLL_STATE_IDLE) {// 这个判断是当recyclerview不滚动时
+
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.ysonePrcieDataList.bindOptional(context) {
+//                if (it?.size ?: 0 > 10){
+//                    lastShow = 10
+//                }else{
+//                    lastShow = it?.size ?: 0
+//                }
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+//                        mHeadHeaderHSView.scrollTo(scrollXView,scrollYView)
+                    }
+                    statusLayout.showSuccess()
+                    onePriceAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+}
+
+
+/**
+ * 仓单预售-浮动价报价牌
+ * @property fragment Fragment
+ * @property viewModel WarehouseReceiptViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class CDYSFloatingPriceUI(private val fragment : Fragment, private val viewModel: TjmdMarketViewModel) : FloatPriceAdapter.OnContentScrollListener{
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    lateinit var dataRecyclerview : RecyclerView
+
+
+    //标题头部
+    val topAdapter by lazy {
+        TopTabYrdzAdpater(fragment.context)
+    }
+
+    val floatPriceAdapter by lazy {
+        FloatPriceAdapter(fragment.context,"2")
+    }
+
+    val root = _FrameLayout(fragment.context!!).apply {
+        verticalLayout {
+            viewModel.queryysFloatOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                ?: "",
+                warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+//                            viewModel.titleList.bindOptional(context) {
+//                                text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+//                            }
+                        text = "品种/商品"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 31
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(250), autoSize(100))
+                floatPriceAdapter.setOnContentScrollListener(this@CDYSFloatingPriceUI)
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { listener, scrollX, scrollY, oldScrollX, oldScrollY -> //代码重复,可以抽取/////
+                        floatPriceAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<FloatPriceAdapter.ItemViewHolder> =
+                            floatPriceAdapter.viewHolderCacheList
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+//                            viewModel.titleList.bindOptional(context) {
+//                                val titleStringList = arrayListOf<String>()
+//                                it?.subList(1, it.size)?.forEach { data ->
+//                                    titleStringList.add(data.columntitle?.replace("\\n", "\n") ?: "")
+//                                }
+//                                topAdapter.setDatas(titleStringList)
+//                            }
+                        topAdapter.setDatas(arrayListOf("卖基差","卖量","买基差","买量","期货合约","仓库","交收月"))
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+
+                }
+
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        dataRecyclerview = this
+                        background = resources.getDrawable(R.color.white)
+                        adapter = floatPriceAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<FloatPriceAdapter.ItemViewHolder> =
+                                    floatPriceAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            floatPriceAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
+                                super.onScrollStateChanged(recyclerView, newState)
+                                // DES: 找出当前可视Item位置
+                                val linearLayoutManager = dataRecyclerview!!.layoutManager as LinearLayoutManager
+                                if (newState == RecyclerView.SCROLL_STATE_IDLE) {// 这个判断是当recyclerview不滚动时
+
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.ysfloatProceDataList.bindOptional(context) {
+//                if (it?.size ?: 0 > 10){
+//                    lastShow = 10
+//                }else{
+//                    lastShow = it?.size ?: 0
+//                }
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+//                        mHeadHeaderHSView.scrollTo(scrollXView,scrollYView)
+                    }
+                    statusLayout.showSuccess()
+                    floatPriceAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+}
+
+
+
+/**
+ * 仓单预售-贸易圈
+ * @property fragment Fragment
+ * @property viewModel HnstcdysViewModel
+ * @property segment QMUITabSegment
+ * @property selectedTabIndex Int
+ * @property viewPager ViewPager
+ * @property cdysCircleSellUI CdysCircleSellUI
+ * @property cdysCircleBuyUI CdysCircleBuyUI
+ * @property newPagerAdapter PagerAdapter?
+ * @property newTabsArray ArrayList<String>
+ * @property uiList ArrayList<_FrameLayout>
+ * @property root _FrameLayout
+ * @constructor
+ */
+class CDYSCircleUI(private val fragment : Fragment,private val viewModel: TjmdMarketViewModel){
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    private lateinit var viewPager: ViewPager
+
+    //仓单预售卖挂牌
+    val cdysCircleSellUI by lazy { CDYSCircleSellUI(fragment,viewModel) }
+
+    //仓单预售买挂牌
+    val cdysCircleBuyUI by lazy { CDYSCircleBuyUI(fragment,viewModel) }
+
+    //viewpager的适配器
+    private var newPagerAdapter : PagerAdapter? = null
+
+    //tabSegment标题
+    private val newTabsArray : ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    private val uiList : ArrayList<_FrameLayout> = arrayListOf()
+
+    fun initMenuData(){
+
+        newTabsArray.add("卖挂牌")
+        uiList.add(cdysCircleSellUI.root)
+
+        newTabsArray.add("买挂牌")
+        uiList.add(cdysCircleBuyUI.root)
+
+        newPagerAdapter = object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = newTabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                return uiList.get(position).apply {
+                    container.addView(
+                        this,
+                        ViewGroup.LayoutParams(matchParent, matchParent)
+                    )
+                }
+            }
+
+            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 = newTabsArray.size
+
+        }
+
+    }
+
+    val root = _FrameLayout(fragment.activity!!).apply {
+        verticalLayout {
+            initMenuData()
+            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(18f))
+            }.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 = newPagerAdapter
+            }.lparams(matchParent, matchParent)
+            segment.setupWithViewPager(viewPager)
+            segment.selectTab(0)
+        }
+    }
+
+
+}
+
+
+
+/**
+ * 仓单预售圈卖挂牌
+ * @property activity AppCompatActivity
+ * @property viewModel WarehouseReceiptViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class CDYSCircleSellUI(private val fragment : Fragment,private val viewModel: TjmdMarketViewModel) :
+    TradeCircleContentAdapter.OnContentScrollListener {
+
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    val topAdapter by lazy {
+        TopTabAdpater(fragment.activity)
+    }
+
+    val tradeCircleContentAdapter by lazy {
+        TradeCircleContentAdapter(
+            fragment.activity,"2"
+        )
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+    @RequiresApi(Build.VERSION_CODES.N)
+    val root = _FrameLayout(fragment.activity!!).apply {
+        verticalLayout {
+            viewModel.queryysOrderSellQuoteMyq()
+//            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
+            tradeCircleContentAdapter.setOnContentScrollListener(this@CDYSCircleSellUI)
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+                        text = "品种/商品"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 24
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(250), autoSize(100))
+
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { _, scrollX, _, _, _ ->
+                        tradeCircleContentAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<TradeCircleContentAdapter.ItemViewHolder> =
+                            tradeCircleContentAdapter.viewHolderCacheList
+
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+                        topAdapter.setDatas(arrayListOf("挂牌方","价格","数量","议价","整单","挂牌有效期","履约保证金","履约方式","仓库"))
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+                    viewModel.queryysOrderSellQuoteMyq()
+                }
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(true)
+                    setOnRefreshListener {
+                        viewModel.queryysOrderSellQuoteMyq()
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        background = resources.getDrawable(R.color.white)
+                        adapter = tradeCircleContentAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<TradeCircleContentAdapter.ItemViewHolder> =
+                                    tradeCircleContentAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            tradeCircleContentAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.yscircleSellContentDataList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    tradeCircleContentAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+
+}
+
+
+
+/**
+ * 仓单预售圈买挂牌
+ * @property activity AppCompatActivity
+ * @property viewModel WarehouseReceiptViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class CDYSCircleBuyUI(private val fragment : Fragment,private val viewModel: TjmdMarketViewModel) : TradeCircleContentAdapter.OnContentScrollListener {
+
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    val topAdapter by lazy {
+        TopTabAdpater(fragment.activity)
+    }
+
+    val tradeCircleContentAdapter by lazy {
+        TradeCircleContentAdapter(
+            fragment.activity,"2"
+        )
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+    @RequiresApi(Build.VERSION_CODES.N)
+    val root = _FrameLayout(fragment.activity!!).apply {
+        verticalLayout {
+            viewModel.queryysOrderBuyQuoteMyq()
+//            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
+            tradeCircleContentAdapter.setOnContentScrollListener(this@CDYSCircleBuyUI)
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+                        text = "品种/商品"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 24
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(250), autoSize(100))
+
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { _, scrollX, _, _, _ ->
+                        tradeCircleContentAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<TradeCircleContentAdapter.ItemViewHolder> =
+                            tradeCircleContentAdapter.viewHolderCacheList
+
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+                        topAdapter.setDatas(arrayListOf("挂牌方","价格","数量","议价","整单","挂牌有效期","履约保证金","履约方式","仓库"))
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+                    viewModel.queryysOrderBuyQuoteMyq()
+                }
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(true)
+                    setOnRefreshListener {
+                        viewModel.queryysOrderBuyQuoteMyq()
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        background = resources.getDrawable(R.color.white)
+                        adapter = tradeCircleContentAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<TradeCircleContentAdapter.ItemViewHolder> =
+                                    tradeCircleContentAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            tradeCircleContentAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.yscircleBuyContentDataList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    tradeCircleContentAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+
+}

+ 275 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/PurchaseOrderUI.kt

@@ -0,0 +1,275 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.view.Gravity
+import android.view.MotionEvent
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.procurement.TopTabYrdzAdpater
+import cn.muchinfo.rma.view.base.yrdzpurchase.adapter.TransferAdapter
+import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
+import com.blankj.utilcode.util.LogUtils
+import org.jetbrains.anko.*
+
+/**
+ * 天津麦顿挂牌点选
+ * @property fragment Fragment
+ * @property viewModel TjmdMarketViewModel
+ * @constructor
+ */
+class PurchaseOrderUI(private val fragment: Fragment, private val viewModel: TjmdMarketViewModel) :
+    TransferAdapter.OnContentScrollListener {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    lateinit var dataRecyclerview: RecyclerView
+
+    val thisTag by lazy {
+        "PurchaseOrderUI"
+    }
+
+    var fistShow: Int = 0
+    var lastShow: Int = 0
+
+    //标题头部
+    val topAdapter by lazy {
+        TopTabYrdzAdpater(fragment.activity)
+    }
+
+    val transferAdapter by lazy {
+        TransferAdapter(fragment.activity)
+    }
+
+    /**
+     * 此ui开始订阅行情
+     */
+    fun startSubscriptQuote() {
+        if (viewModel.transferDataList.value?.size ?: 0 > 0) {
+            viewModel.queryQuoteDay(
+                tag = thisTag ?: "",
+                first = fistShow,
+                last = lastShow,
+                list = viewModel.transferDataList.value ?: arrayListOf()
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+                    }
+                    dataRecyclerview.adapter?.notifyItemRangeChanged(fistShow, lastShow)
+                }
+            }
+        }
+    }
+
+    /**
+     * 此ui结束订阅行情
+     */
+    fun endSubscriptQuote() {
+        viewModel.removeSubscriptQuote(tag = thisTag)
+    }
+
+    /**
+     * 此ui有行情推送刷新
+     * @param quoteMessageEvent QuoteMessageEvent
+     */
+    fun refreshQuoteMessageEvent(quoteMessageEvent: QuoteMessageEvent) {
+        /** 行情推送过来的goodsid **/
+        quoteMessageEvent.goodsid.forEach { goodid ->
+            LogUtils.eTag("dadafafsjhdkjahkjdhak", goodid)
+            //找到相应商品信息
+            val goodsInfo = viewModel.transferDataList.value?.find { it.goodsid == goodid }
+            viewModel.transferDataList.value?.indexOf(goodsInfo)?.let {
+                if (it != -1) {//刷新相应item
+                    dataRecyclerview.adapter?.notifyItemChanged(it)
+                }
+            }
+        }
+    }
+
+    val root = _FrameLayout(fragment.activity!!).apply {
+        verticalLayout {
+            viewModel.initData(tag = thisTag ?: "") { isCompleted, err ->
+                if (isCompleted) {
+                    transferAdapter.notifyDataSetChanged()
+                }
+            }
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.CENTER
+                    textView {//待点价头部左侧数据
+//                            viewModel.titleList.bindOptional(context) {
+//                                text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+//                            }
+                        text = "合约"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 31
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(autoSize(250), autoSize(100))
+                transferAdapter.setOnContentScrollListener(this@PurchaseOrderUI)
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { listener, scrollX, scrollY, oldScrollX, oldScrollY -> //代码重复,可以抽取/////
+                        transferAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<TransferAdapter.ItemViewHolder> =
+                            transferAdapter.viewHolderCacheList
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+//                            viewModel.titleList.bindOptional(context) {
+//                                val titleStringList = arrayListOf<String>()
+//                                it?.subList(1, it.size)?.forEach { data ->
+//                                    titleStringList.add(data.columntitle?.replace("\\n", "\n") ?: "")
+//                                }
+//                                topAdapter.setDatas(titleStringList)
+//                            }
+                        topAdapter.setDatas(
+                            arrayListOf(
+                                "卖价",
+                                "卖量",
+                                "买价",
+                                "买量",
+                                "最新价",
+                                "涨跌",
+                                "幅度",
+                                "今开",
+                                "昨收",
+                                "最低",
+                                "最高"
+                            )
+                        )
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryQuoteDay(
+                            tag = thisTag ?: "",
+                            first = fistShow,
+                            last = lastShow,
+                            list = viewModel.transferDataList.value ?: arrayListOf()
+                        ) { isCompleted, err ->
+                            if (isCompleted) {
+                                if (swipeToLayout.getIsRefreshing()) {
+                                    swipeToLayout.finishRefresh()
+                                }
+                                dataRecyclerview.adapter?.notifyItemRangeChanged(fistShow, lastShow)
+                            }
+                        }
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        dataRecyclerview = this
+                        background = resources.getDrawable(R.color.white)
+                        adapter = transferAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<TransferAdapter.ItemViewHolder> =
+                                    transferAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            transferAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrollStateChanged(
+                                recyclerView: RecyclerView,
+                                newState: Int
+                            ) {
+                                super.onScrollStateChanged(recyclerView, newState)
+                                // DES: 找出当前可视Item位置
+                                val linearLayoutManager =
+                                    dataRecyclerview!!.layoutManager as LinearLayoutManager
+                                if (newState == RecyclerView.SCROLL_STATE_IDLE) {// 这个判断是当recyclerview不滚动时
+                                    fistShow =
+                                        linearLayoutManager.findFirstVisibleItemPosition()//获取第一个显示条目
+                                    lastShow =
+                                        linearLayoutManager.findLastVisibleItemPosition()//获取最后一个显示条目
+                                    if (fistShow != -1 && lastShow != -1) {
+                                        viewModel.queryQuoteDay(
+                                            tag = thisTag ?: "",
+                                            first = fistShow,
+                                            last = lastShow,
+                                            list = viewModel.transferDataList.value ?: arrayListOf()
+                                        ) { isCompleted, err ->
+                                            if (isCompleted) {
+                                                dataRecyclerview.adapter?.notifyItemRangeChanged(
+                                                    fistShow,
+                                                    lastShow
+                                                )
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.transferDataList.bindOptional(context) {
+                if (it?.size ?: 0 > 10) {
+                    lastShow = 10
+                } else {
+                    lastShow = it?.size ?: 0
+                }
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+//                        mHeadHeaderHSView.scrollTo(scrollXView,scrollYView)
+                    }
+                    statusLayout.showSuccess()
+                    transferAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+}

+ 416 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdCdysWarehouseScreeningDialog.kt

@@ -0,0 +1,416 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.graphics.Color
+import android.view.Gravity
+import android.view.View
+import android.widget.TextView
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsData
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsDataListData
+import cn.muchinfo.rma.global.data.WrStandardFactoryItem
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.tjmd.cdysviewholder.TjmdCdysSelectViewHolder
+import cn.muchinfo.rma.view.base.tjmd.cdysviewholder.TjmdCdysWrStandardFactoryItemViewHolder
+import cn.muchinfo.rma.view.base.tjmd.cdysviewholder.TjmdCdysWrstandardnameViewHolder
+import com.blankj.utilcode.util.TimeUtils
+import com.blankj.utilcode.util.ToastUtils
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import mtp.polymer.com.autowidget.dialog.CustomDialogFragment
+import mtp.polymer.com.autowidget.dialog.creatBottomSheetDialog
+import mtp.polymer.com.autowidget.dialog.createCustomDialog
+import mtp.polymer.com.autowidget.dialog.showDataSelectDialog
+import org.jetbrains.anko.*
+import java.text.SimpleDateFormat
+
+//用于天津麦顿仓单贸易左侧菜单栏
+fun AppCompatActivity.CdysScreeningDialog(
+    viewModel: TjmdMarketViewModel,
+    activity: AppCompatActivity,
+    buyOrSell: String,//0是卖挂牌 1 买挂牌
+    type: String//1 是一口价 2是浮动价 3 贸易圈
+): CustomDialogFragment {
+
+    /** 查询时间textview **/
+    lateinit var tradedatetextview: TextView
+
+    //品种
+    val spotCategoryAdapter: BaseAdapter<FtDeliveryGoodsData, TjmdCdysWrstandardnameViewHolder> =
+        BaseAdapter { _, _ -> TjmdCdysWrstandardnameViewHolder(activity, viewModel) }
+
+    //要素
+    val elementsAdapter: BaseAdapter<FtDeliveryGoodsDataListData, TjmdCdysWrStandardFactoryItemViewHolder> =
+        BaseAdapter { _, _ -> TjmdCdysWrStandardFactoryItemViewHolder(activity, viewModel) }
+
+    lateinit var warehouseRecycview: RecyclerView
+
+    return createCustomDialog(cancelable = true) { dialog ->
+        backgroundColor = Color.parseColor("#5f000000")
+
+        verticalLayout {
+            viewModel.resetFtDeliveryGoodsDataList()
+            viewModel.setGoodsGroupAndGoodsInfoList()
+            background = resources.getDrawable(R.color.white)
+            viewModel.selectWrFtWrstandardData.bindOptional(context) {
+                viewModel.queryWrStandardFactoryItem(it?.wrstandardid ?: "")
+            }
+
+            frameLayout {
+                nestedScrollView {
+                    linearLayout {
+                        recyclerView {
+                            background = resources.getDrawable(R.color.white)
+                            adapter = spotCategoryAdapter
+                        }.lparams(autoSize(310), matchParent) {
+                            bottomMargin = autoSize(150)
+                        }
+
+                        viewModel.ftDeliveryGoodsDataList.bindOptional(context) {
+                            spotCategoryAdapter.setNewData(it)
+                        }
+
+                        view {
+                            background = resources.getDrawable(R.color.rma_hint_line_color_eee)
+                        }.lparams(autoSize(1), matchParent)
+
+                        verticalLayout {
+                            linearLayout {
+                                gravity = Gravity.CENTER_VERTICAL
+                                textView {
+                                    text = "仓库"
+                                    textSizeAuto = 34
+                                    textColorInt = R.color.rma_black_33
+                                }.lparams(wrapContent, wrapContent) {
+                                    marginStart = autoSize(34)
+                                }
+                            }.lparams(matchParent, autoSize(80))
+
+                            recyclerView {
+                                warehouseRecycview = this
+                                background = resources.getDrawable(R.color.white)
+                            }.lparams(matchParent, wrapContent)
+
+                            viewModel.WrStandardFactoryItemDataList.bindOptional(context) { data ->
+                                //仓库
+                                val ftDeliveryGoodsDataListData =
+                                    data?.find { it.dgfactoryitemtypeid == "1" }
+                                if (ftDeliveryGoodsDataListData?.dgfactoryitemtypeid.isNullOrEmpty()
+                                        .not()
+                                ) {
+                                    val watehouseAdapter: BaseAdapter<WrStandardFactoryItem, TjmdCdysSelectViewHolder> =
+                                        BaseAdapter { _, _ ->
+                                            TjmdCdysSelectViewHolder(
+                                                activity,
+                                                viewModel,
+                                                ftDeliveryGoodsDataListData?.dgfactoryitemtypeid
+                                                    ?: ""
+                                            )
+                                        }
+                                    warehouseRecycview.adapter = watehouseAdapter
+                                    watehouseAdapter.setNewData(ftDeliveryGoodsDataListData?.itemlst)
+                                }
+                            }
+
+                            linearLayout {
+                                gravity = Gravity.CENTER_VERTICAL
+                                textView {
+                                    text = "交收月"
+                                    textSizeAuto = 34
+                                    textColorInt = R.color.rma_black_33
+                                }.lparams(wrapContent, wrapContent) {
+                                    marginStart = autoSize(34)
+                                }
+                            }.lparams(matchParent, autoSize(80))
+
+                            linearLayout {
+                                onThrottleFirstClick {
+                                    activity.showDataSelectDialog(type = "2") {
+                                        tradedatetextview.text = this
+                                    }
+                                }
+                                backgroundResource = R.drawable.rma_time_click_bg
+                                gravity = Gravity.CENTER_VERTICAL
+                                textView {
+                                    tradedatetextview = this
+                                    text = TimeUtils.millis2String(
+                                        TimeUtils.getNowMills().minus(86400000),
+                                        SimpleDateFormat("yyyy-MM")
+                                    )
+                                    textColorInt = R.color.rma_hint_text_color_ccc
+                                    textSizeAuto = 31
+                                }.lparams(wrapContent, wrapContent) {
+                                    marginStart = autoSize(18)
+                                }
+
+                                emptyView()
+
+                                imageView {
+                                    imageResource = R.mipmap.rma_search_by_time
+                                }.lparams(autoSize(38), autoSize(38)) {
+                                    marginEnd = autoSize(10)
+                                }
+                            }.lparams(autoSize(420), autoSize(72)) {
+                                topMargin = autoSize(20)
+                                bottomMargin = autoSize(20)
+                                marginStart = autoSize(36)
+                            }
+
+                            verticalLayout {
+                                if (type == "1" || type == "3") {
+                                    visibility = View.GONE
+                                } else {
+                                    visibility = View.VISIBLE
+                                }
+                                linearLayout {
+                                    gravity = Gravity.CENTER_VERTICAL
+                                    textView {
+                                        text = "期货合约"
+                                        textSizeAuto = 34
+                                        textColorInt = R.color.rma_black_33
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(34)
+                                    }
+                                }.lparams(matchParent, autoSize(80))
+
+                                linearLayout {
+                                    onThrottleFirstClick {
+                                        activity.creatBottomSheetDialog(
+                                            "请选择品种",
+                                            viewModel.goodsGroupList.value ?: arrayListOf()
+                                        ) {
+                                            viewModel.selectGoodsGroupData.postValue(this)
+                                            viewModel.setGoodsInfoList(this.goodsgroupid)
+                                        }
+                                    }
+                                    backgroundResource = R.drawable.yrdz_item_normal_bg
+                                    gravity = Gravity.CENTER_VERTICAL
+                                    textView {
+                                        viewModel.selectGoodsGroupData.bindOptional(context) {
+                                            text = it?.value
+                                        }
+                                        text = "请选择品种"
+                                        textSizeAuto = 32
+                                        textColorInt = R.color.rma_black_33
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(30)
+                                    }
+
+                                    emptyView()
+
+                                    imageView {
+                                        imageResource = R.mipmap.rma_down
+                                    }.lparams(autoSize(30), autoSize(20)) {
+                                        marginEnd = autoSize(30)
+                                    }
+                                }.lparams(autoSize(420), autoSize(72)) {
+                                    marginStart = autoSize(36)
+                                }
+
+                                linearLayout {
+                                    onThrottleFirstClick {
+                                        if (viewModel.selectGoodsGroupData.value?.id.isNullOrEmpty()) {
+                                            ToastUtils.showLong("请先选择商品组")
+                                            return@onThrottleFirstClick
+                                        }
+                                        activity.creatBottomSheetDialog(
+                                            "请选择合约",
+                                            viewModel.goodsInfoList.value ?: arrayListOf()
+                                        ) {
+                                            viewModel.selectGoodsInfoData.postValue(this)
+                                        }
+                                    }
+                                    backgroundResource = R.drawable.yrdz_item_normal_bg
+                                    gravity = Gravity.CENTER_VERTICAL
+                                    textView {
+                                        viewModel.selectGoodsInfoData.bindOptional(context) {
+                                            text = it?.value
+                                        }
+                                        text = "请选择合约"
+                                        textSizeAuto = 32
+                                        textColorInt = R.color.rma_black_33
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(30)
+                                    }
+
+                                    emptyView()
+
+                                    imageView {
+                                        imageResource = R.mipmap.rma_down
+                                    }.lparams(autoSize(30), autoSize(20)) {
+                                        marginEnd = autoSize(30)
+                                    }
+                                }.lparams(autoSize(420), autoSize(72)) {
+                                    topMargin = autoSize(24)
+                                    marginStart = autoSize(36)
+                                }
+                            }.lparams(matchParent, wrapContent)
+
+
+                            recyclerView {
+                                background = resources.getDrawable(R.color.white)
+                                adapter = elementsAdapter
+                            }.lparams(matchParent, wrapContent)
+
+                            viewModel.WrStandardFactoryItemDataList.bindOptional(context) { data ->
+                                val elementsDataList = arrayListOf<FtDeliveryGoodsDataListData>()
+
+                                data?.forEach {
+                                    if (it.dgfactoryitemtypeid != "1") {
+                                        elementsDataList.add(it)
+                                    }
+                                }
+                                elementsAdapter.setNewData(elementsDataList)
+
+                            }
+
+                        }.lparams(matchParent, matchParent)
+                    }
+                }
+
+                linearLayout {
+                    background = resources.getDrawable(R.color.white)
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        onThrottleFirstClick {
+                            viewModel.queryysOneOrderQuote()
+                            viewModel.queryysFloatOrderQuote()
+                            dialog.dismiss()
+                            viewModel.resetSelectContent()
+                        }
+                        backgroundResource = R.drawable.rma_item_click_bg
+                        gravity = Gravity.CENTER
+                        text = "重置"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_blue_color
+                    }.lparams(0, autoSize(84), 1f) {
+                        marginStart = autoSize(23)
+                    }
+
+                    textView {
+                        onThrottleFirstClick {
+                            if (viewModel.selectWrFtWrstandardData.value?.wrstandardid.isNullOrEmpty()) {
+                                ToastUtils.showLong("请选择相应商品")
+                                return@onThrottleFirstClick
+                            }
+                            if (type == "1") {
+                                viewModel.queryysOneOrderQuote(
+                                    wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                        ?: "",
+                                    warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                                    dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"),
+                                    deliverymonth = tradedatetextview.text.toString()
+                                )
+                            } else if (type == "2") {
+                                viewModel.queryysFloatOrderQuote(
+                                    wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                        ?: "",
+                                    warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                                    dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"),
+                                    deliverymonth = tradedatetextview.text.toString()
+                                )
+                            }else{
+                                if (buyOrSell == "0") {//查询贸易圈买挂牌
+                                    viewModel.queryysOrderSellQuoteMyq(
+                                        wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                            ?: "",
+                                        dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                    )
+                                } else {//查询贸易圈卖挂牌
+                                    viewModel.queryysOrderBuyQuoteMyq(
+                                        wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                            ?: "",
+                                        dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                    )
+
+                                }
+                            }
+                            viewModel.queryFtDeliveryGoods()
+                            dialog.dismiss()
+                        }
+                        backgroundResource = R.drawable.rydz_main_blue_bg
+                        gravity = Gravity.CENTER
+                        text = "筛选"
+                        textSizeAuto = 34
+                        textColorInt = R.color.white
+                    }.lparams(0, autoSize(84), 1f) {
+                        marginStart = autoSize(23)
+                    }
+
+                    textView {
+                        onThrottleFirstClick {
+                            if (viewModel.selectWrFtWrstandardData.value?.wrstandardid.isNullOrEmpty()) {
+                                ToastUtils.showLong("请选择相应商品")
+                                return@onThrottleFirstClick
+                            }
+                            if (viewModel.getSelectWarehouseOrFactoryid("1").isNullOrEmpty()) {
+                                ToastUtils.showLong("请选择仓库")
+                                return@onThrottleFirstClick
+                            }
+                            if (type == "2") {
+                                if (viewModel.selectGoodsInfoData.value?.id.isNullOrEmpty()) {
+                                    ToastUtils.showLong("请选择期货商品")
+                                    return@onThrottleFirstClick
+                                }
+                            }
+                            if (viewModel.getSelectBooble().not()){
+                                ToastUtils.showLong("挂牌时每个属性都需要选择一个具体的选项")
+                                return@onThrottleFirstClick
+                            }
+                            if (type == "1") {
+                                viewModel.queryysOneOrderQuoteByListed(
+                                    wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                        ?: "",
+                                    warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                                    dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"),
+                                    deliverymonth = tradedatetextview.text.toString()
+                                )
+                            } else if (type == "2"){
+                                viewModel.queryysFloatOrderQuoteByListed(
+                                    wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                        ?: "",
+                                    warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                                    dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"),
+                                    deliverymonth = tradedatetextview.text.toString()
+                                )
+                            }else{
+                                if (buyOrSell == "0") {//查询贸易圈买挂牌
+                                    viewModel.queryysOrderSellQuoteMyqByListed(
+                                        wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                            ?: "",
+                                        dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                    )
+
+                                } else {//查询贸易圈卖挂牌
+                                    viewModel.queryysOrderBuyQuoteMyqByListed(
+                                        wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                            ?: "",
+                                        dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                    )
+
+                                }
+                            }
+                            viewModel.queryFtDeliveryGoods()
+                            dialog.dismiss()
+                        }
+                        backgroundResource = R.drawable.rydz_main_red_bg
+                        gravity = Gravity.CENTER
+                        text = "挂牌"
+                        textSizeAuto = 34
+                        textColorInt = R.color.white
+                    }.lparams(0, autoSize(84), 1f) {
+                        marginStart = autoSize(23)
+                        marginEnd = autoSize(23)
+                    }
+                }.lparams(matchParent, autoSize(120)) {
+                    gravity = Gravity.BOTTOM
+                }
+            }.lparams(matchParent, matchParent)
+        }.lparams(matchParent, matchParent) {
+            topMargin = autoSize(120)
+            marginEnd = autoSize(84)
+        }
+    }
+}

+ 1132 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdHnstFloatListedDialog.kt

@@ -0,0 +1,1132 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.annotation.SuppressLint
+import android.graphics.Color
+import android.os.Build
+import android.view.Gravity
+import android.view.View
+import android.view.ViewGroup
+import android.view.inputmethod.EditorInfo
+import android.widget.EditText
+import android.widget.SeekBar
+import android.widget.TextView
+import androidx.annotation.RequiresApi
+import androidx.appcompat.app.AppCompatActivity
+import androidx.lifecycle.MutableLiveData
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.AccountData
+import cn.muchinfo.rma.global.utils.TimeUtils
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText2
+import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText3
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
+import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.ToastUtils
+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.dialog.CustomDialogFragment
+import mtp.polymer.com.autowidget.dialog.creatAccountDataSheetDialog
+import mtp.polymer.com.autowidget.dialog.createCustomDialog
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 天津麦顿-浮动价的买卖挂牌(此页面是进入买卖大厅有仓单要素id的浮动价挂牌)
+ * @receiver AppCompatActivity
+ * @param activity AppCompatActivity
+ * @param viewModel BusinessHallViewModel
+ * @param data OrderQuoteData
+ * @return CustomDialogFragment
+ */
+fun AppCompatActivity.TjmdHnstFloatListedDialog(
+    activity: AppCompatActivity,
+    type: String,
+    viewModel: TjmdMarketViewModel,
+    data: ListedData
+): CustomDialogFragment {
+
+    val tag = "quotetag"
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    lateinit var viewPager: ViewPager
+
+    //浮动价卖挂牌
+    val oneSellListedUI by lazy {
+        TjmdFloatSellListedUI(activity, viewModel, type, data, tag)
+    }
+
+    //浮动价买挂牌
+    val oneBuyListedUI by lazy {
+        TjmdFloatBuyListedUI(activity, viewModel, type, data, tag)
+    }
+
+    //viewpager的适配器
+    var newPagerAdapter: PagerAdapter? = null
+
+    //tabSegment标题
+    val newTabsArray: ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    val uiList: ArrayList<_FrameLayout> = arrayListOf()
+
+    val selectIndex: MutableLiveData<Int> = MutableLiveData()
+
+    fun initMenuData() {
+
+        newTabsArray.add("卖挂牌")
+        uiList.add(oneSellListedUI.root)
+
+        newTabsArray.add("买挂牌")
+        uiList.add(oneBuyListedUI.root)
+
+        newPagerAdapter = object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = newTabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                return uiList.get(position).apply {
+                    container.addView(
+                        this,
+                        ViewGroup.LayoutParams(matchParent, matchParent)
+                    )
+                }
+            }
+
+            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 = newTabsArray.size
+
+        }
+
+    }
+
+    return createCustomDialog(cancelable = false) { dialog ->
+        backgroundColor = Color.parseColor("#5f000000")
+        initMenuData()
+        //对资金信息进行初始化
+        viewModel.resetAccountData()
+        //查询是否有相应的预售仓单
+        viewModel.queryysorderSummaryWrPosition(deliverygoodsid = data.DeliveryGoodsID ?: "",wrstandardid = data.WrFtWrstandard?.wrstandardid ?: "",warehouseid = data.getWarehouseid(),dgitemname = data.getdgitemname())
+
+        viewModel.queryQuoteDayByListed(
+            tag = tag,
+            goodsCodes = data.goodsCode ?: "",
+            isShowLoading = false
+        )
+        verticalLayout {
+            viewModel.controlDialogDisappear.bindOptional(context) {
+                if (it == true) {
+                    dialog.dismiss()
+                    viewModel.controlDialogDisappear.postValue(false)
+                }
+            }
+            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
+                        selectIndex.postValue(index)
+                    }
+                })
+                setIndicator(
+                    QMUITabIndicator(
+                        QMUIDisplayHelper.dp2px(context, 2),
+                        false,
+                        true
+                    )
+                )
+                setDefaultTextSize(ConvertUtils.sp2px(16f), ConvertUtils.sp2px(16f))
+            }.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 = newPagerAdapter
+            }.lparams(matchParent, matchParent)
+
+            segment.setupWithViewPager(viewPager)
+            segment.selectTab(1)
+        }.lparams(matchParent, matchParent) {
+            topMargin = autoSize(120)
+        }
+    }
+}
+
+//浮动价卖挂牌
+class TjmdFloatSellListedUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: TjmdMarketViewModel,
+    private val type: String,
+    data: ListedData,
+    tag: String//订阅标示
+) {
+
+    //选择的资金账号
+    val selectAccountData: MutableLiveData<AccountData> = MutableLiveData()
+
+    //基差输入
+    lateinit var basisInputEdittext: MangeNumberEditText3
+
+    //初始化后基差是否被define
+    var isdefineByBasis: Boolean = false
+
+    //数量
+    lateinit var listednumberEdittext: MangeNumberEditText2
+
+    //起摘数量输入框
+    lateinit var startInputNumber: EditText
+
+    //估算总额
+    lateinit var float_delisting_amount: TextView
+
+    //估算总价
+    lateinit var float_total_amount: TextView
+
+    lateinit var max_number: TextView
+
+    //浮动价挂牌金额
+    val listed_price: MutableLiveData<Double> = MutableLiveData()
+
+    var marginValue = 0.0//履约保证金比例
+
+    //初始化设置履约保证金比例
+    fun setMarginValue() {
+        if (type == "1") {//有仓单的卖履约保证金
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue?.toDouble()
+                    ?: 0.0
+        } else {//无仓单的卖履约保证金比例
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue2?.toDouble()
+                    ?: 0.0
+        }
+    }
+
+    @SuppressLint("SetTextI18n")
+    @RequiresApi(Build.VERSION_CODES.O)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            setMarginValue()
+            selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
+            backgroundDrawable = createRoundRectDrawable("#ffffff", 24)
+            viewModel.quoteDayData.bindOptional(context) {
+                //行情下发计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                if (isdefineByBasis && basisInputEdittext.text.toString().isNullOrEmpty()
+                        .not() && basisInputEdittext.text.toString() != "-"
+                ) {//初始化相应控件后才能取值计算
+                    listed_price.postValue(
+                        basisInputEdittext.text.toString().toDouble().plus(it?.getPrice() ?: 0.0)
+                    )
+                }
+            }
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatAccountDataSheetDialog(
+                        "请选择资金账号",
+                        GlobalDataCollection.instance?.accountDataList ?: arrayListOf()
+                    ) {
+                        selectAccountData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "交易账户"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    selectAccountData.bindOptional(context) {
+                        text = it?.accountid.toString() + "   " + it?.accountname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "基        差"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                numberEditText3 {
+                    viewModel.quoteDayData.bindOptional(context) {
+                        val MarketTradeConfig = GlobalDataCollection.instance?.marketTradeConfigData
+                        max =
+                            it?.preclose?.times(MarketTradeConfig?.basisupratio?.toDouble() ?: 0.0)
+                                ?: 0.0
+                        min = it?.preclose?.times(-1.0)
+                            ?.times(MarketTradeConfig?.basisdownratio?.toDouble() ?: 0.0) ?: 0.0
+                    }
+                    basisInputEdittext = this
+                    isdefineByBasis = true
+                    text = "0"
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNotEmpty()) {
+                            //行情下发计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                            listed_price.postValue(
+                                value.toString().toDouble()
+                                    .plus(viewModel.quoteDayData.value?.getPrice() ?: 0.0)
+                            )
+                        }
+                    }
+                }.lparams(0, autoSize(72), 1f) {
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                verticalLayout {
+                    textView {
+                        text = "挂牌数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                        topMargin = autoSize(36)
+                    }
+
+                }.lparams(autoSize(250), autoSize(290))
+
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        numberEditText {
+                            text = data.WrFtWrstandard?.minivalue
+                            changeValue = data.WrFtWrstandard?.minivalue?.toDouble() ?: 1.0
+                            listednumberEdittext = this
+                            setOnTextChangeListener { view, value ->
+                                if (value.isNullOrEmpty().not()) {
+
+                                    val floatDelistingAmount =
+                                        listed_price.value?.times(value.toString().toDouble())
+                                    if (floatDelistingAmount != 0.0) {
+                                        //显示估算总额
+                                        if (marginValue == 0.0) {
+                                            float_delisting_amount.text =
+                                                NumberUtils.roundNum(floatDelistingAmount ?: 0.0, 2)
+                                        } else {
+                                            float_delisting_amount.text = NumberUtils.roundNum(
+                                                floatDelistingAmount ?: 0.0,
+                                                2
+                                            ) + "(需履约保证金" + NumberUtils.roundNum(
+                                                floatDelistingAmount?.times(marginValue) ?: 0.0,
+                                                2
+                                            ) + ")"
+                                        }
+                                    }
+                                }
+                            }
+
+                        }.lparams(0, autoSize(72), 1f) {
+                            marginEnd = autoSize(36)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 34
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(143))
+
+                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
+                        min = 10
+                        max = 100
+                        isIndeterminate = false
+                        splitTrack = false
+                        setPadding(autoSize(30), 0, autoSize(30), 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
+                        thumbOffset = 0
+                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+                            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                                listednumberEdittext.text = NumberUtils.roundNum(
+                                    max_number.text.toString().toDouble().times(p1.div(100.0)), 0
+                                )
+                            }
+
+                            override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                            }
+
+                            override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                            }
+                        })
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(20)
+                    }
+
+                    linearLayout {
+                        textView {
+                            text = "0"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+
+                        emptyView()
+
+                        textView {
+                            max_number = this
+                            text = "1"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(10)
+                    }
+
+                }.lparams(matchParent, autoSize(290))
+            }.lparams(matchParent, autoSize(290))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "起摘数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                verticalLayout {
+                    linearLayout {
+                        editText {
+                            startInputNumber = this
+                            hint = "请输入起摘数量"
+                            background = null
+                            inputType = EditorInfo.TYPE_CLASS_NUMBER
+//                            setDecimalInputType()
+                            hintColorStr = "#CCCCCC"
+                            textSizeAuto = 31
+                            textColorStr = "#333333"
+                        }.lparams(0, autoSize(132), 1f) {
+                            topMargin = autoSize(15)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_black_33
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(100))
+
+                    textView {
+                        text =
+                            "最小单位" + data.WrFtWrstandard?.minivalue + data.WrFtWrstandard?.enumdicname
+                        textSizeAuto = 29
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(matchParent, autoSize(167))
+
+            }.lparams(matchParent, autoSize(167))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "估算总价"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    listed_price.bindOptional(context) {
+                        text = NumberUtils.roundNum(it ?: 0.0, 2)
+                    }
+                    float_total_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "估算总额"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    listed_price.bindOptional(context) {
+                        val floatDelistingAmount =
+                            it?.times(listednumberEdittext.text.toString().toDouble())
+                        if (floatDelistingAmount != 0.0) {
+                            if (marginValue == 0.0) {
+                                text = NumberUtils.roundNum(floatDelistingAmount ?: 0.0, 2)
+                            } else {
+                                text = NumberUtils.roundNum(
+                                    floatDelistingAmount ?: 0.0,
+                                    2
+                                ) + "(需履约保证金" + NumberUtils.roundNum(
+                                    floatDelistingAmount?.times(
+                                        marginValue
+                                    ) ?: 0.0, 2
+                                ) + ")"
+                            }
+                        }
+                    }
+                    float_delisting_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            textView {
+                viewModel.usedAccountData.bindOptional(context) {
+                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(), 2)
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+                marginStart = autoSize(250)
+            }
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+
+                        if (viewModel.summaryWrPositionDataByDialog.value?.accountid.isNullOrEmpty()){
+                            ToastUtils.showLong("没有对应的仓单数据,不能进行挂牌操作")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (listednumberEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (listednumberEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌数量不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (basisInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入基差")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (startInputNumber.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入起摘数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (startInputNumber.text.toString()
+                                .toLong() < data.WrFtWrstandard?.minivalue?.toLong() ?: 0
+                        ) {
+                            ToastUtils.showLong("起摘数量不能小于" + data.WrFtWrstandard?.minivalue)
+                            return@onThrottleFirstClick
+                        }
+
+                        viewModel.requeryWRListingOrderReq(
+                            FactoryItems = data.getFactoryItems(),
+                            LadingBillId = 0,
+                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                            SubNum = 0,
+                            WRFactorTypeId = 0,
+                            UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                            AccountID = GlobalDataCollection.instance?.accountId ?: 0,
+                            IsSpecified = 0,
+                            OrderQty = listednumberEdittext.text.toString().toLong(),
+                            DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                            WRPriceType = 2,
+                            WRTradeGoods = getWRTradeGoods(data),
+                            PriceFactor = 1.0,
+                            PriceMove = basisInputEdittext.text.toString().toDouble(),
+                            TimevalidType = 4,
+                            FirstRatio = 0.0,
+                            PerformanceTemplateID = 0,
+                            BuyOrSell = 1,
+                            PriceDisplayMode = 1,
+                            CanBargain = 0,
+                            ApplyID = 0,
+                            CanPart = 1,
+                            HasWr = 0,
+                            DeliveryMonth = data.DeliveryMonth ?: "",
+                            DelistMinQty = startInputNumber.text.toString().toLong(),
+                            WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                        ) {
+                            viewModel.removeSubscriptQuote(tag = tag)
+                            viewModel.controlDialogDisappear.postValue(true)
+                        }
+
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.qhj_main_blue_bg
+                    text = "卖出"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(24)
+                }
+
+                textView {
+                    onThrottleFirstClick {
+                        viewModel.removeSubscriptQuote(tag = tag)
+                        viewModel.controlDialogDisappear.postValue(true)
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.hnxt_cancel_bg
+                    text = "取消"
+                    textColorInt = R.color.white
+                    textSizeAuto = 38
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(13)
+                }
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+    }
+
+    fun getWRTradeGoods(data: ListedData): WarehouseTradeMI1.WRGoodsInfo {
+        val wRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder()
+        wRTradeGoods.setGoodsID(data.goodsId?.toInt() ?: 0)
+        wRTradeGoods.setGoodsCode(data.goodsCode)
+        wRTradeGoods.setPriceFactor(1.0)
+        wRTradeGoods.setPriceMove(1.0)
+        wRTradeGoods.setWeightRatio(1.0)
+        return wRTradeGoods.build()
+    }
+}
+
+//浮动价买挂牌
+class TjmdFloatBuyListedUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: TjmdMarketViewModel,
+    type: String,
+    data: ListedData,
+    tag: String//订阅标示
+) {
+    //选择的资金账号
+    val selectAccountData: MutableLiveData<AccountData> = MutableLiveData()
+
+    //基差
+    lateinit var basisInputEdittext: MangeNumberEditText3
+
+    //初始化后基差是否被define
+    var isdefineByBasis: Boolean = false
+
+    //挂牌数量
+    lateinit var oneNumberInputEdittext: MangeNumberEditText2
+
+    //起摘数量输入框
+    lateinit var startInputNumber: EditText
+
+    //摘牌金额
+    lateinit var one_delisting_amount: TextView
+
+    //估算总额
+    lateinit var float_delisting_amount: TextView
+
+    //估算总价
+    lateinit var float_total_amount: TextView
+
+    //SeekBar
+    lateinit var seekBar: SeekBar
+
+    //挂牌最大数量
+    val maxlistedNumber: MutableLiveData<Int> = MutableLiveData()
+
+    //浮动价挂牌金额
+    val listed_price: MutableLiveData<Double> = MutableLiveData()
+
+    var marginValue = 0.0//履约保证金比例
+
+    //初始化设置履约保证金比例
+    fun setMarginValue() {
+        marginValue =
+            GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
+                ?: 0.0
+    }
+
+    @SuppressLint("SetTextI18n")
+    @RequiresApi(Build.VERSION_CODES.O)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            viewModel.quoteDayData.bindOptional(context) {
+                //行情下发计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                if (isdefineByBasis && basisInputEdittext.text.toString().isNullOrEmpty()
+                        .not() && basisInputEdittext.text.toString() != "-"
+                ) {
+                    listed_price.postValue(
+                        basisInputEdittext.text.toString().toDouble().plus(it?.getPrice() ?: 0.0)
+                    )
+                }
+            }
+            setMarginValue()
+            selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
+            backgroundDrawable = createRoundRectDrawable("#ffffff", 24)
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatAccountDataSheetDialog(
+                        "请选择资金账号",
+                        GlobalDataCollection.instance?.accountDataList ?: arrayListOf()
+                    ) {
+                        selectAccountData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "交易账户"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    selectAccountData.bindOptional(context) {
+                        text = it?.accountid.toString() + "   " + it?.accountname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "基        差"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+
+
+                numberEditText3 {
+                    text = "0"
+                    basisInputEdittext = this
+                    isdefineByBasis = true
+                    viewModel.quoteDayData.bindOptional(context) {
+                        val MarketTradeConfig = GlobalDataCollection.instance?.marketTradeConfigData
+                        max =
+                            it?.preclose?.times(MarketTradeConfig?.basisupratio?.toDouble() ?: 0.0)
+                                ?: 0.0
+                        min = it?.preclose?.times(-1.0)
+                            ?.times(MarketTradeConfig?.basisdownratio?.toDouble() ?: 0.0) ?: 0.0
+                    }
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNotEmpty()) {
+                            // 计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                            listed_price.postValue(
+                                value.toString().toDouble()
+                                    .plus(viewModel.quoteDayData.value?.getPrice() ?: 0.0)
+                            )
+                        }
+                    }
+
+                }.lparams(0, autoSize(72), 1f) {
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                verticalLayout {
+                    textView {
+                        text = "挂牌数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                        topMargin = autoSize(36)
+                    }
+
+                }.lparams(autoSize(250), autoSize(290))
+
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        numberEditText {
+                            text = data.WrFtWrstandard?.minivalue
+                            changeValue = data.WrFtWrstandard?.minivalue?.toDouble() ?: 1.0
+                            oneNumberInputEdittext = this
+                            setOnTextChangeListener { view, value ->
+
+                            }
+
+                        }.lparams(0, autoSize(72), 1f) {
+                            marginEnd = autoSize(36)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 34
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(143))
+
+                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
+                        min = 10
+                        max = 100
+                        seekBar = this
+                        isIndeterminate = false
+                        splitTrack = false
+                        setPadding(autoSize(30), 0, autoSize(30), 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
+                        thumbOffset = 0
+                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+                            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                                oneNumberInputEdittext.text = NumberUtils.roundNum(
+                                    maxlistedNumber.value?.times(p1.div(100.0)).toString(), 0
+                                )
+                            }
+
+                            override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                            }
+
+                            override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                            }
+                        })
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(20)
+                    }
+
+                    linearLayout {
+                        textView {
+                            text = "0"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+
+                        emptyView()
+
+                        textView {
+                            maxlistedNumber.bindOptional(context) {
+                                text = it.toString() + data.WrFtWrstandard?.enumdicname
+                            }
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(10)
+                    }
+
+                }.lparams(matchParent, autoSize(290))
+            }.lparams(matchParent, autoSize(290))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "起摘数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                verticalLayout {
+                    linearLayout {
+                        editText {
+                            startInputNumber = this
+                            hint = "请输入起摘数量"
+                            background = null
+//                            inputType = EditorInfo.TYPE_CLASS_NUMBER or EditorInfo.TYPE_NUMBER_FLAG_DECIMAL or EditorInfo.TYPE_NUMBER_FLAG_SIGNED
+//                            setDecimalInputType()
+                            hintColorStr = "#CCCCCC"
+                            textSizeAuto = 31
+                            textColorStr = "#333333"
+                        }.lparams(0, autoSize(132), 1f) {
+                            topMargin = autoSize(15)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_black_33
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(100))
+
+                    textView {
+                        text =
+                            "最小单位" + data.WrFtWrstandard?.minivalue + data.WrFtWrstandard?.enumdicname
+                        textSizeAuto = 29
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(5)
+                    }
+                }.lparams(matchParent, autoSize(167))
+
+            }.lparams(matchParent, autoSize(167))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "估算总价"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    listed_price.bindOptional(context) {
+                        text = NumberUtils.roundNum(it ?: 0.0, 2)
+                        if (it != 0.0 && marginValue != 0.0) {
+                            maxlistedNumber.postValue(
+                                viewModel.usedAccountData.value?.canUserAmount?.div(
+                                    marginValue
+                                )?.div(it ?: 1.0)?.toInt()
+                            )
+                        }
+                    }
+                    float_total_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "估算总额"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    listed_price.bindOptional(context) {
+                        val floatDelistingAmount =
+                            it?.times(oneNumberInputEdittext.text.toString().toDouble())
+                        if (floatDelistingAmount != 0.0) {
+                            if (marginValue == 0.0) {
+                                text = NumberUtils.roundNum(floatDelistingAmount ?: 0.0, 2)
+                            } else {
+                                text = NumberUtils.roundNum(
+                                    floatDelistingAmount ?: 0.0,
+                                    2
+                                ) + "(需履约保证金" + NumberUtils.roundNum(
+                                    floatDelistingAmount?.times(
+                                        marginValue
+                                    ) ?: 0.0, 2
+                                ) + ")"
+                            }
+                        }
+                    }
+                    float_delisting_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            textView {
+                viewModel.usedAccountData.bindOptional(context) {
+                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(), 2)
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+                marginStart = autoSize(250)
+            }
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+                        if (basisInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入基差")
+                            return@onThrottleFirstClick
+                        }
+//                        if (basisInputEdittext.text.toString().toDouble() == 0.0) {
+//                            ToastUtils.showLong("基差不能为零")
+//                            return@onThrottleFirstClick
+//                        }
+
+                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌数量不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (startInputNumber.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入起摘数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (startInputNumber.text.toString()
+                                .toLong() < data.WrFtWrstandard?.minivalue?.toLong() ?: 0
+                        ) {
+                            ToastUtils.showLong("起摘数量不能小于" + data.WrFtWrstandard?.minivalue)
+                            return@onThrottleFirstClick
+                        }
+                        viewModel.requeryWRListingOrderReq(
+                            FactoryItems = data.getFactoryItems(),
+                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                            WRFactorTypeId = 0,
+                            UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                            AccountID = selectAccountData.value?.accountid ?: 0,
+                            IsSpecified = 0,
+                            OrderQty = oneNumberInputEdittext.text.toString().toLong(),
+                            DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                            WRPriceType = 2,
+                            PriceMove = basisInputEdittext.text.toString().toDouble(),
+                            WRTradeGoods = getWRTradeGoods(data),
+                            TimevalidType = 4,
+                            FirstRatio = 0.0,
+                            PerformanceTemplateID = 0,
+                            BuyOrSell = 0,
+                            PriceDisplayMode = 1,
+                            CanBargain = 0,
+                            ApplyID = 0,
+                            CanPart = 1,
+                            HasWr = 0,
+                            DeliveryMonth = data.DeliveryMonth ?: "",
+                            DelistMinQty = startInputNumber.text.toString().toLong(),
+                            WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                        ) {
+                            viewModel.removeSubscriptQuote(tag = tag)
+                            viewModel.controlDialogDisappear.postValue(true)
+                        }
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.qhj_main_blue_bg
+                    text = "买入"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(24)
+                }
+
+                textView {
+                    onThrottleFirstClick {
+                        viewModel.controlDialogDisappear.postValue(true)
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.hnxt_cancel_bg
+                    text = "取消"
+                    textColorInt = R.color.white
+                    textSizeAuto = 38
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(13)
+                }
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+    }
+
+    fun getWRTradeGoods(data: ListedData): WarehouseTradeMI1.WRGoodsInfo {
+        val wRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder()
+        wRTradeGoods.setGoodsID(data.goodsId?.toInt() ?: 0)
+        wRTradeGoods.setGoodsCode(data.goodsCode)
+        wRTradeGoods.setPriceFactor(1.0)
+        wRTradeGoods.setPriceMove(1.0)
+        wRTradeGoods.setWeightRatio(1.0)
+        return wRTradeGoods.build()
+    }
+}

+ 1013 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdHnstOneListedDialog.kt

@@ -0,0 +1,1013 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.annotation.SuppressLint
+import android.graphics.Color
+import android.os.Build
+import android.view.Gravity
+import android.view.View
+import android.view.ViewGroup
+import android.view.inputmethod.EditorInfo
+import android.widget.EditText
+import android.widget.SeekBar
+import android.widget.TextView
+import androidx.annotation.RequiresApi
+import androidx.appcompat.app.AppCompatActivity
+import androidx.lifecycle.MutableLiveData
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.bingoogolapple.bgabanner.BGABanner
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.AccountData
+import cn.muchinfo.rma.global.data.HoldLBData
+import cn.muchinfo.rma.global.data.OrderQuoteData
+import cn.muchinfo.rma.global.utils.TimeUtils
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText2
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.hnstcdys.HnstcdysViewModel
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
+import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.ToastUtils
+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.dialog.CustomDialogFragment
+import mtp.polymer.com.autowidget.dialog.creatAccountDataSheetDialog
+import mtp.polymer.com.autowidget.dialog.creatHnstSpotDetailSheetDialog
+import mtp.polymer.com.autowidget.dialog.createCustomDialog
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 天津麦顿-买卖大厅的一口价挂牌(此页面是进入买卖大厅有仓单要素id的一口价价挂牌)
+ * @receiver AppCompatActivity
+ * @return CustomDialogFragment
+ */
+@Suppress("DEPRECATION")
+fun AppCompatActivity.TjmdHnstOneListedDialog(
+    activity: AppCompatActivity,
+    type: String,
+    viewModel: TjmdMarketViewModel,
+    data : ListedData
+): CustomDialogFragment {
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    lateinit var viewPager: ViewPager
+
+    //一口价卖挂牌
+    val oneSellListedUI by lazy {
+        CdysOneSellListedUI(activity, viewModel, type, data)
+    }
+
+    //一口价买挂牌
+    val oneBuyListedUI by lazy {
+        CdysOneBuyListedUI(activity, viewModel, type, data)
+    }
+
+    //viewpager的适配器
+    var newPagerAdapter: PagerAdapter? = null
+
+    //tabSegment标题
+    val newTabsArray: ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    val uiList: ArrayList<_FrameLayout> = arrayListOf()
+
+    val selectIndex: MutableLiveData<Int> = MutableLiveData()
+
+    fun initMenuData() {
+
+        newTabsArray.add("卖挂牌")
+        uiList.add(oneSellListedUI.root)
+
+        newTabsArray.add("买挂牌")
+        uiList.add(oneBuyListedUI.root)
+
+        newPagerAdapter = object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = newTabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                return uiList.get(position).apply {
+                    container.addView(
+                        this,
+                        ViewGroup.LayoutParams(matchParent, matchParent)
+                    )
+                }
+            }
+
+            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 = newTabsArray.size
+
+        }
+
+    }
+
+    return createCustomDialog(cancelable = false) { dialog ->
+        backgroundColor = Color.parseColor("#5f000000")
+        initMenuData()
+        viewModel.resetAccountData()
+        viewModel.queryysorderSummaryWrPosition(deliverygoodsid = data.DeliveryGoodsID ?: "",wrstandardid = data.WrFtWrstandard?.wrstandardid ?: "",warehouseid = data.getWarehouseid(),dgitemname = data.getdgitemname())
+        verticalLayout {
+            viewModel.controlDialogDisappear.bindOptional(context) {
+                if (it == true) {
+                    dialog.dismiss()
+                    viewModel.controlDialogDisappear.postValue(false)
+                }
+            }
+            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
+                        selectIndex.postValue(index)
+                    }
+                })
+                setIndicator(
+                    QMUITabIndicator(
+                        QMUIDisplayHelper.dp2px(context, 2),
+                        false,
+                        true
+                    )
+                )
+                setDefaultTextSize(ConvertUtils.sp2px(16f), ConvertUtils.sp2px(16f))
+            }.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 = newPagerAdapter
+            }.lparams(matchParent, matchParent)
+
+            segment.setupWithViewPager(viewPager)
+            segment.selectTab(1)
+        }.lparams(matchParent, matchParent) {
+            topMargin = autoSize(120)
+        }
+    }
+}
+
+//一口价卖挂牌
+class CdysOneSellListedUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: TjmdMarketViewModel,
+    private val type: String,
+    data : ListedData
+) {
+    //选择的资金账号
+    val selectAccountData: MutableLiveData<AccountData> = MutableLiveData()
+
+    //挂牌价格输入
+    lateinit var onePriceInputEdittext: MangeNumberEditText2
+
+    //挂牌数量
+    lateinit var oneNumberInputEdittext: MangeNumberEditText2
+
+    //起摘数量输入框
+    lateinit var startInputNumber: EditText
+
+    //摘牌金额
+    lateinit var one_delisting_amount: TextView
+
+    var marginValue = 0.0//履约保证金比例
+
+    //初始化设置履约保证金比例
+    fun setMarginValue() {
+        if (type == "1") {//有仓单的卖履约保证金
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue?.toDouble()
+                    ?: 0.0
+        } else {//无仓单的卖履约保证金比例
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue2?.toDouble()
+                    ?: 0.0
+        }
+    }
+
+    @SuppressLint("NewApi", "SetTextI18n")
+    @RequiresApi(Build.VERSION_CODES.O)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            setMarginValue()
+            selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
+            backgroundDrawable = createRoundRectDrawable("#ffffff", 24)
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatAccountDataSheetDialog(
+                        "请选择资金账号",
+                        GlobalDataCollection.instance?.accountDataList ?: arrayListOf()
+                    ) {
+                        viewModel.resetAccountDataBySelect(this)
+                        selectAccountData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "交易账户"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    selectAccountData.bindOptional(context) {
+                        text = it?.accountid.toString() + "   " + it?.accountname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "挂牌价格"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                numberEditText {
+                    text = "0"
+                    onePriceInputEdittext = this
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNullOrEmpty().not()) {
+                            if (oneNumberInputEdittext.text.toString().isNullOrEmpty().not()) {
+                                var amount = value.toString().toDouble()
+                                    .times(oneNumberInputEdittext.text.toString().toDouble())
+                                if (amount == 0.0) {
+                                    one_delisting_amount.text = NumberUtils.roundNum(
+                                        amount.toString(),
+                                        2
+                                    )
+                                } else {
+                                    one_delisting_amount.text = NumberUtils.roundNum(
+                                        amount.toString(),
+                                        2
+                                    ) + "(需履约保证金" + NumberUtils.roundNum(
+                                        amount.times(
+                                            marginValue
+                                        ) ?: 0.0, 2
+                                    ) + ")"
+                                }
+                            }
+                        }
+                    }
+
+                }.lparams(0, autoSize(72), 1f) {
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                verticalLayout {
+                    textView {
+                        text = "挂牌数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                        topMargin = autoSize(36)
+                    }
+
+                }.lparams(autoSize(250), autoSize(290))
+
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        numberEditText {
+                            text = data.WrFtWrstandard?.minivalue
+                            changeValue = data.WrFtWrstandard?.minivalue?.toDouble() ?: 1.0
+                            viewModel.summaryWrPositionDataByDialog.bindOptional(context){
+                                max = it?.creditenableqty?.toDouble() ?: 1.0
+                            }
+                            oneNumberInputEdittext = this
+                            setOnTextChangeListener { view, value ->
+                                if (value.isNullOrEmpty().not()) {
+                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
+                                            .not()
+                                    ) {
+                                        var marginValue = value.toString().toDouble()
+                                            .times(oneNumberInputEdittext.text.toString().toDouble())
+                                        if (marginValue == 0.0) {
+                                            one_delisting_amount.text = NumberUtils.roundNum(
+                                                marginValue.toString(),
+                                                2
+                                            )
+                                        } else {
+                                            one_delisting_amount.text = NumberUtils.roundNum(
+                                                marginValue.toString(),
+                                                2
+                                            ) + "(需履约保证金" + NumberUtils.roundNum(
+                                                marginValue?.times(
+                                                    marginValue
+                                                ) ?: 0.0, 2
+                                            ) + ")"
+                                        }
+                                    }
+                                }
+                            }
+
+                        }.lparams(0, autoSize(72), 1f) {
+                            marginEnd = autoSize(36)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 34
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(143))
+
+                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
+                        min = 10
+                        max = 100
+                        isIndeterminate = false
+                        splitTrack = false
+                        setPadding(autoSize(30), 0, autoSize(30), 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
+
+                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+                            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                                if (viewModel.summaryWrPositionDataByDialog.value?.accountid.isNullOrEmpty().not()){
+                                    oneNumberInputEdittext.text = NumberUtils.roundNum(
+                                        viewModel.summaryWrPositionDataByDialog.value?.creditenableqty?.toDouble()?.times(p1.div(100.0)).toString(), 0
+                                    )
+                                }
+                            }
+
+                            override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                            }
+
+                            override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                            }
+                        })
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(20)
+                    }
+
+                    linearLayout {
+
+                        textView {
+                            text = "0"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+
+                        emptyView()
+
+                        textView {
+                            viewModel.summaryWrPositionDataByDialog.bindOptional(context){
+                                text = it?.creditenableqty + it?.enumdicname
+                            }
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(10)
+                    }
+
+                }.lparams(matchParent, autoSize(290))
+            }.lparams(matchParent, autoSize(290))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "起摘数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                verticalLayout {
+                    linearLayout {
+                        editText {
+                            startInputNumber = this
+                            hint = "请输入起摘数量"
+                            background = null
+                            inputType = EditorInfo.TYPE_CLASS_NUMBER
+//                            setDecimalInputType()
+                            hintColorStr = "#CCCCCC"
+                            textSizeAuto = 31
+                            textColorStr = "#333333"
+                        }.lparams(0, autoSize(132), 1f) {
+                            topMargin = autoSize(15)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(100))
+
+                    textView {
+                        visibility = View.GONE
+                        text = "最小单位"
+                        textSizeAuto = 29
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(matchParent, autoSize(167))
+
+            }.lparams(matchParent, autoSize(167))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "挂牌金额"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    one_delisting_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            textView {
+                viewModel.usedAccountData.bindOptional(context) {
+                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(), 2)
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+                marginStart = autoSize(250)
+            }
+
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+
+                        if (viewModel.summaryWrPositionDataByDialog.value?.accountid.isNullOrEmpty()){
+                            ToastUtils.showLong("没有对应的仓单数据,不能进行挂牌操作")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (onePriceInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌价格")
+                            return@onThrottleFirstClick
+                        }
+                        if (onePriceInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌价格不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌数量不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (startInputNumber.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入起摘数量")
+                            return@onThrottleFirstClick
+                        }
+
+                        viewModel.requeryWRListingOrderReq(
+                            FactoryItems = data.getFactoryItems(),
+                            LadingBillId = 0,
+                            SubNum = 0,
+                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                            WRFactorTypeId = 0,
+                            UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                            AccountID = selectAccountData.value?.accountid ?: 0,
+                            IsSpecified = 0,
+                            OrderQty = oneNumberInputEdittext.text.toString().toLong(),
+                            DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                            WRPriceType = 1,
+                            FixedPrice = onePriceInputEdittext.text.toString().toDouble(),
+                            WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                            TimevalidType = 4,
+                            FirstRatio = 0.0,
+                            PerformanceTemplateID = 0,
+                            BuyOrSell = 1,
+                            PriceDisplayMode = 1,
+                            CanBargain = 0,
+                            ApplyID = 0,
+                            CanPart = 1,
+                            HasWr = 0,
+                            DeliveryMonth = data.DeliveryMonth ?: "",
+                            DelistMinQty = startInputNumber.text.toString().toLong(),
+                            WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                        ) {
+                            viewModel.controlDialogDisappear.postValue(true)
+                        }
+
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.qhj_main_blue_bg
+                    text = "卖出"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(24)
+                }
+
+                textView {
+                    onThrottleFirstClick {
+                        viewModel.controlDialogDisappear.postValue(true)
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.hnxt_cancel_bg
+                    text = "取消"
+                    textColorInt = R.color.white
+                    textSizeAuto = 38
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(13)
+                }
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+    }
+}
+
+//一口价买挂牌
+class CdysOneBuyListedUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: TjmdMarketViewModel,
+    private val type: String,
+    data : ListedData
+) {
+
+    //选择的资金账号
+    val selectAccountData: MutableLiveData<AccountData> = MutableLiveData()
+
+    //挂牌价格输入
+    lateinit var onePriceInputEdittext: MangeNumberEditText2
+
+    //挂牌数量
+    lateinit var oneNumberInputEdittext: MangeNumberEditText2
+
+    //起摘数量输入框
+    lateinit var startInputNumber: EditText
+
+    //挂牌金额
+    lateinit var one_delisting_amount: TextView
+
+    //SeekBar
+    lateinit var seekBar: SeekBar
+    //挂牌最大数量
+    val maxlistedNumber : MutableLiveData<Int> = MutableLiveData()
+
+    var marginValue = 0.0//履约保证金比例
+
+    //初始化设置履约保证金比例
+    fun setMarginValue() {
+        marginValue =
+            GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
+                ?: 0.0
+    }
+
+    @SuppressLint("SetTextI18n")
+    @RequiresApi(Build.VERSION_CODES.O)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            setMarginValue()
+            selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
+            backgroundDrawable = createRoundRectDrawable("#ffffff", 24)
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatAccountDataSheetDialog(
+                        "请选择资金账号",
+                        GlobalDataCollection.instance?.accountDataList ?: arrayListOf()
+                    ) {
+                        viewModel.resetAccountDataBySelect(this)
+                        selectAccountData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "交易账户"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    selectAccountData.bindOptional(context) {
+                        text = it?.accountid.toString() + "   " + it?.accountname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "挂牌价格"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                numberEditText {
+                    text = "1"
+                    onePriceInputEdittext = this
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNullOrEmpty().not()) {
+                            if (value.toDouble() != 0.0 && marginValue != 0.0) {
+                                maxlistedNumber.postValue(
+                                    viewModel.usedAccountData.value?.canUserAmount?.div(
+                                        value.toString().toDouble()
+                                    )?.div(marginValue.toDouble())?.toInt()
+                                )
+                            }
+                            if (oneNumberInputEdittext.text.toString().isNullOrEmpty().not()) {
+                                //这里计算金额和履约保证金
+                                var amount = value.toString().toDouble()
+                                    .times(oneNumberInputEdittext.text.toString().toDouble())
+                                if (amount == 0.0) {
+                                    one_delisting_amount.text = NumberUtils.roundNum(
+                                        amount.toString(),
+                                        2
+                                    )
+                                } else {
+                                    one_delisting_amount.text = NumberUtils.roundNum(
+                                        amount.toString(),
+                                        2
+                                    ) + "(需履约保证金" + NumberUtils.roundNum(
+                                        amount.times(
+                                            marginValue
+                                        ) ?: 0.0, 2
+                                    ) + ")"
+                                }
+                            }
+                        }
+                    }
+
+                }.lparams(0, autoSize(72), 1f) {
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                verticalLayout {
+                    textView {
+                        text = "挂牌数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                        topMargin = autoSize(36)
+                    }
+                }.lparams(autoSize(250), autoSize(290))
+
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        numberEditText {
+
+//                            setChangeValue()
+                            text = data.WrFtWrstandard?.minivalue
+                            changeValue = data.WrFtWrstandard?.minivalue?.toDouble() ?: 1.0
+                            oneNumberInputEdittext = this
+                            setOnTextChangeListener { view, value ->
+                                if (value.isNullOrEmpty().not()) {
+                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
+                                            .not()
+                                    ) {
+                                        var amount = value.toString().toDouble()
+                                            .times(onePriceInputEdittext.text.toString().toDouble())
+                                        if (amount == 0.0) {
+                                            one_delisting_amount.text = NumberUtils.roundNum(
+                                                amount.toString(),
+                                                2
+                                            )
+                                        } else {
+                                            one_delisting_amount.text = NumberUtils.roundNum(
+                                                amount.toString(),
+                                                2
+                                            ) + "(需履约保证金" + NumberUtils.roundNum(
+                                                amount.times(
+                                                    marginValue
+                                                ) ?: 0.0, 2
+                                            ) + ")"
+                                        }
+                                    }
+                                }
+                            }
+                        }.lparams(0, autoSize(72), 1f) {
+                            marginEnd = autoSize(36)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 34
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(143))
+
+                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
+                        min = 1
+                        max = 100
+                        seekBar = this
+                        isIndeterminate = false
+                        splitTrack = false
+                        setPadding(autoSize(30), 0, autoSize(30), 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
+                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+                            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                                oneNumberInputEdittext.text = NumberUtils.roundNum(maxlistedNumber.value?.times(p1.div(100.0)).toString(),0)
+                            }
+
+                            override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                            }
+
+                            override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                            }
+                        })
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(20)
+                    }
+
+                    linearLayout {
+                        textView {
+                            text = "0"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+
+                        emptyView()
+
+                        textView {
+                            maxlistedNumber.bindOptional(context){
+                                //最大可交易数量变更后,输入的值要根据seekbar进度来进行更新
+                                text = it.toString() + data.WrFtWrstandard?.enumdicname
+                            }
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(10)
+                    }
+
+                }.lparams(matchParent, autoSize(290))
+            }.lparams(matchParent, autoSize(290))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "起摘数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                verticalLayout {
+                    linearLayout {
+                        editText {
+                            startInputNumber = this
+                            hint = "请输入起摘数量"
+                            background = null
+                            inputType = EditorInfo.TYPE_CLASS_NUMBER
+//                            setDecimalInputType()
+                            hintColorStr = "#CCCCCC"
+                            textSizeAuto = 31
+                            textColorStr = "#333333"
+                        }.lparams(0, autoSize(132), 1f) {
+                            topMargin = autoSize(15)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_black_33
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(100))
+
+                    textView {
+                        text = "最小单位" + data.WrFtWrstandard?.minivalue + data.WrFtWrstandard?.enumdicname
+                        textSizeAuto = 29
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(matchParent, autoSize(167))
+
+            }.lparams(matchParent, autoSize(167))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "挂牌金额"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    one_delisting_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            textView {
+                viewModel.usedAccountData.bindOptional(context) {
+                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(), 2)
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+                marginStart = autoSize(250)
+            }
+
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+                        if (onePriceInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌价格")
+                            return@onThrottleFirstClick
+                        }
+                        if (onePriceInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌价格不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌数量不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (startInputNumber.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入起摘数量")
+                            return@onThrottleFirstClick
+                        }
+
+                        viewModel.requeryWRListingOrderReq(
+                            FactoryItems = data.getFactoryItems(),
+                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                            WRFactorTypeId = 0,
+                            UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                            AccountID = selectAccountData.value?.accountid ?: 0,
+                            IsSpecified = 0,
+                            OrderQty = oneNumberInputEdittext.text.toString().toLong(),
+                            DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                            WRPriceType = 1,
+                            FixedPrice = onePriceInputEdittext.text.toString().toDouble(),
+                            WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                            TimevalidType = 4,
+                            FirstRatio = 0.0,
+                            PerformanceTemplateID = 0,
+                            BuyOrSell = 0,
+                            DeliveryMonth = data.DeliveryMonth ?: "",
+                            PriceDisplayMode = 1,
+                            CanBargain = 0,
+                            ApplyID = 0,
+                            CanPart = 1,
+                            HasWr = 0,
+                            DelistMinQty = startInputNumber.text.toString().toLong(),
+                            WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                        ) {
+                            viewModel.controlDialogDisappear.postValue(true)
+                        }
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.qhj_main_blue_bg
+                    text = "买入"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(24)
+                }
+
+                textView {
+                    onThrottleFirstClick {
+                        viewModel.controlDialogDisappear.postValue(true)
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.hnxt_cancel_bg
+                    text = "取消"
+                    textColorInt = R.color.white
+                    textSizeAuto = 38
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(13)
+                }
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+
+        fun check(): Boolean {
+
+
+            return true
+        }
+    }
+}

+ 425 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdMarketFragment.kt

@@ -0,0 +1,425 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.lifecycle.MutableLiveData
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.OrderQuoteMyqData
+import cn.muchinfo.rma.global.data.PermancePlanTmpData
+import cn.muchinfo.rma.global.data.TjmdMarketSectionConfigData
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.lifecycle.getAppCompatActivity
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.BaseFragment
+import cn.muchinfo.rma.view.base.hnstcdys.CdysScreeningDialog
+import cn.muchinfo.rma.view.base.hnstcdys.dialog.HnstFloatListedDialog
+import cn.muchinfo.rma.view.base.hnstcdys.dialog.HnstOneListedDialog
+import cn.muchinfo.rma.view.base.hnstmain.friend.SelectFriendListData
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.warehousereceipt.BusinessHallActivity
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseScreeningDialog
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.WarehouseFloatListedDialog
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.WarehouseOneListedDialog
+import cn.muchinfo.rma.view.base.warehousereceipt.tradecircle.TradeCircleListedingActivity
+import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
+import com.blankj.utilcode.util.ActivityUtils
+import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.LogUtils
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import io.reactivex.disposables.Disposable
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.UI
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 天津麦顿的市场板块页面
+ */
+@Suppress("DEPRECATION")
+class TjmdMarketFragment : BaseFragment<TjmdMarketViewModel>(){
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    private lateinit var viewPager: ViewPager
+
+    val titlename by lazy {
+        arguments?.getString("titlename")
+    }
+
+    val index1 by lazy {
+        arguments?.getString("index")
+    }
+
+    /**
+     * 仓单贸易-一口价
+     */
+    val warehouseOnePriceUI by lazy { WarehouseOnePriceUI(this,viewModel) }
+
+    /**
+     * 仓单贸易-浮动价
+     */
+    val warehouseFloatingPriceUI by lazy { WarehouseFloatingPriceUI(this,viewModel) }
+
+    /**
+     * 仓单贸易-贸易圈
+     */
+    val warehouseOnePriceBargainingUI by lazy { WarehouseOnePriceBargainingUI(this,viewModel) }
+
+    /**
+     * 仓单预售-一口价
+     */
+    val cDYSOnePriceUI by lazy { CDYSOnePriceUI(this,viewModel) }
+
+    /**
+     * 仓单预售-浮动价
+     */
+    val cDYSFloatingPriceUI by lazy { CDYSFloatingPriceUI(this,viewModel) }
+
+    /**
+     * 仓单预售-贸易圈
+     */
+    val cDYSCircleUI by lazy { CDYSCircleUI(this,viewModel) }
+
+    /**
+     * 挂牌点选
+     */
+    val purchaseOrderUI by lazy { PurchaseOrderUI(this,viewModel) }
+
+    /**
+     * 掉期商品
+     */
+    val goodsSwapsUI by lazy { GoodsSwapsUI(this,viewModel) }
+
+    //当前页面ui所对应的板块信息
+    val selectTjmdMarketSectionConfigData : MutableLiveData<TjmdMarketSectionConfigData> = MutableLiveData()
+
+    //viewpager的适配器
+    private var newPagerAdapter : PagerAdapter? = null
+
+    //tabSegment标题
+    private val newTabsArray : ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    private val uiList : ArrayList<_FrameLayout> = arrayListOf()
+
+    private lateinit var mdDisposable : Disposable
+
+
+    //注册eventbus
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        EventBus.getDefault().register(this)
+    }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        EventBus.getDefault().unregister(this)
+    }
+
+    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+        super.onActivityResult(requestCode, resultCode, data)
+        if (requestCode == 1004 && resultCode == 1005){
+            val permancePlanTmpData = data?.getParcelableExtra<PermancePlanTmpData>("data") as PermancePlanTmpData
+            viewModel.selectPerformanceStepData.postValue(permancePlanTmpData)
+        }
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onQuoteMessageEvent(quoteMessageEvent: QuoteMessageEvent) {
+        /** 行情推送过来的goodsid **/
+        quoteMessageEvent.goodsid.forEach { goodid ->
+//            LogUtils.eTag("dadafafsjhdkjahkjdhak",goodid)
+//            //找到相应商品信息
+//            val goodsInfo = viewModel.floatProceDataList.value?.find { it.goodsid == goodid.toString() }
+//
+//            viewModel.floatProceDataList.value?.indexOf(goodsInfo)?.let {
+//                if (it != -1 && selectedTabIndex == 1) {//刷新相应item
+//                    floatingPriceUI.quoteFresh(it)
+//                }
+//            }
+
+            if (selectTjmdMarketSectionConfigData.value?.trademode == "16"){//挂牌点选页面接收行情刷新
+                purchaseOrderUI.refreshQuoteMessageEvent(quoteMessageEvent)
+            }else if (selectTjmdMarketSectionConfigData.value?.trademode == "46"){//掉期市场页面接收行情刷新
+                goodsSwapsUI.refreshQuoteMessageEvent(quoteMessageEvent)
+            }
+        }
+    }
+
+
+    fun initMenuData(){
+        val tjmdMarketData = GlobalDataCollection.instance?.getTjmdShowMarketSectionList()?.get(index = index1?.toInt() ?: 0)
+        tjmdMarketData?.mlist?.forEach {
+            if (it.trademode == "17"){//仓单贸易和仓单预售
+                if (it.auctionwrtype == "2"){//有仓单=仓单贸易
+                    if (it.listingmode == "1"){//一手价
+                        newTabsArray.add(it.marketname ?: "")
+                        uiList.add(warehouseOnePriceUI.root)
+                    }else if (it.listingmode == "2"){//浮动价
+                        newTabsArray.add(it.marketname ?: "")
+                        uiList.add(warehouseFloatingPriceUI.root)
+                    }else if (it.listingmode == "3"){//贸易圈
+                        newTabsArray.add(it.marketname ?: "")
+                        uiList.add(warehouseOnePriceBargainingUI.root)
+                    }
+                }else if (it.auctionwrtype == "1"){//无仓单=仓单预售
+                    if (it.listingmode == "1"){//一手价
+                        newTabsArray.add(it.marketname ?: "")
+                        uiList.add(cDYSOnePriceUI.root)
+                    }else if (it.listingmode == "2"){//浮动价
+                        newTabsArray.add(it.marketname ?: "")
+                        uiList.add(cDYSFloatingPriceUI.root)
+                    }else if (it.listingmode == "3"){//贸易圈
+                        newTabsArray.add(it.marketname ?: "")
+                        uiList.add(cDYSCircleUI.root)
+                    }
+                }
+            }else if (it.trademode == "16"){//挂牌点选
+                newTabsArray.add(it.marketname ?: "")
+                uiList.add(purchaseOrderUI.root)
+            }else if (it.trademode == "46"){//掉期交易
+                newTabsArray.add(it.marketname ?: "")
+                uiList.add(goodsSwapsUI.root)
+            }
+        }
+
+
+        newPagerAdapter = object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = newTabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                return uiList.get(position).apply {
+                    container.addView(
+                        this,
+                        ViewGroup.LayoutParams(matchParent, matchParent)
+                    )
+                }
+            }
+
+            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 = newTabsArray.size
+
+        }
+
+    }
+
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        initMenuData()
+        return UI {
+            verticalLayout {
+                viewModel.queryFtDeliveryGoods()
+
+                 viewModel.circleDataByListed.bindOptional(context){
+                    if (it?.wrfactortypeid.isNullOrEmpty().not()){
+                        val intent = Intent()
+                        intent.putExtra("data", it)
+                        intent.putExtra("modelType", selectTjmdMarketSectionConfigData.value?.auctionwrtype)
+                        intent.putExtra("listedData", ListedData())
+                        intent.putExtra("hasType", "1")
+                        intent.setClass(context, TradeCircleListedingActivity::class.java)
+                        ActivityUtils.startActivity(intent)
+                    }
+                }
+
+                viewModel.orderQuoteDataByListed.bindOptional(context){
+                    if (it?.deliverygoodsid.isNullOrEmpty().not()){
+                        val intent = Intent()
+                        intent.putExtra("data", it)
+                        intent.putExtra("type", selectTjmdMarketSectionConfigData.value?.auctionwrtype)
+                        intent.putExtra("isOpenListedDialog","1")
+                        intent.putExtra("pricetype", selectedTabIndex.plus(1).toString())
+                        intent.setClass(context, BusinessHallActivity::class.java)
+                        ActivityUtils.startActivity(intent)
+                    }
+                }
+
+                 viewModel.noWRFactorTypeIdDataForListed.bindOptional(context){
+                    if (it?.DeliveryGoodsID.isNullOrEmpty().not()){
+                        val data = selectTjmdMarketSectionConfigData.value
+                        if (data?.trademode == "17"){//仓单贸易和仓单预售
+                            if (data.auctionwrtype == "2"){//有仓单=仓单贸易
+                                if (data.listingmode == "1"){//一手价
+                                    getAppCompatActivity().TjmdWarehouseOneListedDialog(fragment = this@TjmdMarketFragment,activity = getAppCompatActivity(),viewModel = viewModel,type = "1",data = it ?: ListedData()).show()
+                                }else if (data.listingmode == "2"){//浮动价
+                                    getAppCompatActivity().TjmdWarehouseFloatListedDialog(activity = getAppCompatActivity(),viewModel = viewModel,type = "1",data = it ?: ListedData()).show()
+                                }else if (data.listingmode == "3"){//贸易圈
+                                    val intent = Intent()
+                                    intent.putExtra("data", OrderQuoteMyqData())
+                                    intent.putExtra("modelType", "1")
+                                    intent.putExtra("listedData",it)
+                                    intent.putExtra("hasType", "2")
+                                    intent.setClass(context, TradeCircleListedingActivity::class.java)
+                                    ActivityUtils.startActivity(intent)
+                                }
+                            }else if (data.auctionwrtype == "1"){//无仓单=仓单预售
+                                if (data.listingmode == "1"){//一手价
+                                    getAppCompatActivity().TjmdHnstOneListedDialog(activity = getAppCompatActivity(),viewModel = viewModel,type = "2",data = it ?: ListedData()).show()
+                                }else if (data.listingmode == "2"){//浮动价
+                                    getAppCompatActivity().TjmdHnstFloatListedDialog(activity = getAppCompatActivity(),viewModel = viewModel,type = "2",data = it ?: ListedData()).show()
+                                }else if (data.listingmode == "3"){//贸易圈
+                                    val intent = Intent()
+                                    intent.putExtra("data", OrderQuoteMyqData())
+                                    intent.putExtra("modelType", "2")
+                                    intent.putExtra("listedData",it)
+                                    intent.putExtra("hasType", "2")
+                                    intent.setClass(context, TradeCircleListedingActivity::class.java)
+                                    ActivityUtils.startActivity(intent)
+                                }
+                            }
+                        }else if (data?.trademode == "16"){//挂牌点选
+
+                        }else if (data?.trademode == "46"){//掉期交易
+
+                        }
+                        viewModel.resetSelectContent()
+                    }
+                }
+
+                linearLayout {
+                    background = resources.getDrawable(R.color.main_title_bg_color)
+                    gravity = Gravity.CENTER_VERTICAL
+                    linearLayout {
+                        selectTjmdMarketSectionConfigData.bindOptional(context){
+                            if (it?.trademode == "17"){//仓单贸易和仓单预售
+                                 visibility = View.VISIBLE
+                            }else if (it?.trademode == "16"){//挂牌点选
+                                visibility = View.INVISIBLE
+                            }else if (it?.trademode == "46"){//掉期交易
+                                visibility = View.INVISIBLE
+                            }
+                        }
+                        gravity = Gravity.CENTER_VERTICAL
+                        imageView {
+                            onThrottleFirstClick {
+                                if (selectTjmdMarketSectionConfigData.value?.trademode == "16" || selectTjmdMarketSectionConfigData.value?.trademode == "46"){
+                                    return@onThrottleFirstClick
+                                }
+                                val data = selectTjmdMarketSectionConfigData.value
+                                if (data?.trademode == "17"){//仓单贸易和仓单预售
+                                    if (data.auctionwrtype == "2"){//有仓单=仓单贸易
+                                        if (data.listingmode == "1"){//一手价
+                                            getAppCompatActivity().WarehouseScreeningDialog(viewModel,getAppCompatActivity(),"-1","1").show()
+                                        }else if (data.listingmode == "2"){//浮动价
+                                            getAppCompatActivity().WarehouseScreeningDialog(viewModel,getAppCompatActivity(),"-1","2").show()
+                                        }else if (data.listingmode == "3"){//贸易圈
+                                            getAppCompatActivity().WarehouseScreeningDialog(viewModel,getAppCompatActivity(),warehouseOnePriceBargainingUI.selectedTabIndex.toString(),"3").show()
+                                        }
+                                    }else if (data.auctionwrtype == "1"){//无仓单=仓单预售
+                                        if (data.listingmode == "1"){//一手价
+                                            getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),"-1","1").show()
+                                        }else if (data.listingmode == "2"){//浮动价
+                                            getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),"-1","2").show()
+                                        }else if (data.listingmode == "3"){//贸易圈
+                                            getAppCompatActivity().CdysScreeningDialog(viewModel,getAppCompatActivity(),cDYSCircleUI.selectedTabIndex.toString(),"3").show()
+                                        }
+                                    }
+                                }else if (data?.trademode == "16"){//挂牌点选
+
+                                }else if (data?.trademode == "46"){//掉期交易
+
+                                }
+                            }
+                            imageResource = R.mipmap.yrdz_screening_icon
+                        }.lparams(autoSize(48), autoSize(48)){
+                            marginStart = autoSize(36)
+                        }
+                    }.lparams(autoSize(200), autoSize(120))
+
+                    emptyView()
+
+                    textView {
+                        text = titlename
+                        textColorInt = R.color.white
+                        textSizeAuto = 43
+                    }.lparams(wrapContent, wrapContent)
+
+                    emptyView()
+                    view {
+
+                    }.lparams(autoSize(200), autoSize(120))
+                }.lparams(matchParent, autoSize(120))
+
+                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
+                            val data = GlobalDataCollection.instance?.getTjmdShowMarketSectionList()?.get(index = index1?.toInt() ?: 0)?.mlist?.get(index)
+                            selectTjmdMarketSectionConfigData.postValue(data)
+                            if (data?.trademode == "46"){//开始订阅掉期商品
+                                goodsSwapsUI.startSubscriptQuote()
+                                purchaseOrderUI.endSubscriptQuote()
+                            }else if (data?.trademode == "16"){//开始订阅挂牌点选市场
+                                purchaseOrderUI.startSubscriptQuote()
+                                goodsSwapsUI.endSubscriptQuote()
+                            }else{//掉期和挂牌点选都取消订阅
+                                goodsSwapsUI.endSubscriptQuote()
+                                purchaseOrderUI.endSubscriptQuote()
+                            }
+                        }
+                    })
+                    if (GlobalDataCollection.instance?.getTjmdShowMarketSectionList()?.get(index = index1?.toInt() ?: 0)?.mlist?.size ?: 0 > 5){
+                        segment.mode = QMUITabSegment.MODE_SCROLLABLE
+                    }else{
+                        segment.mode = QMUITabSegment.MODE_FIXED
+                    }
+
+                    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 = newPagerAdapter
+                }.lparams(matchParent, matchParent)
+
+                segment.setupWithViewPager(viewPager)
+                segment.selectTab(0)
+            }
+        }.view
+    }
+
+}

+ 1215 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdMarketViewModel.kt

@@ -0,0 +1,1215 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.global.GlobalDataCollection
+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.toPercentage
+import cn.muchinfo.rma.global.toShowTime3
+import cn.muchinfo.rma.netManage.base.InteractiveException
+import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
+import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.base.BaseViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
+import com.blankj.utilcode.util.LogUtils
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mtp.polymer.com.autowidget.dialog.SelectData
+import mtp.polymer.com.autowidget.utils.TaskUiModel
+
+/**
+ * 天津麦顿的市场fragmentviewmodel
+ */
+class TjmdMarketViewModel : BaseViewModel(){
+
+    //-----------------------------------仓单贸易相关-----------------------------------------------
+    //选择的履约模版数据
+    val selectPerformanceStepData : MutableLiveData<PermancePlanTmpData> = MutableLiveData()
+
+    /**
+     * 加载状态控制
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
+
+    //用于控制挂牌弹窗的消失 当值设置为true时,控制dialog隐藏
+    val controlDialogDisappear : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
+
+    //一口价报价牌数据
+    val onePrcieDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
+
+    //浮动价报价牌数据
+    val floatProceDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
+
+    //品种品类筛选框列表
+    val ftDeliveryGoodsDataList : MutableLiveData<List<FtDeliveryGoodsData>> = MutableLiveData()
+
+    //选择的商品
+    val selectWrFtWrstandardData : MutableLiveData<WrFtWrstandard> = MutableLiveData()
+
+    //要素定义项
+    val WrStandardFactoryItemDataList : MutableLiveData<List<FtDeliveryGoodsDataListData>> = MutableLiveData()
+
+    //选择的商品组列表
+    val goodsGroupList : MutableLiveData<List<SelectData>> = MutableLiveData()
+    //选择的商品组实体
+    val selectGoodsGroupData : MutableLiveData<SelectData> = MutableLiveData()
+
+    //选择的商品列表
+    val goodsInfoList : MutableLiveData<List<SelectData>> = MutableLiveData()
+    //选择的期货合约实体
+    val selectGoodsInfoData : MutableLiveData<SelectData> = MutableLiveData()
+    /**
+     * 当前选择的资金账户
+     */
+    val usedAccountData : MutableLiveData<AccountData> = MutableLiveData()
+
+    /**
+     * 交易页面的当前商品的盘面信息
+     */
+    val quoteDayData: MutableLiveData<QuoteDayData> = MutableLiveData()
+
+    /**
+     * 库存明细
+     */
+    val detailsWarehouseContentDataList: MutableLiveData<List<HoldLBData>> = MutableLiveData()
+
+
+    /**
+     * 贸易圈卖挂牌单据数据
+     */
+    val circleSellContentDataList: MutableLiveData<List<OrderQuoteMyqData>> = MutableLiveData()
+
+
+    /**
+     * 贸易圈买挂牌单据数据
+     */
+    val circleBuyContentDataList: MutableLiveData<List<OrderQuoteMyqData>> = MutableLiveData()
+
+
+    //-----------------贸易圈买挂牌-----------------
+    /**
+     * 查询贸易圈买挂牌
+     */
+    fun queryOrderBuyQuoteMyq(wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("buyorsell","0")
+            put("haswr","1")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                circleBuyContentDataList.postValue(getcircleContentDataListRightData(respData ?: arrayListOf()))
+            }
+        }
+    }
+
+    /**
+     * 查询贸易圈买挂牌-筛选挂牌时
+     */
+    fun queryOrderBuyQuoteMyqByListed(wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("buyorsell","0")
+            put("haswr","1")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData.isNullOrEmpty().not()){
+                    circleDataByListed.postValue(respData?.get(0))
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                }
+            }
+        }
+    }
+
+    //-----------------贸易圈卖挂牌-----------------
+
+    /**
+     * 查询贸易圈卖挂牌-筛选挂牌
+     */
+    fun queryOrderSellQuoteMyqByListed(wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("buyorsell","1")
+            put("haswr","1")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+            put("deliverygoodsid",getDeliveryGoodsIDByWRStandardID(wrstandardid))
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData.isNullOrEmpty().not()){
+                    circleDataByListed.postValue(respData?.get(0))
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                }
+            }
+        }
+    }
+
+    /**
+     * 查询贸易圈卖挂牌
+     */
+    fun queryOrderSellQuoteMyq(wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("buyorsell","1")
+            put("haswr","1")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                circleSellContentDataList.postValue(getcircleContentDataListRightData(respData ?: arrayListOf()))
+            }
+        }
+    }
+
+    /**
+     * 贸易圈卖挂牌组装右侧数据 "挂牌方","价格","数量","议价","整单","挂牌有效期","履约保证金","履约方式","仓库"
+     */
+    fun getcircleContentDataListRightData(respData: List<OrderQuoteMyqData>) : List<OrderQuoteMyqData>{
+        val newList = arrayListOf<OrderQuoteMyqData>()
+        respData.forEach {
+            val newRightData = arrayListOf<String>()
+            //履约方式
+            newRightData.add(it.templatename?.isBlankString() ?: "-")
+            //价格
+            newRightData.add(it.fixedprice ?: "-")
+            //数量
+            newRightData.add(it.orderqty ?: "-")
+            //议价
+            newRightData.add(if (it.canbargain == "0"){"否"}else{"是"})
+            //整单
+            newRightData.add(if (it.canpart == "0"){"是"}else{"否"})
+            //挂牌有效期
+            newRightData.add(it.validtime?.toShowTime3() ?: "-")
+            //履约保证金
+            newRightData.add(it.marginvalue?.toPercentage() ?: "-")
+            //挂牌方
+            newRightData.add(it.userid + it.username ?: "-")
+            //仓库
+            newRightData.add(it.warehousename ?: "-")
+            val newData = it.copy(rightData = newRightData)
+            newList.add(newData)
+        }
+        return newList
+    }
+
+    //重新赋值资金账户
+    fun resetAccountData(){
+        val accountDataList = GlobalDataCollection.instance?.accountDataList
+        if (accountDataList.isNullOrEmpty().not()) {
+            val accountData = GlobalDataCollection.instance?.accountData
+            accountData?.clearData()
+            accountData?.setNormalData()
+            usedAccountData.postValue(accountData)
+        }
+    }
+
+    //重新赋值资金账户
+    fun resetAccountDataBySelect(data : AccountData){
+        data.clearData()
+        data.setNormalData()
+        usedAccountData.postValue(data)
+    }
+
+
+    /**
+     * 持仓挂牌
+     * @param LadingBillId Long
+     * @param TradeDate String
+     * @param SubNum Long
+     * @param WRFactorTypeId Long
+     * @param UserID Int
+     * @param AccountID Long
+     * @param IsSpecified Int
+     * @param MatchAccIDs List<Long>
+     * @param OrderQty Long
+     * @param DeliveryGoodsID Int
+     * @param WRPriceType Int
+     * @param FixedPrice Double
+     * @param WRTradeGoods WRGoodsInfo
+     * @param PriceFactor Double
+     * @param PriceMove Double
+     * @param TimevalidType Int
+     * @param FirstRatio Double
+     * @param PerformanceTemplateID Long
+     * @param BuyOrSell Int
+     * @param PriceDisplayMode Int
+     * @param CanBargain Int
+     * @param Attachment1 String
+     * @param Attachment2 String
+     * @param Remark String
+     * @param ApplyID Long
+     * @param CanPart Int
+     * @param HasWr Int
+     * @param WRStandardID Int
+     * @param isSuccess Function1<[@kotlin.ParameterName] Boolean, Unit>
+     */
+    fun requeryWRListingOrderReq(
+        LadingBillId: Long = 0,//提单id(wrholdlb的LadingBillId字段),卖的时候填写
+        TradeDate: String = "",//交易日
+        SubNum: Long = 0,// 提单子单号(wrholdlb的SubNum字段),卖的时候填写
+        WRFactorTypeId: Long = 0,//仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写
+        UserID: Int = 0,//用户ID
+        AccountID: Long = 0,//资金账号
+        IsSpecified: Int = 0,//是否指定对手 0 不指定 1 指定
+        OrderQty: Long = 0,//委托数量(可挂部分数据量)
+        DeliveryGoodsID: Int = 0,//交割商品商品ID
+        WRPriceType: Int = 0,//价格方式
+        FixedPrice: Double = 0.0,//固定价格
+        WRTradeGoods: WarehouseTradeMI1.WRGoodsInfo,//仓单贸易商品配置集合(浮动价时填写)
+        PriceFactor: Double = 0.0,//价格系数(浮动价时填写)    -   [挂牌]
+        PriceMove: Double = 0.0,//升贴水(浮动价时填写)
+        TimevalidType: Int = 0,//时间有效类型
+        FirstRatio: Double = 0.0,//首付比例
+        PerformanceTemplateID: Long = 0,//履约计划模板ID
+        BuyOrSell: Int = 0,// 买卖方向
+        PriceDisplayMode: Int = 0,//浮动价显示方式
+        CanBargain: Int = 0,//挂牌是否可议价0:不可1:可-摘牌是否议价
+        Attachment1: String = "",//附件1
+        Attachment2: String = "",//附件2
+        Remark: String = "",//备注
+        ApplyID: Long = 0,//申请ID
+        CanPart: Int = 0,//是否允许部份摘牌0:不允许;1:允许
+        MatchAccIDsString : List<String> = arrayListOf(),//仓单贸易对手用户ID集合(指定对手时填写)
+        DeliveryMonth : String = "",//交收月
+        HasWr: Int = 0,//是否有仓单-0:没有仓单 1:有仓单
+        DelistMinQty : Long = 0,//起摘数量
+        WRStandardID: Int = 0,//现货品种ID
+        MarginFlag : Int = 0,//挂牌是否指定保证金 0:否 1:是
+        MarginAlgorithm : Int = 0,//指定保证金方式 1:比率 2:固定
+        MarginValue : Double = 0.0,//指定保证金设置值
+        AllFriendsFlag : Int = 0,//是否全好友可见 0:否 1:是
+        FactoryItems : List<WarehouseTradeMI1.DGFactoryItems>,//要素类型明细集合(没有仓单要素ID填写)
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.warehouseManager?.HdWROrderReq(
+                MarginFlag = MarginFlag,
+                MarginAlgorithm = MarginAlgorithm,
+                MarginValue = MarginValue,
+                AllFriendsFlag = AllFriendsFlag,
+                LadingBillId = LadingBillId,
+                TradeDate = TradeDate,
+                AccountID = AccountID,
+                OrderQty = OrderQty,
+                IsSpecified = IsSpecified,
+                SubNum = SubNum,
+                DeliveryMonth = DeliveryMonth,
+                DeliveryGoodsID = DeliveryGoodsID,
+                WRFactorTypeId = WRFactorTypeId,
+                UserID = UserID,
+                MatchAccIDsString = MatchAccIDsString,
+                WRPriceType = WRPriceType,
+                FixedPrice = FixedPrice,
+                WRTradeGoods = WRTradeGoods,
+                PriceFactor = PriceFactor,
+                PriceMove = PriceMove,
+                DelistMinQty = DelistMinQty,
+                TimevalidType = TimevalidType,
+                FirstRatio = FirstRatio,
+                PerformanceTemplateID = PerformanceTemplateID,
+                BuyOrSell = BuyOrSell,
+                CanPart = CanPart,
+                HasWr = HasWr,
+                WRStandardID = WRStandardID,
+                PriceDisplayMode = PriceDisplayMode,
+                CanBargain = CanBargain,
+                Attachment1 = Attachment1,
+                Attachment2 = Attachment2,
+                Remark = Remark,
+                ApplyID = ApplyID,
+                FactoryItems = FactoryItems
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
+    /**
+     * 查询现货明细
+     */
+    fun querydetailsWarehouseWrPosition(data : ListedData){
+        val params = mutableMapOf<String,String>().apply {
+            put("accountid", GlobalDataCollection.instance?.accountId.toString())
+            put("warehouseid",data.getWarehouseid())
+            put("deliverygoodsid", data.DeliveryGoodsID ?: "")
+            put("wrstandardid",data.WrFtWrstandard?.wrstandardid ?: "")
+        }
+        MyApplication.getInstance()?.warehouseManager?.queryHoldLB(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                detailsWarehouseContentDataList.postValue(respData)
+            }
+        }
+    }
+
+    //获取选择的仓库ID和选择的要素类型
+    //type 为1是仓库 type 为2是其他要素
+    fun getSelectWarehouseOrFactoryid(type : String) : String{
+        var returnString = ""
+        WrStandardFactoryItemDataList.value?.forEach {
+            if (type == "1"){//取仓库id
+                if (it.dgfactoryitemtypeid == "1"){
+                    it.itemlst?.forEach { data ->
+                        if (data.isSelect == 1){
+                            returnString = data.warehouseid ?: ""
+                        }
+                    }
+                }
+            }else{
+                if (it.dgfactoryitemtypeid != "1"){
+                    it.itemlst?.forEach { data ->
+                        if (data.isSelect == 1){
+                            returnString = returnString + "," + data.dgfactoryitemvalue
+                        }
+                    }
+                }
+            }
+        }
+        return returnString
+    }
+
+    //获取选择的仓库ID和选择的要素类型 是否全部选择
+    fun getSelectBooble() : Boolean{
+        var selectNum = 0
+        var returnBooble = false
+        WrStandardFactoryItemDataList.value?.forEach {
+            it.itemlst?.forEach { data ->
+                if (data.isSelect == 1){
+                    selectNum = selectNum.plus(1)
+                }
+            }
+        }
+        returnBooble = selectNum >= WrStandardFactoryItemDataList.value?.size ?: 0
+        return returnBooble
+    }
+
+
+    //根据选择的商品组组织商品选择列表
+    fun setGoodsInfoList(goodsgroupid : String){
+        val newGoodsInfoList = arrayListOf<SelectData>()
+        val goodsInfoList1 = DataBase.getInstance().goodsInfoDao().all
+        goodsInfoList1?.forEach {
+            if (it?.goodsgroupid.toString() == goodsgroupid){
+                newGoodsInfoList.add(SelectData(id = it?.goodsid.toString(),value = it?.goodsname.toString(),goodsCode = it.goodscode ?: ""))
+            }
+        }
+        goodsInfoList.postValue(newGoodsInfoList)
+    }
+
+    //针对期货合约的 设置商品组选择的列表
+    fun setGoodsGroupAndGoodsInfoList(){
+        val newgoodsGroupList = arrayListOf<SelectData>()
+        val marketData = GlobalDataCollection.instance?.loginQueryData?.market?.find { it.trademode == 99 }//找出trademode 为99的市场
+        GlobalDataCollection.instance?.loginQueryData?.goodsgroups?.forEach {
+            if (it.marketid == marketData?.marketid){
+                newgoodsGroupList.add(SelectData(id = it.marketid.toString(),value = it.goodsgroupname,goodsgroupid = it.goodsgroupid.toString()))
+            }
+        }
+        goodsGroupList.postValue(newgoodsGroupList)
+    }
+
+    //重置品种品类筛选框列表
+    fun resetFtDeliveryGoodsDataList(){
+        ftDeliveryGoodsDataList.postValue(ftDeliveryGoodsDataList.value)
+    }
+
+    /**
+     * 针对仓库,要素等的item点击
+     */
+    fun setOnRightItemClick(
+        dgfactoryitemtypeid : String,
+        dgfactoryitemid : String
+    ){
+        val newWrStandardFactoryItemDataList = arrayListOf<FtDeliveryGoodsDataListData>()
+        WrStandardFactoryItemDataList.value?.forEach {
+            val sonItemList = arrayListOf<WrStandardFactoryItem>()
+            if (it.dgfactoryitemtypeid == dgfactoryitemtypeid){
+                it.itemlst?.forEach { data ->
+                    if (dgfactoryitemid == data.dgfactoryitemid){
+                        sonItemList.add(data.copy(isSelect = 1))
+                    }else{
+                        sonItemList.add(data.copy(isSelect = 0))
+                    }
+                }
+                newWrStandardFactoryItemDataList.add(it.copy(itemlst = sonItemList))
+            }else{
+                newWrStandardFactoryItemDataList.add(it)
+            }
+        }
+        WrStandardFactoryItemDataList.postValue(newWrStandardFactoryItemDataList)
+    }
+
+    /**
+     * 对左侧商品列表进行选择后的刷新
+     */
+    fun setOnItemClick(deliverygoodsid : String,wrstandardid : String){
+        val newftDeliveryGoodsDataList = arrayListOf<FtDeliveryGoodsData>()
+        ftDeliveryGoodsDataList.value?.forEach {
+            val sonItemList = arrayListOf<WrFtWrstandard>()
+            if (it.deliverygoodsid == deliverygoodsid){
+                it.wdlst?.forEach { data ->
+                    if (wrstandardid == data.wrstandardid){
+                        sonItemList.add(data.copy(isSelect = 1))
+                    }else{
+                        sonItemList.add(data.copy(isSelect = 0))
+                    }
+                }
+                newftDeliveryGoodsDataList.add(it.copy(wdlst = sonItemList))
+            }else{
+                it.wdlst?.forEach { data ->
+                    sonItemList.add(data.copy(isSelect = 0))
+                }
+                newftDeliveryGoodsDataList.add(it.copy(wdlst = sonItemList))
+            }
+        }
+        ftDeliveryGoodsDataList.postValue(newftDeliveryGoodsDataList)
+    }
+
+    /**
+     * 查询品种品类筛选框列表
+     */
+    fun queryWrStandardFactoryItem(wrstandardid : String){
+        val params = mutableMapOf<String,String>().apply {
+            put("wrstandardid",wrstandardid)
+        }
+        MyApplication.getInstance()?.quoteManager?.queryWrStandardFactoryItem(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                WrStandardFactoryItemDataList.postValue(respData)
+            }
+        }
+    }
+
+
+    /**
+     * 查询品种品类筛选框列表
+     */
+    fun queryFtDeliveryGoods(){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+        }
+        MyApplication.getInstance()?.quoteManager?.queryFtDeliveryGoods(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                ftDeliveryGoodsDataList.postValue(respData)
+            }
+        }
+    }
+
+    /**
+     * 对做完筛选或者挂牌操作后针对已选择的项进行重置
+     */
+    fun resetSelectContent(){
+        selectWrFtWrstandardData.postValue(WrFtWrstandard())
+        WrStandardFactoryItemDataList.postValue(arrayListOf())
+        selectGoodsGroupData.postValue(SelectData(id = "",value = ""))
+        selectGoodsInfoData.postValue(SelectData(id = "",value = ""))
+    }
+
+    //贸易圈左侧菜单挂牌信息
+    val circleDataByListed : MutableLiveData<OrderQuoteMyqData> = MutableLiveData()
+
+    //左侧菜单所有的挂牌信息
+    val orderQuoteDataByListed : MutableLiveData<OrderQuoteData> = MutableLiveData()
+
+    //点击挂牌后若找不到相应的信息则组装无仓单要素id的挂牌信息
+    val noWRFactorTypeIdDataForListed : MutableLiveData<ListedData> = MutableLiveData()
+
+    //通过选择的wrstandardid查找相对应的DeliveryGoodsID
+    fun getDeliveryGoodsIDByWRStandardID(wrstandardid : String = "") : String{
+        var deliverygoodsid = ""
+        ftDeliveryGoodsDataList.value?.forEach {
+            it.wdlst?.forEach { data ->
+                if (data.wrstandardid == wrstandardid){
+                    deliverygoodsid = it.deliverygoodsid ?: ""
+                }
+            }
+        }
+        return deliverygoodsid
+    }
+
+    //通过选择的wrstandardid查找相对应的实体
+    fun getWrFtWrstandardByWRStandardID(wrstandardid : String = "") : WrFtWrstandard{
+        var WrFtWrstandard = WrFtWrstandard()
+        ftDeliveryGoodsDataList.value?.forEach {
+            it.wdlst?.forEach { data ->
+                if (data.wrstandardid == wrstandardid){
+                    WrFtWrstandard = data
+                }
+            }
+        }
+        return WrFtWrstandard
+    }
+
+    /**
+     * 查询一口价报价牌用余挂牌时的筛选
+     * wrstandardid 品类id
+     * warehouseid 仓库id(筛选条件)
+     * dgitemname 商品要素项名称模糊匹配, 逗号隔开, 如 产地1,品牌1,规格12mm
+     */
+    fun queryOneOrderQuoteByListed(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("marketid","17201")
+            put("wrpricetype","1")
+            put("haswr","1")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (warehouseid.isNotEmpty()){
+                put("warehouseid",warehouseid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData.isNullOrEmpty().not()){
+                    orderQuoteDataByListed.postValue(respData?.get(0))
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                }
+            }
+        }
+    }
+
+    /**
+     * 查询一口价报价牌
+     * wrstandardid 品类id
+     * warehouseid 仓库id(筛选条件)
+     * dgitemname 商品要素项名称模糊匹配, 逗号隔开, 如 产地1,品牌1,规格12mm
+     */
+    fun queryOneOrderQuote(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("marketid","17201")
+            put("wrpricetype","1")
+            put("haswr","1")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (warehouseid.isNotEmpty()){
+                put("warehouseid",warehouseid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                onePrcieDataList.postValue(respData)
+            }
+        }
+    }
+
+    /**
+     * 查询浮动价报价牌用于挂牌
+     */
+    fun queryFloatOrderQuoteByListed(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("marketid","17201")
+            put("wrpricetype","2")//价格方式 - 1:固定价 2-浮动价
+            put("haswr","1")//0:仓单预售 1:仓单贸易
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (warehouseid.isNotEmpty()){
+                put("warehouseid",warehouseid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData.isNullOrEmpty().not()){
+                    orderQuoteDataByListed.postValue(respData?.get(0))
+
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(goodsId = selectGoodsInfoData.value?.id ?: "",goodsCode = selectGoodsInfoData.value?.goodsCode ?: "",DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 查询浮动价报价牌
+     */
+    fun queryFloatOrderQuote(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("marketid","17201")
+            put("wrpricetype","2")//价格方式 - 1:固定价 2-浮动价
+            put("haswr","1")//0:仓单预售 1:仓单贸易
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (warehouseid.isNotEmpty()){
+                put("warehouseid",warehouseid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                floatProceDataList.postValue(respData)
+                //说是不订阅行情,靠轮询10秒查
+            }
+        }
+    }
+
+
+
+    //-----------------------------------------仓单预售-----------------------------------------------
+
+    //一口价报价牌数据
+    val ysonePrcieDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
+
+    //浮动价报价牌数据
+    val ysfloatProceDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
+
+    /**
+     * 在无仓单预售下的情况下查询是否有相应的预售仓单持仓
+     */
+    val summaryWrPositionDataByDialog : MutableLiveData<HnstWrPositionData> = MutableLiveData()
+
+
+    /**
+     * 贸易圈卖挂牌单据数据
+     */
+    val yscircleSellContentDataList: MutableLiveData<List<OrderQuoteMyqData>> = MutableLiveData()
+
+
+    /**
+     * 贸易圈买挂牌单据数据
+     */
+    val yscircleBuyContentDataList: MutableLiveData<List<OrderQuoteMyqData>> = MutableLiveData()
+
+
+    //-----------------贸易圈买挂牌-----------------
+    /**
+     * 查询贸易圈卖挂牌
+     */
+    fun queryysOrderBuyQuoteMyq(wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("buyorsell","0")
+            put("haswr","0")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                yscircleBuyContentDataList.postValue(getyscircleContentDataListRightData(respData ?: arrayListOf()))
+            }
+        }
+    }
+
+
+
+    /**
+     * 查询贸易圈买挂牌-筛选挂牌时
+     */
+    fun queryysOrderBuyQuoteMyqByListed(wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("buyorsell","0")
+            put("haswr","0")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData.isNullOrEmpty().not()){
+                    circleDataByListed.postValue(respData?.get(0))
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(goodsCode = selectGoodsInfoData.value?.goodsCode,DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                }
+            }
+        }
+    }
+
+    //-----------------贸易圈卖挂牌-----------------
+
+    /**
+     * 查询贸易圈卖挂牌-筛选挂牌
+     */
+    fun queryysOrderSellQuoteMyqByListed(wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("buyorsell","1")
+            put("haswr","0")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData.isNullOrEmpty().not()){
+                    circleDataByListed.postValue(respData?.get(0))
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(goodsCode = selectGoodsInfoData.value?.goodsCode,DeliveryGoodsName = getDeliveryGoodsNameByWRStandardID(wrstandardid),DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                }
+            }
+        }
+    }
+
+    /**
+     * 查询贸易圈卖挂牌
+     */
+    fun queryysOrderSellQuoteMyq(wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("buyorsell","1")
+            put("haswr","0")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+        }
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuoteMyq(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                yscircleSellContentDataList.postValue(getyscircleContentDataListRightData(respData ?: arrayListOf()))
+            }
+        }
+    }
+
+    /**
+     * 贸易圈卖挂牌组装右侧数据 "挂牌方","价格","数量","议价","整单","挂牌有效期","履约保证金","履约方式","仓库"
+     */
+    fun getyscircleContentDataListRightData(respData: List<OrderQuoteMyqData>) : List<OrderQuoteMyqData>{
+        val newList = arrayListOf<OrderQuoteMyqData>()
+        respData.forEach {
+            val newRightData = arrayListOf<String>()
+            //挂牌方
+            newRightData.add(it.userid + it.username ?: "-")
+            //价格
+            newRightData.add(it.fixedprice ?: "-")
+            //数量
+            newRightData.add(it.orderqty ?: "-")
+            //议价
+            newRightData.add(if (it.canbargain == "0"){"否"}else{"是"})
+            //整单
+            newRightData.add(if (it.canpart == "0"){"是"}else{"否"})
+            //挂牌有效期
+            newRightData.add(it.validtime?.toShowTime3() ?: "-")
+            //履约保证金
+            newRightData.add(it.marginvalue?.toPercentage() ?: "-")
+            //履约方式
+            newRightData.add(it.templatename ?: "-")
+            //仓库
+            newRightData.add(it.warehousename ?: "-")
+            val newData = it.copy(rightData = newRightData)
+            newList.add(newData)
+        }
+        return newList
+    }
+
+    /**
+     * 查询相应要素下的预售仓单
+     */
+    fun queryysorderSummaryWrPosition(deliverygoodsid : String = "",warehouseid : String = "",wrstandardid : String = "",dgitemname : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("querytype","2")
+            put("haswr","0")
+            put("deliverygoodsid",deliverygoodsid)
+            put("warehouseid",warehouseid)
+            put("wrstandardid",wrstandardid)
+            put("dgitemname",dgitemname)
+        }
+        MyApplication.getInstance()?.warehouseManager?.queryWrPosition(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData?.isNotEmpty() == true){
+                    summaryWrPositionDataByDialog.postValue(respData.get(0))
+                }
+            }
+        }
+    }
+
+    //通过选择的wrstandardid查找相对应的DeliveryGoodsName
+    fun getDeliveryGoodsNameByWRStandardID(wrstandardid : String = "") : String{
+        var deliveryGoodsName = ""
+        ftDeliveryGoodsDataList.value?.forEach {
+            it.wdlst?.forEach { data ->
+                if (data.wrstandardid == wrstandardid){
+                    deliveryGoodsName = it.deliverygoodsname ?: ""
+                }
+            }
+        }
+        return deliveryGoodsName
+    }
+
+    /**
+     * 查询一口价报价牌筛选
+     */
+    fun queryysOneOrderQuoteByListed(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("marketid","17201")
+            put("wrpricetype","1")
+            put("haswr","0")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (warehouseid.isNotEmpty()){
+                put("warehouseid",warehouseid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+            if (deliverymonth.isNotEmpty()){
+                put("deliverymonth",deliverymonth)
+            }
+        }
+
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData.isNullOrEmpty().not()){
+                    orderQuoteDataByListed.postValue(respData?.get(0))
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryMonth = deliverymonth,DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+
+                }
+            }
+        }
+    }
+
+    /**
+     * 查询一口价报价牌
+     */
+    fun queryysOneOrderQuote(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("marketid","17201")
+            put("wrpricetype","1")
+            put("haswr","0")
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (warehouseid.isNotEmpty()){
+                put("warehouseid",warehouseid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+            if (deliverymonth.isNotEmpty()){
+                put("deliverymonth",deliverymonth)
+            }
+        }
+
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                ysonePrcieDataList.postValue(respData)
+            }
+        }
+    }
+
+    /**
+     * 查询浮动价报价牌筛选
+     */
+    fun queryysFloatOrderQuoteByListed(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("marketid","17201")
+            put("wrpricetype","2")//价格方式 - 1:固定价 2-浮动价
+            put("haswr","0")//0:仓单预售 1:仓单贸易
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (warehouseid.isNotEmpty()){
+                put("warehouseid",warehouseid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+            if (deliverymonth.isNotEmpty()){
+                put("deliverymonth",deliverymonth)
+            }
+        }
+
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                if (respData.isNullOrEmpty().not()){
+                    orderQuoteDataByListed.postValue(respData?.get(0))
+
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(goodsCode = selectGoodsInfoData.value?.goodsCode,DeliveryMonth = deliverymonth,DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+
+                }
+            }
+        }
+    }
+
+    /**
+     * 查询浮动价报价牌
+     */
+    fun queryysFloatOrderQuote(wrstandardid : String = "",warehouseid : String = "",dgitemname : String = "",deliverymonth : String = ""){
+        val params = mutableMapOf<String,String>().apply {
+            put("marketid","17201")
+            put("wrpricetype","2")//价格方式 - 1:固定价 2-浮动价
+            put("haswr","0")//0:仓单预售 1:仓单贸易
+            if (wrstandardid.isNotEmpty()){
+                put("wrstandardid",wrstandardid)
+            }
+            if (warehouseid.isNotEmpty()){
+                put("warehouseid",warehouseid)
+            }
+            if (dgitemname.isNotEmpty()){
+                put("dgitemname",dgitemname)
+            }
+            if (deliverymonth.isNotEmpty()){
+                put("deliverymonth",deliverymonth)
+            }
+        }
+
+        MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                ysfloatProceDataList.postValue(respData)
+            }
+        }
+    }
+
+    //------------------------------------------挂牌点选相关--------------------------------------------
+    //挂牌转让数据列表
+    val transferDataList : MutableLiveData<List<GoodsInfo>> = MutableLiveData()
+
+    /**
+     * 初始化列表
+     * @param tag String
+     * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun initData(tag: String,callback: (isCompleted: Boolean, err: Error?) -> Unit){
+        val list = arrayListOf<GoodsInfo>()
+        val allList = DataBase.getInstance().goodsInfoDao().all
+        val deliveryRelationList = GlobalDataCollection.instance?.deliveryRelationDataArrayList
+        allList.forEach {data ->
+            if (data.trademode == 16 && data.goodsstatus == 3){
+                list.add(data)
+//                val deliveryRelationData = deliveryRelationList?.find { it?.goodsid == data.goodsid.toString() }
+//                if (deliveryRelationData?.goodsid.isNullOrEmpty().not()){
+//                    if (deliveryRelationData?.deliverytype != "2" && deliveryRelationData?.deliverytype != "4"){////交割模式 - 1:X交割 2:X+P交割 3:X+C交割 4:X+P+C交割  1,3为云融大宗的挂牌转让 2,4为云融大宗的基差点价
+//                        list.add(data)
+//                    }
+//                }else{
+//
+//                }
+            }
+        }
+        transferDataList.postValue(list)
+        if (list.size > 10){
+            queryQuoteDay(tag,0,10,list){isCompleted, err ->
+                callback(isCompleted, err)
+            }
+        }else{
+            queryQuoteDay(tag,0,list.size,list){isCompleted, err ->
+                callback(isCompleted, err)
+            }
+        }
+    }
+
+    //---------------------------------------掉期商品相关--------------------------------------------
+    //掉期数据列表
+    val swapsDataList : MutableLiveData<List<GoodsInfo>> = MutableLiveData()
+
+
+    /**
+     * 初始化列表
+     * @param tag String
+     * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun initswapsData(tag: String,callback: (isCompleted: Boolean, err: Error?) -> Unit){
+        val list = arrayListOf<GoodsInfo>()
+        val allList = DataBase.getInstance().goodsInfoDao().all
+        val deliveryRelationList = GlobalDataCollection.instance?.quoteGoodsListDataArrayList
+        //需要知道掉期trademodel
+        allList.forEach {data ->
+            if (data.trademode == 46 && data.goodsstatus == 3){
+                list.add(data)
+            }
+        }
+        swapsDataList.postValue(list)
+        if (list.size > 10){
+            queryQuoteDay(tag,0,10,list){isCompleted, err ->
+                callback(isCompleted, err)
+            }
+        }else{
+            queryQuoteDay(tag,0,list.size,list){isCompleted, err ->
+                callback(isCompleted, err)
+            }
+        }
+    }
+
+
+
+    /**
+     * 请求盘面信息
+     * @param first Int
+     * @param last Int
+     * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryQuoteDay(
+        tag: String,
+        first: Int,
+        last: Int,
+        list : List<GoodsInfo> = arrayListOf(),
+        callback: (isCompleted: Boolean, err: Error?) -> Unit
+    ) {
+        val goodsCodes = getgoodsCodes(first, last,list)
+        val params = mutableMapOf<String, String>().apply {
+            put("goodsCodes", goodsCodes)
+        }
+        MyApplication.getInstance()?.futureManager?.queryQuoteDay(params = params) { isSuccess, respData, error ->
+            if (isSuccess) {
+                callback(true, null)
+            } else {
+                callback(false, error)
+            }
+        }
+
+        list.subList(first, last).let { addSubscriptQuote(tag = tag, goodsInfoList = it) }
+    }
+
+    //获取本商品的盘面信息的同时,还要获取关联商品的盘面信息
+    fun getgoodsCodes(first: Int, last: Int,list : List<GoodsInfo>): String {
+        var goodsCodes = ""
+        val newList = list.subList(first, last)
+        newList.forEach {
+            goodsCodes = goodsCodes + it.goodscode.toUpperCase() + ","
+        }
+        return goodsCodes
+    }
+
+    /**
+     * 订阅行情
+     * @param tag String
+     * @param goodsInfoList List<GoodsInfo>
+     */
+    fun addSubscriptQuote(tag: String, goodsInfoList: List<GoodsInfo>) {
+        GlobalScope.launch {
+            MyApplication.getInstance()?.quoteManager?.addSubscriptQuote(
+                tag = tag, goodsCodeSet = goodsInfoList.map { it.goodscode.toUpperCase() ?: "" }.toSet()
+            ) { _, _ ->
+
+            }
+        }
+    }
+
+
+    /**
+     * 请求盘面信息
+     * @param first Int
+     * @param last Int
+     * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryQuoteDayByListed(
+        tag: String,
+        goodsCodes: String,
+        isShowLoading: Boolean
+    ) {
+        if (isShowLoading) {
+            loadingDialogStatus.postValue(TaskUiModel.inFlight())
+        }
+
+        val params = mutableMapOf<String, String>().apply {
+            put("goodsCodes", goodsCodes)
+        }
+        MyApplication.getInstance()?.futureManager?.queryQuoteDay(params = params) { isSuccess, respData, error ->
+            if (isSuccess) {
+                if (respData?.isEmpty()?.not() == true) {
+                    quoteDayData.postValue(respData[0])
+                }
+                if (isShowLoading) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "数据请求成功"))
+                }
+
+            } else {
+                if (isShowLoading) {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = "数据请求失败"
+                            )
+                        )
+                    )
+                }
+            }
+        }
+        addSubscriptQuoteByListed(tag = tag, goodsCodes = setOf(goodsCodes))
+    }
+
+    /**
+     * 订阅行情
+     * @param tag String
+     * @param goodsInfoList List<GoodsInfo>
+     */
+    fun addSubscriptQuoteByListed(tag: String, goodsCodes: Set<String>) {
+        GlobalScope.launch {
+            MyApplication.getInstance()?.quoteManager?.addSubscriptQuote(
+                tag = tag, goodsCodeSet = goodsCodes
+            ) { _, _ ->
+                LogUtils.eTag("订阅行情", goodsCodes)
+            }
+        }
+    }
+
+    /**
+     * 取消订阅
+     * @param tag String
+     */
+    fun removeSubscriptQuote(tag: String) {
+        GlobalScope.launch {
+            MyApplication.getInstance()?.quoteManager?.removeSubscriptQuote(
+                tag = tag
+            )
+        }
+    }
+}

+ 1105 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdWarehouseFloatListedDialog.kt

@@ -0,0 +1,1105 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.annotation.SuppressLint
+import android.graphics.Color
+import android.os.Build
+import android.view.Gravity
+import android.view.View
+import android.view.ViewGroup
+import android.view.inputmethod.EditorInfo
+import android.widget.EditText
+import android.widget.SeekBar
+import android.widget.TextView
+import androidx.annotation.RequiresApi
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.isInvisible
+import androidx.lifecycle.MutableLiveData
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.AccountData
+import cn.muchinfo.rma.global.data.HoldLBData
+import cn.muchinfo.rma.global.data.OrderQuoteData
+import cn.muchinfo.rma.global.utils.TimeUtils
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText2
+import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText3
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
+import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.ToastUtils
+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.dialog.CustomDialogFragment
+import mtp.polymer.com.autowidget.dialog.creatAccountDataSheetDialog
+import mtp.polymer.com.autowidget.dialog.creatHnstSpotDetailSheetDialog
+import mtp.polymer.com.autowidget.dialog.createCustomDialog
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+import org.w3c.dom.Text
+
+/**
+ * 天津麦顿-浮动价的买卖挂牌(此页面是进入买卖大厅有仓单要素id的浮动价挂牌)
+ * @receiver AppCompatActivity
+ * @param activity AppCompatActivity
+ * @param viewModel BusinessHallViewModel
+ * @param data OrderQuoteData
+ * @return CustomDialogFragment
+ */
+fun AppCompatActivity.TjmdWarehouseFloatListedDialog(
+    activity: AppCompatActivity,
+    type: String,
+    viewModel: TjmdMarketViewModel,
+    data : ListedData
+): CustomDialogFragment {
+
+    val tag = "quotetag"
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    lateinit var viewPager: ViewPager
+
+    //浮动价卖挂牌
+    val oneSellListedUI by lazy {
+        FloatSellListedUI(activity,viewModel,type,data,tag)
+    }
+
+    //浮动价买挂牌
+    val oneBuyListedUI by lazy {
+        FloatBuyListedUI(activity, viewModel,type,data,tag)
+    }
+
+    //viewpager的适配器
+    var newPagerAdapter : PagerAdapter? = null
+
+    //tabSegment标题
+    val newTabsArray : ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    val uiList : ArrayList<_FrameLayout> = arrayListOf()
+
+    val selectIndex : MutableLiveData<Int> = MutableLiveData()
+
+    fun initMenuData(){
+
+        newTabsArray.add("卖挂牌")
+        uiList.add(oneSellListedUI.root)
+
+        newTabsArray.add("买挂牌")
+        uiList.add(oneBuyListedUI.root)
+
+        newPagerAdapter = object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = newTabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                return uiList.get(position).apply {
+                    container.addView(
+                        this,
+                        ViewGroup.LayoutParams(matchParent, matchParent)
+                    )
+                }
+            }
+
+            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 = newTabsArray.size
+
+        }
+
+    }
+
+    return createCustomDialog(cancelable = false) { dialog ->
+        backgroundColor = Color.parseColor("#5f000000")
+        initMenuData()
+        viewModel.resetAccountData()
+        viewModel.queryQuoteDayByListed(tag = tag,goodsCodes = data.goodsCode ?: "",isShowLoading = false)
+        verticalLayout {
+            viewModel.controlDialogDisappear.bindOptional(context){
+                if (it == true){
+                    dialog.dismiss()
+                    viewModel.controlDialogDisappear.postValue(false)
+                }
+            }
+            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
+                        selectIndex.postValue(index)
+                    }
+                })
+                setIndicator(
+                    QMUITabIndicator(
+                        QMUIDisplayHelper.dp2px(context, 2),
+                        false,
+                        true
+                    )
+                )
+                setDefaultTextSize(ConvertUtils.sp2px(16f), ConvertUtils.sp2px(16f))
+            }.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 = newPagerAdapter
+            }.lparams(matchParent, matchParent)
+
+            segment.setupWithViewPager(viewPager)
+            segment.selectTab(1)
+        }.lparams(matchParent, matchParent){
+            topMargin = autoSize(120)
+        }
+    }
+}
+
+//浮动价卖挂牌
+class FloatSellListedUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: TjmdMarketViewModel,
+    private val type: String,
+    data : ListedData,
+    tag : String//订阅标示
+) {
+
+    //选择的现货仓单明细数据
+    val selectSpotDetailsData : MutableLiveData<HoldLBData> = MutableLiveData()
+
+    //选择的资金账号
+    val selectAccountData : MutableLiveData<AccountData> = MutableLiveData()
+
+    //基差输入
+    lateinit var basisInputEdittext : MangeNumberEditText3
+
+    //初始化后基差是否被define
+    var isdefineByBasis : Boolean = false
+
+    //数量
+    lateinit var listednumberEdittext : MangeNumberEditText2
+
+    //起摘数量输入框
+    lateinit var startInputNumber : EditText
+
+    //估算总额
+    lateinit var float_delisting_amount : TextView
+
+    //估算总价
+    lateinit var float_total_amount : TextView
+
+    lateinit var max_number : TextView
+
+    //浮动价挂牌金额
+    val listed_price : MutableLiveData<Double> = MutableLiveData()
+
+    var marginValue = 0.0//履约保证金比例
+
+    //初始化设置履约保证金比例
+    fun setMarginValue() {
+        if (type == "1") {//有仓单的卖履约保证金
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue?.toDouble()
+                    ?: 0.0
+        } else {//无仓单的卖履约保证金比例
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue2?.toDouble()
+                    ?: 0.0
+        }
+    }
+
+    @SuppressLint("SetTextI18n")
+    @RequiresApi(Build.VERSION_CODES.O)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            setMarginValue()
+            selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
+            backgroundDrawable = createRoundRectDrawable("#ffffff", 24)
+            viewModel.quoteDayData.bindOptional(context){
+                //行情下发计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                if (isdefineByBasis && basisInputEdittext.text.toString().isNullOrEmpty().not()  && basisInputEdittext.text.toString() != "-"){//初始化相应控件后才能取值计算
+                    listed_price.postValue(basisInputEdittext.text.toString().toDouble().plus(it?.getPrice() ?: 0.0))
+                }
+            }
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatAccountDataSheetDialog("请选择资金账号", GlobalDataCollection.instance?.accountDataList ?: arrayListOf()) {
+                        selectAccountData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "交易账户"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    selectAccountData.bindOptional(context){
+                        text = it?.accountid.toString() + "   " + it?.accountname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "基        差"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                numberEditText3 {
+                    viewModel.quoteDayData.bindOptional(context){
+                        val MarketTradeConfig = GlobalDataCollection.instance?.marketTradeConfigData
+                        max = it?.preclose?.times(MarketTradeConfig?.basisupratio?.toDouble() ?: 0.0) ?: 0.0
+                        min = it?.preclose?.times(-1.0)?.times(MarketTradeConfig?.basisdownratio?.toDouble() ?: 0.0) ?: 0.0
+                    }
+                    basisInputEdittext = this
+                    isdefineByBasis = true
+                    text = "0"
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNotEmpty()){
+                            //行情下发计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                            listed_price.postValue(value.toString().toDouble().plus(viewModel.quoteDayData.value?.getPrice() ?: 0.0))
+                        }
+                    }
+                }.lparams(0, autoSize(72),1f){
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+             itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatHnstSpotDetailSheetDialog("请选择现货仓单", viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()) {
+                        selectSpotDetailsData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "现货仓单"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    text = "请选择现货仓单"
+                    selectSpotDetailsData.bindOptional(context){
+                        text = it?.ladingbillid + "(" + it?.enableqty + it?.enumdicname + ")"
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                verticalLayout {
+                    textView {
+                        text = "挂牌数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                        topMargin = autoSize(36)
+                    }
+
+                }.lparams(autoSize(250), autoSize(290))
+
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        numberEditText {
+                            text = data.WrFtWrstandard?.minivalue
+                            changeValue = data.WrFtWrstandard?.minivalue?.toDouble() ?: 1.0
+                            listednumberEdittext = this
+                            setOnTextChangeListener { _, value ->
+                                if (value.isNullOrEmpty().not()) {
+                                    if (selectSpotDetailsData.value?.accountid.isNullOrEmpty().not()) {
+                                        val floatDelistingAmount = listed_price.value?.times(value.toString().toDouble())
+                                        if (floatDelistingAmount != 0.0){
+                                            //显示估算总额
+                                            if (marginValue == 0.0){
+                                                float_delisting_amount.text = NumberUtils.roundNum(floatDelistingAmount ?: 0.0,2)
+                                            }else{
+                                                float_delisting_amount.text = NumberUtils.roundNum(floatDelistingAmount ?: 0.0,2) + "(需履约保证金" + NumberUtils.roundNum(floatDelistingAmount?.times(marginValue) ?: 0.0,2) + ")"
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+
+                        }.lparams(0, autoSize(72),1f){
+                            marginEnd = autoSize(36)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 34
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent){
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(143))
+
+                    inflateLayout<SeekBar>(R.layout.main_seekbar)  {
+                        min = 10
+                        max = 100
+                        isIndeterminate = false
+                        splitTrack = false
+                        setPadding(autoSize(30), 0, autoSize(30), 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
+                        thumbOffset = 0
+                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
+                            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                                listednumberEdittext.text = NumberUtils.roundNum(max_number.text.toString().toDouble().times(p1.div(100.0)),0)
+                            }
+
+                            override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                            }
+
+                            override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                            }
+                        })
+                    }.lparams(matchParent, wrapContent){
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(20)
+                    }
+
+                    linearLayout {
+                        textView {
+                            text = "0"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+
+                        emptyView()
+
+                        textView {
+                            max_number = this
+                            selectSpotDetailsData.bindOptional(context){
+                                text = it?.enableqty
+                            }
+                            text = "1"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+                    }.lparams(matchParent, wrapContent){
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(10)
+                    }
+
+                }.lparams(matchParent, autoSize(290))
+            }.lparams(matchParent, autoSize(290))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "起摘数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                verticalLayout {
+                    linearLayout {
+                        editText {
+                            startInputNumber = this
+                            hint = "请输入起摘数量"
+                            background = null
+                            inputType = EditorInfo.TYPE_CLASS_NUMBER
+//                            setDecimalInputType()
+                            hintColorStr = "#CCCCCC"
+                            textSizeAuto = 31
+                            textColorStr = "#333333"
+                        }.lparams(0, autoSize(132),1f){
+                            topMargin = autoSize(15)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_black_33
+                        }.lparams(wrapContent, wrapContent){
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(100))
+
+                    textView {
+                        text = "最小单位" + data.WrFtWrstandard?.minivalue + data.WrFtWrstandard?.enumdicname
+                        textSizeAuto = 29
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(matchParent, autoSize(167))
+
+            }.lparams(matchParent, autoSize(167))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "估算价"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    listed_price.bindOptional(context){
+                        text = NumberUtils.roundNum(it ?: 0.0,2)
+                    }
+                    float_total_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "估算金额"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    listed_price.bindOptional(context){
+                        val floatDelistingAmount = it?.times(listednumberEdittext.text.toString().toDouble())
+                        if (floatDelistingAmount != 0.0){
+                            if (marginValue == 0.0){
+                                text = NumberUtils.roundNum(floatDelistingAmount ?: 0.0,2)
+                            }else{
+                                text = NumberUtils.roundNum(floatDelistingAmount ?: 0.0,2) + "(履约保证金" + NumberUtils.roundNum(floatDelistingAmount?.times(marginValue) ?: 0.0,2) + ")"
+                            }
+                        }
+                    }
+                    float_delisting_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            textView {
+                viewModel.usedAccountData.bindOptional(context){
+                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(),2)
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent){
+                topMargin = autoSize(20)
+                marginStart = autoSize(250)
+            }
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+                        if (selectSpotDetailsData.value?.deliverygoodsid.isNullOrEmpty()){
+                            ToastUtils.showLong("请选择现货仓单明细")
+                            return@onThrottleFirstClick
+                        }
+                        if (listednumberEdittext.text.toString().isNullOrEmpty()){
+                            ToastUtils.showLong("请输入挂牌数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (listednumberEdittext.text.toString().toDouble() == 0.0){
+                            ToastUtils.showLong("挂牌数量不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (basisInputEdittext.text.toString().isNullOrEmpty()){
+                            ToastUtils.showLong("请输入基差")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (startInputNumber.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入起摘数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (startInputNumber.text.toString().toLong() < data.WrFtWrstandard?.minivalue?.toLong() ?: 0){
+                            ToastUtils.showLong("起摘数量不能小于" + data.WrFtWrstandard?.minivalue)
+                            return@onThrottleFirstClick
+                        }
+                        viewModel.requeryWRListingOrderReq(
+                            FactoryItems = data.getFactoryItems(),
+                            LadingBillId = selectSpotDetailsData.value?.ladingbillid?.toLong() ?: 0,
+                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                            SubNum = selectSpotDetailsData.value?.subnum?.toLong() ?: 0,
+                            WRFactorTypeId = 0,
+                            UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                            AccountID = GlobalDataCollection.instance?.accountId ?: 0,
+                            IsSpecified = 0,
+                            OrderQty = listednumberEdittext.text.toString().toLong(),
+                            DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                            WRPriceType = 2,
+                            WRTradeGoods = getWRTradeGoods(data),
+                            PriceFactor = 1.0,
+                            PriceMove = basisInputEdittext.text.toString().toDouble(),
+                            TimevalidType = 4,
+                            FirstRatio = 0.0,
+                            PerformanceTemplateID = 0,
+                            BuyOrSell = 1,
+                            PriceDisplayMode = 1,
+                            CanBargain = 0,
+                            ApplyID = 0,
+                            CanPart = 1,
+                            HasWr = 1,
+                            DelistMinQty = startInputNumber.text.toString().toLong(),
+                            WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                        ){
+                            viewModel.removeSubscriptQuote(tag = tag)
+                            viewModel.controlDialogDisappear.postValue(true)
+                        }
+
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.qhj_main_blue_bg
+                    text = "卖出"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(24)
+                }
+
+                textView {
+                    onThrottleFirstClick {
+                        viewModel.removeSubscriptQuote(tag = tag)
+                        viewModel.controlDialogDisappear.postValue(true)
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.hnxt_cancel_bg
+                    text = "取消"
+                    textColorInt = R.color.white
+                    textSizeAuto = 38
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(13)
+                }
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+    }
+
+    fun getWRTradeGoods(data: ListedData) : WarehouseTradeMI1.WRGoodsInfo{
+        val wRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder()
+        wRTradeGoods.goodsID = data.goodsId?.toInt() ?: 0
+        wRTradeGoods.goodsCode = data.goodsCode
+        wRTradeGoods.priceFactor = 1.0
+        wRTradeGoods.priceMove = 1.0
+        wRTradeGoods.weightRatio = 1.0
+        return wRTradeGoods.build()
+    }
+}
+
+//浮动价买挂牌
+class FloatBuyListedUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: TjmdMarketViewModel,
+    type: String,
+    data : ListedData,
+    tag : String//订阅标示
+) {
+    //选择的资金账号
+    val selectAccountData : MutableLiveData<AccountData> = MutableLiveData()
+
+    //基差
+    lateinit var basisInputEdittext : MangeNumberEditText3
+
+    //初始化后基差是否被define
+    var isdefineByBasis : Boolean = false
+
+    //挂牌数量
+    lateinit var oneNumberInputEdittext : MangeNumberEditText2
+
+    //起摘数量输入框
+    lateinit var startInputNumber : EditText
+
+    //摘牌金额
+    lateinit var one_delisting_amount : TextView
+
+    //估算总额
+    lateinit var float_delisting_amount : TextView
+
+    //估算总价
+    lateinit var float_total_amount : TextView
+
+    //SeekBar
+    lateinit var seekBar: SeekBar
+
+    //挂牌最大数量
+    val maxlistedNumber : MutableLiveData<Int> = MutableLiveData()
+
+    //浮动价挂牌金额
+    val listed_price : MutableLiveData<Double> = MutableLiveData()
+
+    var marginValue = 0.0//履约保证金比例
+
+    //初始化设置履约保证金比例
+    fun setMarginValue() {
+        marginValue =
+            GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
+                ?: 0.0
+    }
+
+    @SuppressLint("SetTextI18n")
+    @RequiresApi(Build.VERSION_CODES.O)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            viewModel.quoteDayData.bindOptional(context){
+                //行情下发计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                if (isdefineByBasis && basisInputEdittext.text.toString().isNullOrEmpty().not() && basisInputEdittext.text.toString() != "-"){
+                    listed_price.postValue(basisInputEdittext.text.toString().toDouble().plus(it?.getPrice() ?: 0.0))
+                }
+            }
+            setMarginValue()
+            selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
+            backgroundDrawable = createRoundRectDrawable("#ffffff", 24)
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatAccountDataSheetDialog("请选择资金账号", GlobalDataCollection.instance?.accountDataList ?: arrayListOf()) {
+                        selectAccountData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "交易账户"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    selectAccountData.bindOptional(context){
+                        text = it?.accountid.toString() + "   " + it?.accountname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "基        差"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+
+
+                numberEditText3 {
+                    text = "0"
+                    basisInputEdittext = this
+                    isdefineByBasis = true
+                    viewModel.quoteDayData.bindOptional(context){
+                        val MarketTradeConfig = GlobalDataCollection.instance?.marketTradeConfigData
+                        max = it?.preclose?.times(MarketTradeConfig?.basisupratio?.toDouble() ?: 0.0) ?: 0.0
+                        min = it?.preclose?.times(-1.0)?.times(MarketTradeConfig?.basisdownratio?.toDouble() ?: 0.0) ?: 0.0
+                    }
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNotEmpty()){
+                            // 计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                            listed_price.postValue(value.toString().toDouble().plus(viewModel.quoteDayData.value?.getPrice() ?: 0.0))
+                        }
+                    }
+
+                }.lparams(0, autoSize(72),1f){
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                verticalLayout {
+                    textView {
+                        text = "挂牌数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                        topMargin = autoSize(36)
+                    }
+
+                }.lparams(autoSize(250), autoSize(290))
+
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        numberEditText {
+                            text = data.WrFtWrstandard?.minivalue
+                            changeValue = data.WrFtWrstandard?.minivalue?.toDouble() ?: 1.0
+                            oneNumberInputEdittext = this
+                            setOnTextChangeListener { view, value ->
+
+                            }
+
+                        }.lparams(0, autoSize(72),1f){
+                            marginEnd = autoSize(36)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 34
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent){
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(143))
+
+                    inflateLayout<SeekBar>(R.layout.main_seekbar)  {
+                        min = 10
+                        max = 100
+                        seekBar = this
+                        isIndeterminate = false
+                        splitTrack = false
+                        setPadding(autoSize(30), 0, autoSize(30), 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
+                        thumbOffset = 0
+                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
+                            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                                oneNumberInputEdittext.text = NumberUtils.roundNum(maxlistedNumber.value?.times(p1.div(100.0)).toString(),0)
+                            }
+
+                            override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                            }
+
+                            override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                            }
+                        })
+                    }.lparams(matchParent, wrapContent){
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(20)
+                    }
+
+                    linearLayout {
+                        textView {
+                            text = "0"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+
+                        emptyView()
+
+                        textView {
+                            maxlistedNumber.bindOptional(context){
+                                text = it.toString() +data.WrFtWrstandard?.enumdicname
+                            }
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+                    }.lparams(matchParent, wrapContent){
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(10)
+                    }
+
+                }.lparams(matchParent, autoSize(290))
+            }.lparams(matchParent, autoSize(290))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "起摘数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                verticalLayout {
+                    linearLayout {
+                        editText {
+                            startInputNumber = this
+                            hint = "请输入起摘数量"
+                            background = null
+//                            inputType = EditorInfo.TYPE_CLASS_NUMBER or EditorInfo.TYPE_NUMBER_FLAG_DECIMAL or EditorInfo.TYPE_NUMBER_FLAG_SIGNED
+//                            setDecimalInputType()
+                            hintColorStr = "#CCCCCC"
+                            textSizeAuto = 31
+                            textColorStr = "#333333"
+                        }.lparams(0, autoSize(132),1f){
+                            topMargin = autoSize(15)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_black_33
+                        }.lparams(wrapContent, wrapContent){
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(100))
+
+                    textView {
+                        text = "最小单位" + data.WrFtWrstandard?.minivalue + data.WrFtWrstandard?.enumdicname
+                        textSizeAuto = 29
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(5)
+                    }
+                }.lparams(matchParent, autoSize(167))
+
+            }.lparams(matchParent, autoSize(167))
+
+             itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "估算价"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    listed_price.bindOptional(context){
+                        text = NumberUtils.roundNum(it ?: 0.0,2)
+                        if (it != 0.0 && marginValue != 0.0){
+                            maxlistedNumber.postValue(viewModel.usedAccountData.value?.canUserAmount?.div(marginValue)?.div(it ?: 1.0)?.toInt())
+                        }
+                    }
+                    float_total_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "估算金额"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    listed_price.bindOptional(context){
+                        val floatDelistingAmount = it?.times(oneNumberInputEdittext.text.toString().toDouble())
+                        if (floatDelistingAmount != 0.0){
+                            if (marginValue == 0.0){
+                                text = NumberUtils.roundNum(floatDelistingAmount ?: 0.0,2)
+                            }else{
+                                text = NumberUtils.roundNum(floatDelistingAmount ?: 0.0,2) + "(履约保证金" + NumberUtils.roundNum(floatDelistingAmount?.times(marginValue) ?: 0.0,2) + ")"
+                            }
+                        }
+                    }
+                    float_delisting_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            textView {
+                viewModel.usedAccountData.bindOptional(context){
+                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(),2)
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent){
+                topMargin = autoSize(20)
+                marginStart = autoSize(250)
+            }
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+                        if (basisInputEdittext.text.toString().isNullOrEmpty()){
+                            ToastUtils.showLong("请输入基差")
+                            return@onThrottleFirstClick
+                        }
+//                        if (basisInputEdittext.text.toString().toDouble() == 0.0){
+//                            ToastUtils.showLong("基差不能为零")
+//                            return@onThrottleFirstClick
+//                        }
+
+                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()){
+                            ToastUtils.showLong("请输入挂牌数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0){
+                            ToastUtils.showLong("挂牌数量不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (startInputNumber.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入起摘数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (startInputNumber.text.toString().toLong() < data.WrFtWrstandard?.minivalue?.toLong() ?: 0){
+                            ToastUtils.showLong("起摘数量不能小于" + data.WrFtWrstandard?.minivalue)
+                            return@onThrottleFirstClick
+                        }
+                        viewModel.requeryWRListingOrderReq(
+                            FactoryItems = data.getFactoryItems(),
+                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                            WRFactorTypeId = 0,
+                            UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                            AccountID = selectAccountData.value?.accountid ?: 0,
+                            IsSpecified = 0,
+                            OrderQty = oneNumberInputEdittext.text.toString().toLong(),
+                            DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                            WRPriceType = 2,
+                            PriceMove = basisInputEdittext.text.toString().toDouble(),
+                            PriceFactor = 1.0,
+                            WRTradeGoods = getWRTradeGoods(data),
+                            TimevalidType = 4,
+                            FirstRatio = 0.0,
+                            PerformanceTemplateID = 0,
+                            BuyOrSell = 0,
+                            PriceDisplayMode = 1,
+                            CanBargain = 0,
+                            ApplyID = 0,
+                            CanPart = 1,
+                            HasWr = 1,
+                            DelistMinQty = startInputNumber.text.toString().toLong(),
+                            WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                        ){
+                            viewModel.removeSubscriptQuote(tag = tag)
+                            viewModel.controlDialogDisappear.postValue(true)
+                        }
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.qhj_main_blue_bg
+                    text = "买入"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(24)
+                }
+
+                textView {
+                    onThrottleFirstClick {
+                        viewModel.controlDialogDisappear.postValue(true)
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.hnxt_cancel_bg
+                    text = "取消"
+                    textColorInt = R.color.white
+                    textSizeAuto = 38
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(13)
+                }
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+    }
+
+    fun getWRTradeGoods(data: ListedData) : WarehouseTradeMI1.WRGoodsInfo{
+        val wRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder()
+        wRTradeGoods.setGoodsID(data.goodsId?.toInt() ?: 0)
+        wRTradeGoods.setGoodsCode(data.goodsCode)
+        wRTradeGoods.setPriceFactor(1.0)
+        wRTradeGoods.setPriceMove(1.0)
+        wRTradeGoods.setWeightRatio(1.0)
+        return wRTradeGoods.build()
+    }
+}

+ 1210 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdWarehouseOneListedDialog.kt

@@ -0,0 +1,1210 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.annotation.SuppressLint
+import android.content.Intent
+import android.graphics.Color
+import android.os.Build
+import android.view.Gravity
+import android.view.View
+import android.view.ViewGroup
+import android.view.inputmethod.EditorInfo
+import android.widget.EditText
+import android.widget.SeekBar
+import android.widget.TextView
+import androidx.annotation.RequiresApi
+import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.MutableLiveData
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.bingoogolapple.bgabanner.BGABanner
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.AccountData
+import cn.muchinfo.rma.global.data.HoldLBData
+import cn.muchinfo.rma.global.data.OrderQuoteData
+import cn.muchinfo.rma.global.data.PermancePlanTmpData
+import cn.muchinfo.rma.global.utils.TimeUtils
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText2
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.hnstmain.performancetemplate.SelectPerformanceTemplateActivity
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
+import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.ToastUtils
+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.dialog.CustomDialogFragment
+import mtp.polymer.com.autowidget.dialog.creatAccountDataSheetDialog
+import mtp.polymer.com.autowidget.dialog.creatHnstSpotDetailSheetDialog
+import mtp.polymer.com.autowidget.dialog.createCustomDialog
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 天津麦顿-买卖大厅的一口价挂牌(此页面是进入买卖大厅有仓单要素id的一口价价挂牌)
+ * @receiver AppCompatActivity
+ * @return CustomDialogFragment
+ */
+fun AppCompatActivity.TjmdWarehouseOneListedDialog(
+    fragment: Fragment,
+    activity: AppCompatActivity,
+    type: String,
+    viewModel: TjmdMarketViewModel,
+    data : ListedData
+): CustomDialogFragment {
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    lateinit var viewPager: ViewPager
+
+    //一口价卖挂牌
+    val oneSellListedUI by lazy {
+        OneSellListedUI(fragment,activity, viewModel, type, data)
+    }
+
+    //一口价买挂牌
+    val oneBuyListedUI by lazy {
+        OneBuyListedUI(fragment,activity, viewModel, type, data)
+    }
+
+    //viewpager的适配器
+    var newPagerAdapter: PagerAdapter? = null
+
+    //tabSegment标题
+    val newTabsArray: ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    val uiList: ArrayList<_FrameLayout> = arrayListOf()
+
+    val selectIndex: MutableLiveData<Int> = MutableLiveData()
+
+    fun initMenuData() {
+
+        newTabsArray.add("卖挂牌")
+        uiList.add(oneSellListedUI.root)
+
+        newTabsArray.add("买挂牌")
+        uiList.add(oneBuyListedUI.root)
+
+        newPagerAdapter = object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = newTabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                return uiList.get(position).apply {
+                    container.addView(
+                        this,
+                        ViewGroup.LayoutParams(matchParent, matchParent)
+                    )
+                }
+            }
+
+            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 = newTabsArray.size
+
+        }
+
+    }
+
+    return createCustomDialog(cancelable = false) { dialog ->
+        backgroundColor = Color.parseColor("#5f000000")
+        initMenuData()
+        viewModel.querydetailsWarehouseWrPosition(data = data)
+        viewModel.resetAccountData()
+        verticalLayout {
+            viewModel.controlDialogDisappear.bindOptional(context) {
+                if (it == true) {
+                    dialog.dismiss()
+                    viewModel.controlDialogDisappear.postValue(false)
+                }
+            }
+            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
+                        selectIndex.postValue(index)
+                    }
+                })
+                setIndicator(
+                    QMUITabIndicator(
+                        QMUIDisplayHelper.dp2px(context, 2),
+                        false,
+                        true
+                    )
+                )
+                setDefaultTextSize(ConvertUtils.sp2px(16f), ConvertUtils.sp2px(16f))
+            }.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 = newPagerAdapter
+            }.lparams(matchParent, matchParent)
+
+            segment.setupWithViewPager(viewPager)
+            segment.selectTab(1)
+        }.lparams(matchParent, matchParent) {
+            topMargin = autoSize(120)
+        }
+    }
+}
+
+//一口价卖挂牌
+class OneSellListedUI(
+    private val fragment : Fragment,
+    private val activity: AppCompatActivity,
+    private val viewModel: TjmdMarketViewModel,
+    private val type: String,
+    data : ListedData
+) {
+    //选择的现货仓单明细数据
+    val selectSpotDetailsData: MutableLiveData<HoldLBData> = MutableLiveData()
+
+    //选择的资金账号
+    val selectAccountData: MutableLiveData<AccountData> = MutableLiveData()
+
+    //挂牌价格输入
+    lateinit var onePriceInputEdittext: MangeNumberEditText2
+
+    //挂牌数量
+    lateinit var oneNumberInputEdittext: MangeNumberEditText2
+
+    //起摘数量输入框
+    lateinit var startInputNumber: EditText
+
+    //摘牌金额
+    lateinit var one_delisting_amount: TextView
+
+    var marginValue = 0.0//履约保证金比例
+
+    //初始化设置履约保证金比例
+    fun setMarginValue() {
+        if (type == "1") {//有仓单的卖履约保证金
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue?.toDouble()
+                    ?: 0.0
+        } else {//无仓单的卖履约保证金比例
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue2?.toDouble()
+                    ?: 0.0
+        }
+    }
+
+    @SuppressLint("NewApi", "SetTextI18n")
+    @RequiresApi(Build.VERSION_CODES.O)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            setMarginValue()
+            selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
+            backgroundDrawable = createRoundRectDrawable("#ffffff", 24)
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatAccountDataSheetDialog(
+                        "请选择资金账号",
+                        GlobalDataCollection.instance?.accountDataList ?: arrayListOf()
+                    ) {
+                        viewModel.resetAccountDataBySelect(this)
+                        selectAccountData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "交易账户"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    selectAccountData.bindOptional(context) {
+                        text = it?.accountid.toString() + "   " + it?.accountname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+             itemView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    val intent = Intent()
+                    intent.setClass(context, SelectPerformanceTemplateActivity::class.java)
+                    fragment.startActivityForResult(intent,1004)
+                }
+
+                textView {
+                    text = "履约模版"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    viewModel.selectPerformanceStepData.bindOptional(context) {
+                        text = it?.templatename
+                        textColorInt = R.color.rma_black_33
+                    }
+                    text = "请选择履约模版"
+                    textSizeAuto = 31
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(80)
+                }
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36)) {
+                    marginEnd = autoSize(25)
+                }
+            }.lparams(matchParent, autoSize(132))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatHnstSpotDetailSheetDialog(
+                        "请选择现货仓单",
+                        viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()
+                    ) {
+                        selectSpotDetailsData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "现货仓单"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    text = "请选择现货仓单"
+                    selectSpotDetailsData.bindOptional(context) {
+                        text = it?.wrfactortypeid + "(" + it?.enableqty + it?.enumdicname + ")"
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "挂牌价格"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                numberEditText {
+                    text = "0"
+                    onePriceInputEdittext = this
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNullOrEmpty().not()) {
+                            if (oneNumberInputEdittext.text.toString().isNullOrEmpty().not()) {
+                                var amount = value.toString().toDouble()
+                                    .times(oneNumberInputEdittext.text.toString().toDouble())
+                                if (amount == 0.0) {
+                                    one_delisting_amount.text = NumberUtils.roundNum(
+                                        amount.toString(),
+                                        2
+                                    )
+                                } else {
+                                    one_delisting_amount.text = NumberUtils.roundNum(
+                                        amount.toString(),
+                                        2
+                                    ) + "(需履约保证金" + NumberUtils.roundNum(
+                                        amount.times(
+                                            marginValue
+                                        ) ?: 0.0, 2
+                                    ) + ")"
+                                }
+                            }
+                        }
+                    }
+
+                }.lparams(0, autoSize(72), 1f) {
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                verticalLayout {
+                    textView {
+                        text = "挂牌数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                        topMargin = autoSize(36)
+                    }
+
+                }.lparams(autoSize(250), autoSize(290))
+
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        numberEditText {
+                            text = data.WrFtWrstandard?.minivalue
+                            changeValue = data.WrFtWrstandard?.minivalue?.toDouble() ?: 1.0
+                            oneNumberInputEdittext = this
+                            setOnTextChangeListener { view, value ->
+                                if (value.isNullOrEmpty().not()) {
+                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
+                                            .not()
+                                    ) {
+                                        var marginAmount = value.toString().toDouble()
+                                            .times(oneNumberInputEdittext.text.toString().toDouble())
+                                        if (marginAmount == 0.0) {
+                                            one_delisting_amount.text = NumberUtils.roundNum(
+                                                marginAmount.toString(),
+                                                2
+                                            )
+                                        } else {
+                                            one_delisting_amount.text = NumberUtils.roundNum(
+                                                marginAmount.toString(),
+                                                2
+                                            ) + "(需履约保证金" + NumberUtils.roundNum(
+                                                marginAmount.times(
+                                                    marginValue
+                                                ) ?: 0.0, 2
+                                            ) + ")"
+                                        }
+                                    }
+                                }
+                            }
+
+                        }.lparams(0, autoSize(72), 1f) {
+                            marginEnd = autoSize(36)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 34
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(143))
+
+                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
+                        min = 10
+                        max = 100
+                        isIndeterminate = false
+                        splitTrack = false
+                        setPadding(autoSize(30), 0, autoSize(30), 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
+
+                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+                            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+
+                            }
+
+                            override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                            }
+
+                            override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                            }
+                        })
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(20)
+                    }
+
+                    linearLayout {
+                        visibility = View.GONE
+                        textView {
+                            text = "0"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+
+                        emptyView()
+
+                        textView {
+                            text = "1" + data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(10)
+                    }
+
+                }.lparams(matchParent, autoSize(290))
+            }.lparams(matchParent, autoSize(290))
+
+
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "起摘数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                verticalLayout {
+                    linearLayout {
+                        editText {
+                            startInputNumber = this
+                            hint = "请输入起摘数量"
+                            background = null
+                            inputType = EditorInfo.TYPE_CLASS_NUMBER
+//                            setDecimalInputType()
+                            hintColorStr = "#CCCCCC"
+                            textSizeAuto = 31
+                            textColorStr = "#333333"
+                        }.lparams(0, autoSize(132), 1f) {
+                            topMargin = autoSize(15)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(100))
+
+                    textView {
+                        visibility = View.GONE
+                        text = "最小单位"
+                        textSizeAuto = 29
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(matchParent, autoSize(167))
+
+            }.lparams(matchParent, autoSize(167))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "挂牌金额"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "--"
+                    one_delisting_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            textView {
+                viewModel.usedAccountData.bindOptional(context) {
+                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(), 2)
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+                marginStart = autoSize(250)
+            }
+
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+                        if (selectSpotDetailsData.value?.deliverygoodsid.isNullOrEmpty()) {
+                            ToastUtils.showLong("请选择现货仓单明细")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (viewModel.selectPerformanceStepData.value?.autoid?.isNullOrEmpty() == true){
+                            ToastUtils.showLong("请选择履约模版")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (onePriceInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌价格")
+                            return@onThrottleFirstClick
+                        }
+                        if (onePriceInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌价格不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌数量不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (startInputNumber.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入起摘数量")
+                            return@onThrottleFirstClick
+                        }
+
+                        val selectDetailsData = selectSpotDetailsData.value
+                        if (type == "1") {
+                            viewModel.requeryWRListingOrderReq(
+                                FactoryItems = data.getFactoryItems(),
+                                LadingBillId = selectDetailsData?.ladingbillid?.toLong() ?: 0,
+                                SubNum = selectDetailsData?.subnum?.toLong() ?: 0,
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = 0,
+                                UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                                AccountID = selectAccountData.value?.accountid ?: 0,
+                                IsSpecified = 0,
+                                OrderQty = oneNumberInputEdittext.text.toString().toLong(),
+                                DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                                WRPriceType = 1,
+                                FixedPrice = onePriceInputEdittext.text.toString().toDouble(),
+                                WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                                TimevalidType = 4,
+                                FirstRatio = 0.0,
+                                PerformanceTemplateID = viewModel.selectPerformanceStepData.value?.autoid?.toLong() ?: 0,
+                                BuyOrSell = 1,
+                                PriceDisplayMode = 1,
+                                CanBargain = 0,
+                                ApplyID = 0,
+                                CanPart = 1,
+                                HasWr = 1,
+                                DelistMinQty = startInputNumber.text.toString().toLong(),
+                                WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                            ) {
+                                viewModel.controlDialogDisappear.postValue(true)
+                                viewModel.selectPerformanceStepData.postValue(PermancePlanTmpData())
+                            }
+                        } else {
+                            viewModel.requeryWRListingOrderReq(
+                                FactoryItems = data.getFactoryItems(),
+                                LadingBillId = selectDetailsData?.ladingbillid?.toLong() ?: 0,
+                                SubNum = selectDetailsData?.subnum?.toLong() ?: 0,
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = 0,
+                                UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                                AccountID = selectAccountData.value?.accountid ?: 0,
+                                IsSpecified = 0,
+                                OrderQty = oneNumberInputEdittext.text.toString().toLong(),
+                                DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                                WRPriceType = 1,
+                                FixedPrice = onePriceInputEdittext.text.toString().toDouble(),
+                                WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                                TimevalidType = 4,
+                                FirstRatio = 0.0,
+                                PerformanceTemplateID = viewModel.selectPerformanceStepData.value?.autoid?.toLong() ?: 0,
+                                BuyOrSell = 1,
+                                PriceDisplayMode = 1,
+                                CanBargain = 0,
+                                ApplyID = 0,
+                                CanPart = 1,
+                                HasWr = 0,
+                                DelistMinQty = startInputNumber.text.toString().toLong(),
+                                WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                            ) {
+                                viewModel.controlDialogDisappear.postValue(true)
+                                viewModel.selectPerformanceStepData.postValue(PermancePlanTmpData())
+                            }
+                        }
+
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.qhj_main_blue_bg
+                    text = "卖出"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(24)
+                }
+
+                textView {
+                    onThrottleFirstClick {
+                        viewModel.controlDialogDisappear.postValue(true)
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.hnxt_cancel_bg
+                    text = "取消"
+                    textColorInt = R.color.white
+                    textSizeAuto = 38
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(13)
+                }
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+    }
+}
+
+//一口价买挂牌
+class OneBuyListedUI(
+    private val fragment : Fragment,
+    private val activity: AppCompatActivity,
+    private val viewModel: TjmdMarketViewModel,
+    private val type: String,
+    data : ListedData
+) {
+
+    //选择的资金账号
+    val selectAccountData: MutableLiveData<AccountData> = MutableLiveData()
+
+    //挂牌价格输入
+    lateinit var onePriceInputEdittext: MangeNumberEditText2
+
+    //挂牌数量
+    lateinit var oneNumberInputEdittext: MangeNumberEditText2
+
+    //起摘数量输入框
+    lateinit var startInputNumber: EditText
+
+    //挂牌金额
+    lateinit var one_delisting_amount: TextView
+
+    //SeekBar
+    lateinit var seekBar: SeekBar
+    //挂牌最大数量
+    val maxlistedNumber : MutableLiveData<Int> = MutableLiveData()
+
+    var marginValue = 0.0//履约保证金比例
+
+    //初始化设置履约保证金比例
+    fun setMarginValue() {
+        marginValue =
+            GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
+                ?: 0.0
+    }
+
+    @SuppressLint("SetTextI18n")
+    @RequiresApi(Build.VERSION_CODES.O)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            setMarginValue()
+            selectAccountData.postValue(GlobalDataCollection.instance?.accountData)
+            backgroundDrawable = createRoundRectDrawable("#ffffff", 24)
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatAccountDataSheetDialog(
+                        "请选择资金账号",
+                        GlobalDataCollection.instance?.accountDataList ?: arrayListOf()
+                    ) {
+                        viewModel.resetAccountDataBySelect(this)
+                        selectAccountData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "交易账户"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    selectAccountData.bindOptional(context) {
+                        text = it?.accountid.toString() + "   " + it?.accountname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+
+             itemView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    val intent = Intent()
+                    intent.setClass(context, SelectPerformanceTemplateActivity::class.java)
+                    fragment.startActivityForResult(intent,1004)
+                }
+
+                textView {
+                    text = "履约模版"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    viewModel.selectPerformanceStepData.bindOptional(context) {
+                        text = it?.templatename
+                        textColorInt = R.color.rma_black_33
+                    }
+                    text = "请选择履约模版"
+                    textSizeAuto = 31
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(80)
+                }
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36)) {
+                    marginEnd = autoSize(25)
+                }
+            }.lparams(matchParent, autoSize(132))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "挂牌价格"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                numberEditText {
+                    text = "1"
+                    onePriceInputEdittext = this
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNullOrEmpty().not()) {
+                            if (value.toDouble() != 0.0 && marginValue != 0.0) {
+                                maxlistedNumber.postValue(
+                                    viewModel.usedAccountData.value?.canUserAmount?.div(
+                                        value.toString().toDouble()
+                                    )?.div(marginValue.toDouble())?.toInt()
+                                )
+                            }
+                            if (oneNumberInputEdittext.text.toString().isNullOrEmpty().not()) {
+                                //这里计算金额和履约保证金
+                                var amount = value.toString().toDouble()
+                                    .times(oneNumberInputEdittext.text.toString().toDouble())
+                                if (amount == 0.0) {
+                                    one_delisting_amount.text = NumberUtils.roundNum(
+                                        amount.toString(),
+                                        2
+                                    )
+                                } else {
+                                    one_delisting_amount.text = NumberUtils.roundNum(
+                                        amount.toString(),
+                                        2
+                                    ) + "(需履约保证金" + NumberUtils.roundNum(
+                                        amount.times(
+                                            marginValue
+                                        ) ?: 0.0, 2
+                                    ) + ")"
+                                }
+
+                            }
+                        }
+                    }
+
+                }.lparams(0, autoSize(72), 1f) {
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
+                verticalLayout {
+                    textView {
+                        text = "挂牌数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                        topMargin = autoSize(36)
+                    }
+                }.lparams(autoSize(250), autoSize(290))
+
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        numberEditText {
+                            text = data.WrFtWrstandard?.minivalue
+
+                            changeValue = data.WrFtWrstandard?.minivalue?.toDouble() ?: 1.0
+                            oneNumberInputEdittext = this
+                            setOnTextChangeListener { view, value ->
+                                if (value.isNullOrEmpty().not()) {
+                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
+                                            .not()
+                                    ) {
+                                        var amount = value.toString().toDouble()
+                                            .times(onePriceInputEdittext.text.toString().toDouble())
+                                        if (amount == 0.0) {
+                                            one_delisting_amount.text = NumberUtils.roundNum(
+                                                amount.toString(),
+                                                2
+                                            )
+                                        } else {
+                                            one_delisting_amount.text = NumberUtils.roundNum(
+                                                amount.toString(),
+                                                2
+                                            ) + "(需履约保证金" + NumberUtils.roundNum(
+                                                amount.times(
+                                                    marginValue
+                                                ) ?: 0.0, 2
+                                            ) + ")"
+                                        }
+                                    }
+                                }
+                            }
+                        }.lparams(0, autoSize(72), 1f) {
+                            marginEnd = autoSize(36)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 34
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(143))
+
+                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
+                        min = 1
+                        max = 100
+                        seekBar = this
+                        isIndeterminate = false
+                        splitTrack = false
+                        setPadding(autoSize(30), 0, autoSize(30), 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
+                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+                            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                                oneNumberInputEdittext.text = NumberUtils.roundNum(maxlistedNumber.value?.times(p1.div(100.0)).toString(),0)
+                            }
+
+                            override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                            }
+
+                            override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                            }
+                        })
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(20)
+                    }
+
+                    linearLayout {
+                        textView {
+                            text = "0"
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+
+                        emptyView()
+
+                        textView {
+                            maxlistedNumber.bindOptional(context){
+                                text = it.toString() + data.WrFtWrstandard?.enumdicname
+                            }
+                            textSizeAuto = 29
+                            textColorInt = R.color.rma_gray_color
+                        }.lparams(wrapContent, wrapContent)
+                    }.lparams(matchParent, wrapContent) {
+                        marginEnd = autoSize(110)
+                        topMargin = autoSize(10)
+                    }
+
+                }.lparams(matchParent, autoSize(290))
+            }.lparams(matchParent, autoSize(290))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "起摘数量"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                verticalLayout {
+                    linearLayout {
+                        editText {
+                            startInputNumber = this
+                            hint = "请输入起摘数量"
+                            background = null
+                            inputType = EditorInfo.TYPE_CLASS_NUMBER
+//                            setDecimalInputType()
+                            hintColorStr = "#CCCCCC"
+                            textSizeAuto = 31
+                            textColorStr = "#333333"
+                        }.lparams(0, autoSize(132), 1f) {
+                            topMargin = autoSize(15)
+                        }
+
+                        textView {
+                            text = data.WrFtWrstandard?.enumdicname
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_black_33
+                        }.lparams(wrapContent, wrapContent) {
+                            marginEnd = autoSize(36)
+                        }
+                    }.lparams(matchParent, autoSize(100))
+
+                    textView {
+                        text = "最小单位" + data.WrFtWrstandard?.minivalue + data.WrFtWrstandard?.enumdicname
+                        textSizeAuto = 29
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(matchParent, autoSize(167))
+
+            }.lparams(matchParent, autoSize(167))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "挂牌金额"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                }.lparams(autoSize(214), wrapContent) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    //初始值
+                    text = data.WrFtWrstandard?.minivalue?.toDouble()?.times(1).toString()
+
+                    one_delisting_amount = this
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(143))
+
+            textView {
+                viewModel.usedAccountData.bindOptional(context) {
+                    text = "可用资金" + NumberUtils.roundNum(it?.canUserAmount.toString(), 2)
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent) {
+                topMargin = autoSize(20)
+                marginStart = autoSize(250)
+            }
+
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+                        if (onePriceInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌价格")
+                            return@onThrottleFirstClick
+                        }
+                        if (onePriceInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌价格不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (viewModel.selectPerformanceStepData.value?.autoid?.isNullOrEmpty() == true){
+                            ToastUtils.showLong("请选择履约模版")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入挂牌数量")
+                            return@onThrottleFirstClick
+                        }
+                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0) {
+                            ToastUtils.showLong("挂牌数量不能为零")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (startInputNumber.text.toString().isNullOrEmpty()) {
+                            ToastUtils.showLong("请输入起摘数量")
+                            return@onThrottleFirstClick
+                        }
+
+                        if (type == "1") {
+                            viewModel.requeryWRListingOrderReq(
+                                FactoryItems = data.getFactoryItems(),
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = 0,
+                                UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                                AccountID = selectAccountData.value?.accountid ?: 0,
+                                IsSpecified = 0,
+                                OrderQty = oneNumberInputEdittext.text.toString().toLong(),
+                                DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                                WRPriceType = 1,
+                                FixedPrice = onePriceInputEdittext.text.toString().toDouble(),
+                                WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                                TimevalidType = 4,
+                                FirstRatio = 0.0,
+                                PerformanceTemplateID = viewModel.selectPerformanceStepData.value?.autoid?.toLong() ?: 0,
+                                BuyOrSell = 0,
+                                PriceDisplayMode = 1,
+                                DeliveryMonth = data.DeliveryMonth ?: "",
+                                CanBargain = 0,
+                                ApplyID = 0,
+                                CanPart = 1,
+                                HasWr = 1,
+                                DelistMinQty = startInputNumber.text.toString().toLong(),
+                                WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                            ) {
+                                viewModel.controlDialogDisappear.postValue(true)
+                                viewModel.selectPerformanceStepData.postValue(PermancePlanTmpData())
+                            }
+                        } else {
+                            viewModel.requeryWRListingOrderReq(
+                                FactoryItems = data.getFactoryItems(),
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = 0,
+                                UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                                AccountID = selectAccountData.value?.accountid ?: 0,
+                                IsSpecified = 0,
+                                OrderQty = oneNumberInputEdittext.text.toString().toLong(),
+                                DeliveryGoodsID = data.DeliveryGoodsID?.toInt() ?: 0,
+                                WRPriceType = 1,
+                                FixedPrice = onePriceInputEdittext.text.toString().toDouble(),
+                                WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                                TimevalidType = 4,
+                                FirstRatio = 0.0,
+                                PerformanceTemplateID = viewModel.selectPerformanceStepData.value?.autoid?.toLong() ?: 0,
+                                BuyOrSell = 0,
+                                DeliveryMonth = data.DeliveryMonth ?: "",
+                                PriceDisplayMode = 1,
+                                CanBargain = 0,
+                                ApplyID = 0,
+                                CanPart = 1,
+                                HasWr = 0,
+                                DelistMinQty = startInputNumber.text.toString().toLong(),
+                                WRStandardID = data.WrFtWrstandard?.wrstandardid?.toInt() ?: 0
+                            ) {
+                                viewModel.controlDialogDisappear.postValue(true)
+                                viewModel.selectPerformanceStepData.postValue(PermancePlanTmpData())
+                            }
+                        }
+
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.qhj_main_blue_bg
+                    text = "买入"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(24)
+                }
+
+                textView {
+                    onThrottleFirstClick {
+                        viewModel.controlDialogDisappear.postValue(true)
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundResource = R.drawable.hnxt_cancel_bg
+                    text = "取消"
+                    textColorInt = R.color.white
+                    textSizeAuto = 38
+                }.lparams(autoSize(419), autoSize(119)) {
+                    marginStart = autoSize(13)
+                }
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+
+        fun check(): Boolean {
+
+
+            return true
+        }
+    }
+}

+ 369 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdWarehouseScreeningDialog.kt

@@ -0,0 +1,369 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.graphics.Color
+import android.view.Gravity
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsData
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsDataListData
+import cn.muchinfo.rma.global.data.WrFtWrstandard
+import cn.muchinfo.rma.global.data.WrStandardFactoryItem
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.tjmd.cdmyviewholder.TjmdWarehouseSelectViewHolder
+import cn.muchinfo.rma.view.base.tjmd.cdmyviewholder.TjmdWarehouseWrstandardnameViewHolder
+import cn.muchinfo.rma.view.base.tjmd.cdmyviewholder.TjmdWrStandardFactoryItemViewHolder
+import cn.muchinfo.rma.view.base.warehousereceipt.viewholder.WarehouseSelectViewHolder
+import cn.muchinfo.rma.view.base.warehousereceipt.viewholder.WarehouseWrstandardnameViewHolder
+import cn.muchinfo.rma.view.base.warehousereceipt.viewholder.WarehouseWrstandnameSoneViewHolder
+import cn.muchinfo.rma.view.base.warehousereceipt.viewholder.WrStandardFactoryItemViewHolder
+import com.blankj.utilcode.util.ToastUtils
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import mtp.polymer.com.autowidget.dialog.CustomDialogFragment
+import mtp.polymer.com.autowidget.dialog.creatBottomSheetDialog
+import mtp.polymer.com.autowidget.dialog.createCustomDialog
+import org.jetbrains.anko.*
+
+//仓单贸易左侧菜单栏
+fun AppCompatActivity.WarehouseScreeningDialog(
+    viewModel: TjmdMarketViewModel,
+    activity: AppCompatActivity,
+    buyOrSell: String,//0是卖挂牌 1 买挂牌
+    type: String//1 是一口价 2是浮动价 3 贸易圈
+): CustomDialogFragment {
+
+    //品种
+    val spotCategoryAdapter: BaseAdapter<FtDeliveryGoodsData, TjmdWarehouseWrstandardnameViewHolder> =
+        BaseAdapter { _, _ -> TjmdWarehouseWrstandardnameViewHolder(activity, viewModel) }
+
+    //要素
+    val elementsAdapter: BaseAdapter<FtDeliveryGoodsDataListData, TjmdWrStandardFactoryItemViewHolder> =
+        BaseAdapter { _, _ -> TjmdWrStandardFactoryItemViewHolder(activity, viewModel) }
+
+    lateinit var warehouseRecycview: RecyclerView
+
+    return createCustomDialog(cancelable = true) { dialog ->
+        backgroundColor = Color.parseColor("#5f000000")
+
+        verticalLayout {
+            viewModel.resetFtDeliveryGoodsDataList()
+            viewModel.setGoodsGroupAndGoodsInfoList()
+            background = resources.getDrawable(R.color.white)
+            viewModel.selectWrFtWrstandardData.bindOptional(context) {
+                viewModel.queryWrStandardFactoryItem(it?.wrstandardid ?: "")
+            }
+
+            frameLayout {
+                nestedScrollView {
+                    linearLayout {
+                        recyclerView {
+                            background = resources.getDrawable(R.color.white)
+                            adapter = spotCategoryAdapter
+                        }.lparams(autoSize(310), matchParent) {
+                            bottomMargin = autoSize(150)
+                        }
+
+                        viewModel.ftDeliveryGoodsDataList.bindOptional(context) {
+                            spotCategoryAdapter.setNewData(it)
+                        }
+
+                        view {
+                            background = resources.getDrawable(R.color.rma_hint_line_color_eee)
+                        }.lparams(autoSize(1), matchParent)
+
+                        verticalLayout {
+                            linearLayout {
+                                gravity = Gravity.CENTER_VERTICAL
+                                textView {
+                                    text = "仓库"
+                                    textSizeAuto = 34
+                                    textColorInt = R.color.rma_black_33
+                                }.lparams(wrapContent, wrapContent) {
+                                    marginStart = autoSize(34)
+                                }
+                            }.lparams(matchParent, autoSize(80))
+
+                            recyclerView {
+                                warehouseRecycview = this
+                                background = resources.getDrawable(R.color.white)
+                            }.lparams(matchParent, wrapContent)
+
+                            viewModel.WrStandardFactoryItemDataList.bindOptional(context) { data ->
+                                //仓库
+                                val ftDeliveryGoodsDataListData =
+                                    data?.find { it.dgfactoryitemtypeid == "1" }
+                                if (ftDeliveryGoodsDataListData?.dgfactoryitemtypeid.isNullOrEmpty()
+                                        .not()
+                                ) {
+                                    val watehouseAdapter: BaseAdapter<WrStandardFactoryItem, TjmdWarehouseSelectViewHolder> =
+                                        BaseAdapter { _, _ ->
+                                            TjmdWarehouseSelectViewHolder(
+                                                activity,
+                                                viewModel,
+                                                ftDeliveryGoodsDataListData?.dgfactoryitemtypeid
+                                                    ?: ""
+                                            )
+                                        }
+                                    warehouseRecycview.adapter = watehouseAdapter
+                                    watehouseAdapter.setNewData(ftDeliveryGoodsDataListData?.itemlst)
+                                }
+                            }
+
+                            verticalLayout {
+                                if (type == "1" || type == "3") {
+                                    visibility = View.GONE
+                                } else {
+                                    visibility = View.VISIBLE
+                                }
+                                linearLayout {
+                                    gravity = Gravity.CENTER_VERTICAL
+                                    textView {
+                                        text = "期货合约"
+                                        textSizeAuto = 34
+                                        textColorInt = R.color.rma_black_33
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(34)
+                                    }
+                                }.lparams(matchParent, autoSize(80))
+
+                                linearLayout {
+                                    onThrottleFirstClick {
+                                        activity.creatBottomSheetDialog(
+                                            "请选择品种",
+                                            viewModel.goodsGroupList.value ?: arrayListOf()
+                                        ) {
+                                            viewModel.selectGoodsGroupData.postValue(this)
+                                            viewModel.setGoodsInfoList(this.goodsgroupid)
+                                        }
+                                    }
+                                    backgroundResource = R.drawable.yrdz_item_normal_bg
+                                    gravity = Gravity.CENTER_VERTICAL
+                                    textView {
+                                        viewModel.selectGoodsGroupData.bindOptional(context) {
+                                            text = it?.value
+                                        }
+                                        text = "请选择品种"
+                                        textSizeAuto = 32
+                                        textColorInt = R.color.rma_black_33
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(30)
+                                    }
+
+                                    emptyView()
+
+                                    imageView {
+                                        imageResource = R.mipmap.rma_down
+                                    }.lparams(autoSize(30), autoSize(20)) {
+                                        marginEnd = autoSize(30)
+                                    }
+                                }.lparams(autoSize(420), autoSize(72)) {
+                                    marginStart = autoSize(36)
+                                }
+
+                                linearLayout {
+                                    onThrottleFirstClick {
+                                        if (viewModel.selectGoodsGroupData.value?.id.isNullOrEmpty()) {
+                                            ToastUtils.showLong("请先选择商品组")
+                                            return@onThrottleFirstClick
+                                        }
+                                        activity.creatBottomSheetDialog(
+                                            "请选择合约",
+                                            viewModel.goodsInfoList.value ?: arrayListOf()
+                                        ) {
+                                            viewModel.selectGoodsInfoData.postValue(this)
+                                        }
+                                    }
+                                    backgroundResource = R.drawable.yrdz_item_normal_bg
+                                    gravity = Gravity.CENTER_VERTICAL
+                                    textView {
+                                        viewModel.selectGoodsInfoData.bindOptional(context) {
+                                            text = it?.value
+                                        }
+                                        text = "请选择合约"
+                                        textSizeAuto = 32
+                                        textColorInt = R.color.rma_black_33
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(30)
+                                    }
+
+                                    emptyView()
+
+                                    imageView {
+                                        imageResource = R.mipmap.rma_down
+                                    }.lparams(autoSize(30), autoSize(20)) {
+                                        marginEnd = autoSize(30)
+                                    }
+                                }.lparams(autoSize(420), autoSize(72)) {
+                                    topMargin = autoSize(24)
+                                    marginStart = autoSize(36)
+                                }
+                            }.lparams(matchParent, wrapContent)
+
+
+                            recyclerView {
+                                background = resources.getDrawable(R.color.white)
+                                adapter = elementsAdapter
+                            }.lparams(matchParent, wrapContent)
+
+                            viewModel.WrStandardFactoryItemDataList.bindOptional(context) { data ->
+                                val elementsDataList = arrayListOf<FtDeliveryGoodsDataListData>()
+
+                                data?.forEach {
+                                    if (it.dgfactoryitemtypeid != "1") {
+                                        elementsDataList.add(it)
+                                    }
+                                }
+                                elementsAdapter.setNewData(elementsDataList)
+
+                            }
+
+                        }.lparams(matchParent, matchParent)
+                    }
+                }
+
+                linearLayout {
+                    background = resources.getDrawable(R.color.white)
+                    gravity = Gravity.CENTER_VERTICAL
+
+
+                    textView {
+                        onThrottleFirstClick {
+                            viewModel.queryOneOrderQuote()
+                            viewModel.queryFloatOrderQuote()
+                            dialog.dismiss()
+                            viewModel.resetSelectContent()
+                        }
+                        backgroundResource = R.drawable.rma_item_click_bg
+                        gravity = Gravity.CENTER
+                        text = "重置"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_blue_color
+                    }.lparams(0, autoSize(84), 1f) {
+                        marginStart = autoSize(23)
+                    }
+
+                    textView {
+                        onThrottleFirstClick {
+                            if (viewModel.selectWrFtWrstandardData.value?.wrstandardid.isNullOrEmpty()) {
+                                ToastUtils.showLong("请选择相应商品")
+                                return@onThrottleFirstClick
+                            }
+                            if (type == "1") {
+                                viewModel.queryOneOrderQuote(
+                                    wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                        ?: "",
+                                    warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                                    dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                )
+                            } else if (type == "2") {
+                                viewModel.queryFloatOrderQuote(
+                                    wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                        ?: "",
+                                    warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                                    dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                )
+                            } else {
+                                if (buyOrSell == "0") {//查询贸易圈买挂牌
+                                    viewModel.queryOrderSellQuoteMyq(
+                                        wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                            ?: "",
+                                        dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                    )
+                                } else {//查询贸易圈卖挂牌
+                                    viewModel.queryOrderBuyQuoteMyq(
+                                        wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                            ?: "",
+                                        dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                    )
+
+                                }
+                            }
+                            viewModel.queryFtDeliveryGoods()
+                            dialog.dismiss()
+                        }
+                        backgroundResource = R.drawable.rydz_main_blue_bg
+                        gravity = Gravity.CENTER
+                        text = "筛选"
+                        textSizeAuto = 34
+                        textColorInt = R.color.white
+                    }.lparams(0, autoSize(84), 1f) {
+                        marginStart = autoSize(23)
+                    }
+
+                    textView {
+                        onThrottleFirstClick {
+                            if (viewModel.selectWrFtWrstandardData.value?.wrstandardid.isNullOrEmpty()) {
+                                ToastUtils.showLong("请选择相应商品")
+                                return@onThrottleFirstClick
+                            }
+                            if (viewModel.getSelectWarehouseOrFactoryid("1").isNullOrEmpty()) {
+                                ToastUtils.showLong("请选择仓库")
+                                return@onThrottleFirstClick
+                            }
+                            if (type == "2") {
+                                if (viewModel.selectGoodsInfoData.value?.id.isNullOrEmpty()) {
+                                    ToastUtils.showLong("请选择期货商品")
+                                    return@onThrottleFirstClick
+                                }
+                            }
+                            if (!viewModel.getSelectBooble()) {
+                                ToastUtils.showLong("挂牌时每个属性都需要选择一个具体的选项")
+                                return@onThrottleFirstClick
+                            }
+                            if (type == "1") {
+                                viewModel.queryOneOrderQuoteByListed(
+                                    wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                        ?: "",
+                                    warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                                    dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                )
+                            } else if (type == "2") {
+                                viewModel.queryFloatOrderQuoteByListed(
+                                    wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                        ?: "",
+                                    warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),
+                                    dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                )
+                            } else {
+                                if (buyOrSell == "0") {//查询贸易圈买挂牌
+                                    viewModel.queryOrderSellQuoteMyqByListed(
+                                        wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                            ?: "",
+                                        dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                    )
+
+                                } else {//查询贸易圈卖挂牌
+                                    viewModel.queryOrderBuyQuoteMyqByListed(
+                                        wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid
+                                            ?: "",
+                                        dgitemname = viewModel.getSelectWarehouseOrFactoryid("2")
+                                    )
+
+                                }
+                            }
+                            viewModel.queryFtDeliveryGoods()
+                            dialog.dismiss()
+                        }
+                        backgroundResource = R.drawable.rydz_main_red_bg
+                        gravity = Gravity.CENTER
+                        text = "挂牌"
+                        textSizeAuto = 34
+                        textColorInt = R.color.white
+                    }.lparams(0, autoSize(84), 1f) {
+                        marginStart = autoSize(23)
+                        marginEnd = autoSize(23)
+                    }
+                }.lparams(matchParent, autoSize(120)) {
+                    gravity = Gravity.BOTTOM
+                }
+            }.lparams(matchParent, matchParent)
+        }.lparams(matchParent, matchParent) {
+            topMargin = autoSize(120)
+            marginEnd = autoSize(84)
+        }
+    }
+}

+ 765 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/WarehouseReceiptUI.kt

@@ -0,0 +1,765 @@
+package cn.muchinfo.rma.view.base.tjmd
+
+import android.os.Build
+import android.view.Gravity
+import android.view.MotionEvent
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.RequiresApi
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.procurement.TopTabAdpater
+import cn.muchinfo.rma.view.base.procurement.TopTabYrdzAdpater
+import cn.muchinfo.rma.view.base.warehousereceipt.circle.TradeCircleContentAdapter
+import cn.muchinfo.rma.view.base.warehousereceipt.floata.FloatPriceAdapter
+import cn.muchinfo.rma.view.base.warehousereceipt.one.OnePriceAdapter
+import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.SizeUtils
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 仓单贸易相关一口价/浮动价/贸易圈ui
+ */
+
+/**
+ * 仓单贸易一口价报价牌
+ * @property fragment Fragment
+ * @property viewModel WarehouseReceiptViewModel
+ * @constructor
+ */
+class WarehouseOnePriceUI(private val fragment : Fragment, private val viewModel: TjmdMarketViewModel) : OnePriceAdapter.OnContentScrollListener{
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    lateinit var dataRecyclerview : RecyclerView
+
+
+    //标题头部
+    val topAdapter by lazy {
+        TopTabYrdzAdpater(fragment.context)
+    }
+
+    val onePriceAdapter by lazy {
+        OnePriceAdapter(fragment.context,"1" )
+    }
+
+    val root = _FrameLayout(fragment.context!!).apply {
+        verticalLayout {
+            linearLayout {
+                viewModel.queryOneOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid ?: "",warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+//                            viewModel.titleList.bindOptional(context) {
+//                                text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+//                            }
+                        text = "品种/商品"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 31
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(SizeUtils.dp2px(100f)), autoSize(100))
+                onePriceAdapter.setOnContentScrollListener(this@WarehouseOnePriceUI)
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { _, scrollX, _, _, _ -> //代码重复,可以抽取/////
+                        onePriceAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<OnePriceAdapter.ItemViewHolder> =
+                            onePriceAdapter.viewHolderCacheList
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+//                            viewModel.titleList.bindOptional(context) {
+//                                val titleStringList = arrayListOf<String>()
+//                                it?.subList(1, it.size)?.forEach { data ->
+//                                    titleStringList.add(data.columntitle?.replace("\\n", "\n") ?: "")
+//                                }
+//                                topAdapter.setDatas(titleStringList)
+//                            }
+                        topAdapter.setDatas(arrayListOf("卖价","卖量","买价","买量","仓库"))
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+                    viewModel.queryOneOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid ?: "",warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
+                }
+
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryOneOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid ?: "",warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        dataRecyclerview = this
+                        background = resources.getDrawable(R.color.white)
+                        adapter = onePriceAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<OnePriceAdapter.ItemViewHolder> =
+                                    onePriceAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            onePriceAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
+                                super.onScrollStateChanged(recyclerView, newState)
+                                // DES: 找出当前可视Item位置
+                                val linearLayoutManager = dataRecyclerview.layoutManager as LinearLayoutManager
+//                                if (newState == RecyclerView.SCROLL_STATE_IDLE) {// 这个判断是当recyclerview不滚动时
+//
+//                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.onePrcieDataList.bindOptional(context) {
+//                if (it?.size ?: 0 > 10){
+//                    lastShow = 10
+//                }else{
+//                    lastShow = it?.size ?: 0
+//                }
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+//                        mHeadHeaderHSView.scrollTo(scrollXView,scrollYView)
+                    }
+                    statusLayout.showSuccess()
+                    onePriceAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+}
+
+
+/**
+ * 浮动价报价牌
+ * @property fragment Fragment
+ * @property viewModel WarehouseReceiptViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class WarehouseFloatingPriceUI(private val fragment : Fragment,private val viewModel: TjmdMarketViewModel)  : FloatPriceAdapter.OnContentScrollListener{
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    lateinit var dataRecyclerview : RecyclerView
+
+    var fistShow: Int = 0
+    var lastShow: Int = 0
+
+    //标题头部
+    val topAdapter by lazy {
+        TopTabYrdzAdpater(fragment.context)
+    }
+
+    val floatPriceAdapter by lazy {
+        FloatPriceAdapter(fragment.context,"1")
+    }
+
+    fun quoteFresh(index : Int){
+        dataRecyclerview.adapter?.notifyItemChanged(index)
+    }
+
+    val root = _FrameLayout(fragment.context!!).apply {
+        verticalLayout {
+            viewModel.queryFloatOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid ?: "",warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+//                            viewModel.titleList.bindOptional(context) {
+//                                text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+//                            }
+                        text = "品种/商品"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 31
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(SizeUtils.dp2px(100f)), autoSize(100))
+                floatPriceAdapter.setOnContentScrollListener(this@WarehouseFloatingPriceUI)
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { _, scrollX, _, _, _ -> //代码重复,可以抽取/////
+                        floatPriceAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<FloatPriceAdapter.ItemViewHolder> =
+                            floatPriceAdapter.viewHolderCacheList
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+//                            viewModel.titleList.bindOptional(context) {
+//                                val titleStringList = arrayListOf<String>()
+//                                it?.subList(1, it.size)?.forEach { data ->
+//                                    titleStringList.add(data.columntitle?.replace("\\n", "\n") ?: "")
+//                                }
+//                                topAdapter.setDatas(titleStringList)
+//                            }
+                        topAdapter.setDatas(arrayListOf("卖基差","卖量","买基差","买量","期货合约","仓库"))
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+
+                }
+
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryFloatOrderQuote(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid ?: "",warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
+//                        viewModel.queryQuoteDay(
+//                            tag = thisTag ?: "",
+//                            first = fistShow,
+//                            last = lastShow,
+//                            list = viewModel.floatProceDataList.value ?: arrayListOf()
+//                        ) { isCompleted, err ->
+//                            if (isCompleted) {
+//                                if (swipeToLayout.getIsRefreshing()) {
+//                                    swipeToLayout.finishRefresh()
+//                                }
+//                                dataRecyclerview.adapter?.notifyItemRangeChanged(fistShow, lastShow)
+//                            }
+//                        }
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        dataRecyclerview = this
+                        background = resources.getDrawable(R.color.white)
+                        adapter = floatPriceAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<FloatPriceAdapter.ItemViewHolder> =
+                                    floatPriceAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            floatPriceAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
+                                super.onScrollStateChanged(recyclerView, newState)
+                                // DES: 找出当前可视Item位置
+                                val linearLayoutManager = dataRecyclerview.layoutManager as LinearLayoutManager
+                                if (newState == RecyclerView.SCROLL_STATE_IDLE) {// 这个判断是当recyclerview不滚动时
+//                                    fistShow = linearLayoutManager.findFirstVisibleItemPosition()//获取第一个显示条目
+//                                    lastShow = linearLayoutManager.findLastVisibleItemPosition()//获取最后一个显示条目
+//                                    if (fistShow != -1 && lastShow != -1) {
+//                                        viewModel.queryQuoteDay(
+//                                            tag = thisTag,
+//                                            first = fistShow,
+//                                            last = lastShow,
+//                                            list = viewModel.floatProceDataList.value ?: arrayListOf()
+//                                        ) { isCompleted, err ->
+//                                            if (isCompleted) {
+//                                                dataRecyclerview.adapter?.notifyItemRangeChanged(fistShow, lastShow)
+//                                            }
+//                                        }
+//                                    }
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.floatProceDataList.bindOptional(context) {
+//                if (it?.size ?: 0 > 10){
+//                    lastShow = 10
+//                }else{
+//                    lastShow = it?.size ?: 0
+//                }
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+//                        mHeadHeaderHSView.scrollTo(scrollXView,scrollYView)
+                    }
+                    statusLayout.showSuccess()
+                    floatPriceAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+}
+
+
+/**
+ * 仓单-贸易圈ui
+ * @property activity AppCompatActivity
+ * @property viewModel WarehouseReceiptViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class WarehouseOnePriceBargainingUI(private val fragment : Fragment, private val viewModel: TjmdMarketViewModel){
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    private lateinit var viewPager: ViewPager
+
+    val onePriceCircleSellUI by lazy { WarehouseOnePriceCircleSellUI(fragment,viewModel) }
+
+    val onePriceCircleBuyUI by lazy { WarehouseOnePriceCircleBuyUI(fragment,viewModel) }
+
+    //viewpager的适配器
+    private var newPagerAdapter : PagerAdapter? = null
+
+    //tabSegment标题
+    private val newTabsArray : ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    private val uiList : ArrayList<_FrameLayout> = arrayListOf()
+
+    fun initMenuData(){
+
+        newTabsArray.add("卖挂牌")
+        uiList.add(onePriceCircleSellUI.root)
+
+        newTabsArray.add("买挂牌")
+        uiList.add(onePriceCircleBuyUI.root)
+
+        newPagerAdapter = object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = newTabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                return uiList.get(position).apply {
+                    container.addView(
+                        this,
+                        ViewGroup.LayoutParams(matchParent, matchParent)
+                    )
+                }
+            }
+
+            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 = newTabsArray.size
+
+        }
+
+    }
+
+    val root = _FrameLayout(fragment.activity!!).apply {
+        verticalLayout {
+            initMenuData()
+            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(18f))
+            }.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 = newPagerAdapter
+            }.lparams(matchParent, matchParent)
+            segment.setupWithViewPager(viewPager)
+            segment.selectTab(0)
+        }
+    }
+
+}
+
+/**
+ * 现货贸易圈卖挂牌
+ * @property activity AppCompatActivity
+ * @property viewModel WarehouseReceiptViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class WarehouseOnePriceCircleSellUI(private val fragment : Fragment,private val viewModel: TjmdMarketViewModel) :
+    TradeCircleContentAdapter.OnContentScrollListener {
+
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    val topAdapter by lazy {
+        TopTabAdpater(fragment.activity)
+    }
+
+    val tradeCircleContentAdapter by lazy {
+        TradeCircleContentAdapter(
+            fragment.activity,"1"
+        )
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+    @RequiresApi(Build.VERSION_CODES.N)
+    val root = _FrameLayout(fragment.activity!!).apply {
+        verticalLayout {
+            viewModel.queryOrderSellQuoteMyq()
+//            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
+            tradeCircleContentAdapter.setOnContentScrollListener(this@WarehouseOnePriceCircleSellUI)
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+                        text = "品种/商品"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 24
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(250), autoSize(100))
+
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { _, scrollX, _, _, _ ->
+                        tradeCircleContentAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<TradeCircleContentAdapter.ItemViewHolder> =
+                            tradeCircleContentAdapter.viewHolderCacheList
+
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+                        topAdapter.setDatas(arrayListOf("履约方式","价格","数量","议价","整单","挂牌有效期","履约保证金","挂牌方","仓库"))
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+                    viewModel.queryOrderSellQuoteMyq()
+                }
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(true)
+                    setOnRefreshListener {
+                        viewModel.queryOrderSellQuoteMyq()
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        background = resources.getDrawable(R.color.white)
+                        adapter = tradeCircleContentAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<TradeCircleContentAdapter.ItemViewHolder> =
+                                    tradeCircleContentAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            tradeCircleContentAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.circleSellContentDataList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    tradeCircleContentAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+}
+/**
+ * 现货贸易圈买挂牌
+ * @property activity AppCompatActivity
+ * @property viewModel WarehouseReceiptViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class WarehouseOnePriceCircleBuyUI(private val fragment : Fragment,private val viewModel: TjmdMarketViewModel) :
+    TradeCircleContentAdapter.OnContentScrollListener {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    val topAdapter by lazy {
+        TopTabAdpater(fragment.activity)
+    }
+
+    val tradeCircleContentAdapter by lazy {
+        TradeCircleContentAdapter(
+            fragment.activity,"1"
+        )
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+    @RequiresApi(Build.VERSION_CODES.N)
+    val root = _FrameLayout(fragment.activity!!).apply {
+        verticalLayout {
+            viewModel.queryOrderBuyQuoteMyq()
+//            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
+            tradeCircleContentAdapter.setOnContentScrollListener(this@WarehouseOnePriceCircleBuyUI)
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+                        text = "品种/商品"
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 24
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(250), autoSize(100))
+
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { _, scrollX, _, _, _ ->
+                        tradeCircleContentAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<TradeCircleContentAdapter.ItemViewHolder> =
+                            tradeCircleContentAdapter.viewHolderCacheList
+
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+                        topAdapter.setDatas(arrayListOf("履约方式","价格","数量","议价","整单","挂牌有效期","履约保证金","挂牌方","仓库"))
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                setRetryAction {
+                    viewModel.queryOrderBuyQuoteMyq()
+                }
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(true)
+                    setOnRefreshListener {
+                        viewModel.queryOrderBuyQuoteMyq()
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        background = resources.getDrawable(R.color.white)
+                        adapter = tradeCircleContentAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<TradeCircleContentAdapter.ItemViewHolder> =
+                                    tradeCircleContentAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            tradeCircleContentAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.circleBuyContentDataList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    tradeCircleContentAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+
+}

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

@@ -0,0 +1,44 @@
+package cn.muchinfo.rma.view.base.tjmd.cdmyviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.WrStandardFactoryItem
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptViewModel
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+class TjmdWarehouseSelectViewHolder(private val activity : AppCompatActivity, private val viewModel: TjmdMarketViewModel, private val dgfactoryitemtypeid : String) : BaseViewHolder<WrStandardFactoryItem>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            onThrottleFirstClick {
+                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "",dgfactoryitemtypeid = dgfactoryitemtypeid)
+            }
+
+            gravity = Gravity.CENTER
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context){
+                    if (it?.isSelect == 0){
+                        backgroundResource = R.drawable.rma_item_normal_bg
+                        textColorInt = R.color.rma_black_33
+                    }else{
+                        textColorInt = R.color.rma_blue_color
+                        backgroundResource = R.drawable.rma_item_select_bg
+                    }
+                    text = it?.dgfactoryitemvalue
+                }
+                textSizeAuto = 32
+            }.lparams(autoSize(420), autoSize(72))
+        }.lparams(matchParent, autoSize(94))
+    }
+
+}

+ 64 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdmyviewholder/TjmdWarehouseWrstandardnameViewHolder.kt

@@ -0,0 +1,64 @@
+package cn.muchinfo.rma.view.base.tjmd.cdmyviewholder
+
+import android.view.Gravity
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.Ermcp3Wrstandard
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsData
+import cn.muchinfo.rma.global.data.WrFtWrstandard
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.recyclerView
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.home.commodity.newcommodity.SpotCategoryViewHolder
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptViewModel
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+//左侧商品选择
+class TjmdWarehouseWrstandardnameViewHolder(private val activity : AppCompatActivity, private val viewModel: TjmdMarketViewModel) : BaseViewHolder<FtDeliveryGoodsData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    //商品adapter
+   lateinit var recyclview : RecyclerView
+
+    override fun _FrameLayout.createContentView() {
+        verticalLayout {
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                imageView {
+                    imageResource = R.mipmap.rma_down
+                }.lparams(autoSize(22), autoSize(22)){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    data.bindOptional(context){
+                        text = it?.deliverygoodsname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(20)
+                }
+
+            }.lparams(matchParent, autoSize(80))
+            recyclerView {
+                recyclview = this
+                background = resources.getDrawable(R.color.white)
+            }.lparams(matchParent, wrapContent)
+            data.bindOptional(context){
+                val spotCategoryAdapter: BaseAdapter<WrFtWrstandard, TjmdWarehouseWrstandnameSoneViewHolder> =
+                    BaseAdapter { _, _ -> TjmdWarehouseWrstandnameSoneViewHolder(activity, viewModel,it?.deliverygoodsid ?: "") }
+                recyclview.adapter = spotCategoryAdapter
+                spotCategoryAdapter.setNewData(it?.wdlst)
+            }
+        }.lparams(matchParent, wrapContent)
+    }
+
+}

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

@@ -0,0 +1,44 @@
+package cn.muchinfo.rma.view.base.tjmd.cdmyviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.WrFtWrstandard
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptViewModel
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+class TjmdWarehouseWrstandnameSoneViewHolder(private val activity: AppCompatActivity, private val viewModel: TjmdMarketViewModel, private val deliverygoodsid : String) : BaseViewHolder<WrFtWrstandard>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            onThrottleFirstClick {
+                viewModel.setOnItemClick(deliverygoodsid = deliverygoodsid,wrstandardid = data.value?.wrstandardid ?: "")
+                viewModel.selectWrFtWrstandardData.postValue(data.value)
+            }
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                data.bindOptional(context){
+                    if (it?.isSelect == 0){
+                        textColorInt = R.color.rma_zhushi_text_color
+                    }else{
+                        textColorInt = R.color.rma_blue_color
+                    }
+                    text = it?.wrstandardname
+                }
+                textSizeAuto = 32
+
+            }.lparams(wrapContent, wrapContent){
+                marginStart = autoSize(120)
+            }
+        }.lparams(matchParent, autoSize(70))
+    }
+
+}

+ 62 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdmyviewholder/TjmdWrStandardFactoryItemSonViewHolder.kt

@@ -0,0 +1,62 @@
+package cn.muchinfo.rma.view.base.tjmd.cdmyviewholder
+
+import android.os.Build
+import android.view.Gravity
+import android.widget.TextView
+import androidx.annotation.RequiresApi
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.WrStandardFactoryItem
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptViewModel
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+import org.w3c.dom.Text
+
+//要素子item
+class TjmdWrStandardFactoryItemSonViewHolder(private val activity : AppCompatActivity, private val viewModel: TjmdMarketViewModel, private val dgfactoryitemtypeid : String) : BaseViewHolder<WrStandardFactoryItem>(activity){
+
+    override val itemSize: IntArray = intArrayOf(autoSize(210), autoSize(80))
+
+    @RequiresApi(Build.VERSION_CODES.O)
+    override fun _FrameLayout.createContentView() {
+
+        verticalLayout {
+            linearLayout {
+                onThrottleFirstClick {
+                    viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "",dgfactoryitemtypeid = dgfactoryitemtypeid)
+                }
+                gravity = Gravity.CENTER
+                data.bindOptional(context){
+                    if (it?.isSelect == 0){
+                        backgroundResource = R.drawable.rma_item_normal_bg
+                    }else{
+                        backgroundResource = R.drawable.rma_item_select_bg
+                    }
+                }
+                textView {
+                    gravity = Gravity.CENTER
+                    setAutoSizeTextTypeWithDefaults(TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM)
+                    data.bindOptional(context){
+                        text = it?.dgfactoryitemvalue
+
+                        if (it?.isSelect == 0){
+                            textColorInt = R.color.rma_black_33
+                        }else{
+                            textColorInt = R.color.rma_blue_color
+                        }
+                    }
+                    textSizeAuto = 32
+                }.lparams(autoSize(210), wrapContent)
+            }.lparams(autoSize(210), autoSize(72))
+
+        }.lparams(autoSize(210), autoSize(80))
+
+    }
+
+}

+ 66 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdmyviewholder/TjmdWrStandardFactoryItemViewHolder.kt

@@ -0,0 +1,66 @@
+package cn.muchinfo.rma.view.base.tjmd.cdmyviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.StaggeredGridLayoutManager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsDataListData
+import cn.muchinfo.rma.global.data.WrFtWrstandard
+import cn.muchinfo.rma.global.data.WrStandardFactoryItem
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.recyclerView
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.WarehouseReceiptViewModel
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+//要素item
+class TjmdWrStandardFactoryItemViewHolder(private val activity : AppCompatActivity, private val viewModel: TjmdMarketViewModel) : BaseViewHolder<FtDeliveryGoodsDataListData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    //列表
+    lateinit var recyclerview : RecyclerView
+
+    override fun _FrameLayout.createContentView() {
+        verticalLayout {
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+
+                    data.bindOptional(context){
+                        text = it?.itemtypename
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+            }.lparams(matchParent, autoSize(80))
+
+            recyclerView {
+                recyclerview = this
+                val staggeredGridLayoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
+                layoutManager = staggeredGridLayoutManager
+                background = resources.getDrawable(R.color.white)
+            }.lparams(matchParent, wrapContent)
+
+            data.bindOptional(context){
+                //要素子item
+               val spotCategoryAdapter: BaseAdapter<WrStandardFactoryItem, TjmdWrStandardFactoryItemSonViewHolder> =
+                    BaseAdapter { _, _ -> TjmdWrStandardFactoryItemSonViewHolder(activity, viewModel,it?.dgfactoryitemtypeid ?: "") }
+                recyclerview.adapter = spotCategoryAdapter
+                spotCategoryAdapter.setNewData(it?.itemlst)
+            }
+
+        }.lparams(matchParent, wrapContent)
+    }
+
+
+}

+ 43 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysSelectViewHolder.kt

@@ -0,0 +1,43 @@
+package cn.muchinfo.rma.view.base.tjmd.cdysviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.WrStandardFactoryItem
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+//筛选右侧viewholder
+class TjmdCdysSelectViewHolder(private val activity : AppCompatActivity, private val viewModel: TjmdMarketViewModel, private val dgfactoryitemtypeid : String) : BaseViewHolder<WrStandardFactoryItem>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            onThrottleFirstClick {
+                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "",dgfactoryitemtypeid = dgfactoryitemtypeid)
+            }
+            gravity = Gravity.CENTER
+            textView {
+                gravity = Gravity.CENTER
+                data.bindOptional(context){
+                    if (it?.isSelect == 0){
+                        backgroundResource = R.drawable.rma_item_normal_bg
+                        textColorInt = R.color.rma_black_33
+                    }else{
+                        textColorInt = R.color.rma_blue_color
+                        backgroundResource = R.drawable.rma_item_select_bg
+                    }
+                    text = it?.dgfactoryitemvalue
+                }
+                textSizeAuto = 32
+            }.lparams(autoSize(420), autoSize(72))
+        }.lparams(matchParent, autoSize(94))
+    }
+
+}

+ 48 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysWrStandardFactoryItemSonViewHolder.kt

@@ -0,0 +1,48 @@
+package cn.muchinfo.rma.view.base.tjmd.cdysviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.WrStandardFactoryItem
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+//要素子item
+class TjmdCdysWrStandardFactoryItemSonViewHolder(private val activity : AppCompatActivity, private val viewModel: TjmdMarketViewModel, private val dgfactoryitemtypeid : String) : BaseViewHolder<WrStandardFactoryItem>(activity){
+
+    override val itemSize: IntArray = intArrayOf(autoSize(160), autoSize(72))
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            onThrottleFirstClick {
+                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "",dgfactoryitemtypeid = dgfactoryitemtypeid)
+            }
+            gravity = Gravity.CENTER
+            data.bindOptional(context){
+                if (it?.isSelect == 0){
+                    backgroundResource = R.drawable.rma_item_normal_bg
+                }else{
+                    backgroundResource = R.drawable.rma_item_select_bg
+                }
+            }
+            textView {
+                data.bindOptional(context){
+                    text = it?.dgfactoryitemvalue
+                    if (it?.isSelect == 0){
+                        textColorInt = R.color.rma_black_33
+                    }else{
+                        textColorInt = R.color.rma_blue_color
+                    }
+                }
+                textSizeAuto = 32
+            }.lparams(wrapContent, wrapContent)
+        }.lparams(autoSize(160), autoSize(72))
+    }
+
+}

+ 62 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysWrStandardFactoryItemViewHolder.kt

@@ -0,0 +1,62 @@
+package cn.muchinfo.rma.view.base.tjmd.cdysviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.StaggeredGridLayoutManager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsDataListData
+import cn.muchinfo.rma.global.data.WrStandardFactoryItem
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.recyclerView
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+//要素item
+class TjmdCdysWrStandardFactoryItemViewHolder(private val activity : AppCompatActivity, private val viewModel: TjmdMarketViewModel) : BaseViewHolder<FtDeliveryGoodsDataListData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    lateinit var recyclerView: RecyclerView
+
+    override fun _FrameLayout.createContentView() {
+        verticalLayout {
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+
+                    data.bindOptional(context){
+                        text = it?.itemtypename
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+            }.lparams(matchParent, autoSize(80))
+
+            recyclerView {
+                recyclerView = this
+                val staggeredGridLayoutManager = StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)
+                layoutManager = staggeredGridLayoutManager
+                background = resources.getDrawable(R.color.white)
+            }.lparams(matchParent, wrapContent)
+
+            data.bindOptional(context){
+                val spotCategoryAdapter: BaseAdapter<WrStandardFactoryItem, TjmdCdysWrStandardFactoryItemSonViewHolder> =
+                    BaseAdapter { _, _ -> TjmdCdysWrStandardFactoryItemSonViewHolder(activity, viewModel,it?.dgfactoryitemtypeid ?: "") }
+                recyclerView.adapter = spotCategoryAdapter
+                spotCategoryAdapter.setNewData(it?.itemlst)
+            }
+
+        }.lparams(matchParent, wrapContent)
+    }
+
+
+}

+ 60 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysWrstandardnameViewHolder.kt

@@ -0,0 +1,60 @@
+package cn.muchinfo.rma.view.base.tjmd.cdysviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsData
+import cn.muchinfo.rma.global.data.WrFtWrstandard
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.recyclerView
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+//左侧商品选择
+class TjmdCdysWrstandardnameViewHolder(private val activity : AppCompatActivity, private val viewModel: TjmdMarketViewModel) : BaseViewHolder<FtDeliveryGoodsData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    //商品adapter
+   lateinit var recyclview : RecyclerView
+
+    override fun _FrameLayout.createContentView() {
+        verticalLayout {
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                imageView {
+                    imageResource = R.mipmap.rma_down
+                }.lparams(autoSize(22), autoSize(22)){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    data.bindOptional(context){
+                        text = it?.deliverygoodsname
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(20)
+                }
+
+            }.lparams(matchParent, autoSize(80))
+            recyclerView {
+                recyclview = this
+                background = resources.getDrawable(R.color.white)
+            }.lparams(matchParent, wrapContent)
+            data.bindOptional(context){
+                val spotCategoryAdapter: BaseAdapter<WrFtWrstandard, TjmdCdysWrstandnameSoneViewHolder> =
+                    BaseAdapter { _, _ -> TjmdCdysWrstandnameSoneViewHolder(activity, viewModel,it?.deliverygoodsid ?: "") }
+                recyclview.adapter = spotCategoryAdapter
+                spotCategoryAdapter.setNewData(it?.wdlst)
+            }
+        }.lparams(matchParent, wrapContent)
+    }
+
+}

+ 43 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/cdysviewholder/TjmdCdysWrstandnameSoneViewHolder.kt

@@ -0,0 +1,43 @@
+package cn.muchinfo.rma.view.base.tjmd.cdysviewholder
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.WrFtWrstandard
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.tjmd.TjmdMarketViewModel
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+class TjmdCdysWrstandnameSoneViewHolder(private val activity: AppCompatActivity, private val viewModel: TjmdMarketViewModel, private val deliverygoodsid : String) : BaseViewHolder<WrFtWrstandard>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            onThrottleFirstClick {
+                viewModel.setOnItemClick(deliverygoodsid = deliverygoodsid,wrstandardid = data.value?.wrstandardid ?: "")
+                viewModel.selectWrFtWrstandardData.postValue(data.value)
+            }
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                data.bindOptional(context){
+                    if (it?.isSelect == 0){
+                        textColorInt = R.color.rma_zhushi_text_color
+                    }else{
+                        textColorInt = R.color.rma_blue_color
+                    }
+                    text = it?.wrstandardname
+                }
+                textSizeAuto = 32
+
+            }.lparams(wrapContent, wrapContent){
+                marginStart = autoSize(120)
+            }
+        }.lparams(matchParent, autoSize(70))
+    }
+
+}

+ 8 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessBuyHallViewHolder.kt

@@ -117,13 +117,14 @@ class BusinessBuyHallViewHolder(private val activity : AppCompatActivity, privat
                 }
 
                 textView {
-                    data.bindOptional(context){
-                        if (it?.buyorsell == "1"){
-                            visibility = View.VISIBLE
-                        }else{
-                            visibility = View.GONE
-                        }
-                    }
+                    visibility = View.GONE
+//                    data.bindOptional(context){
+//                        if (it?.buyorsell == "1"){
+//                            visibility = View.VISIBLE
+//                        }else{
+//                            visibility = View.GONE
+//                        }
+//                    }
                     onThrottleFirstClick {
                         onThrottleFirstClick {
                             viewModel.selectData.postValue(data.value)

+ 20 - 16
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallActivity.kt

@@ -872,7 +872,7 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
                 itemView()
 
                 linearLayout {
-                    visibility = if (buySelldata.buyorsell == "0") {
+                    visibility = if (buySelldata.buyorsell == "1") {
                         View.GONE
                     } else {
                         View.VISIBLE
@@ -1154,7 +1154,7 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
                                 return@onThrottleFirstClick
                             }
 
-                            if (buySelldata.buyorsell == "1") {
+                            if (buySelldata.buyorsell == "0") {
                                 if (selectSpotDetailsData.value?.deliverygoodsid.isNullOrEmpty()) {
                                     ToastUtils.showLong("请选择现货仓单明细")
                                     return@onThrottleFirstClick
@@ -2142,7 +2142,7 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
                                                 max = it ?: 1.0
                                             }
                                             onePriceInputNumberEdittext = this
-                                            setOnTextChangeListener { view, value ->
+                                            setOnTextChangeListener { _, value ->
                                                 if (value.isNullOrEmpty().not()) {
                                                     viewModel.quoteDayData.postValue(viewModel.quoteDayData.value)
                                                     float_delisting_amount.text =
@@ -2257,12 +2257,16 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
                                             dialog1.dismiss()
                                         }
                                         var cost = ""//费用
-                                        if (it?.interestratemode == "1") {
-                                            cost = it.interestrate?.toPercentage() ?: ""
-                                        } else if (it?.interestratemode == "2") {
-                                            cost = it.interestrate?.toWanPercentage() ?: ""
-                                        } else if (it?.interestratemode == "3") {//固定值
-                                            cost = NumberUtils.roundNum(it.interestrate, 2)
+                                        when (it?.interestratemode) {
+                                            "1" -> {
+                                                cost = it.interestrate?.toPercentage() ?: ""
+                                            }
+                                            "2" -> {
+                                                cost = it.interestrate?.toWanPercentage() ?: ""
+                                            }
+                                            "3" -> {//固定值
+                                                cost = NumberUtils.roundNum(it.interestrate, 2)
+                                            }
                                         }
                                         text =
                                             it?.username + "-" + it?.productname + "-" + it?.financingdays + "天-" + it?.marginratio?.toPercentage() + "-" + cost + "-" + if (it?.interestsettlemode == "1") {
@@ -2281,10 +2285,10 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
 
                             linearLayout {
                                 gravity = Gravity.CENTER_VERTICAL
-                                if (pricetype == "2"){
-                                    visibility = View.VISIBLE
+                                visibility = if (pricetype == "2"){
+                                    View.VISIBLE
                                 }else{
-                                    visibility = View.GONE
+                                    View.GONE
                                 }
                                 textView {
                                     text = "估算金额"
@@ -2353,13 +2357,13 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
 
                                 textView {
                                     viewModel.slectfinancingData.bindOptional(context) {
-                                        if (float_total_amount.text.toString()
+                                        text = if (float_delisting_amount.text.toString()
                                                 .isNullOrEmpty()
                                         ) {
-                                            text = "--"
+                                            "--"
                                         } else {
-                                            text = NumberUtils.roundNum(
-                                                float_total_amount.text.toString().toDouble()
+                                            NumberUtils.roundNum(
+                                                float_delisting_amount.text.toString().toDouble()
                                                     .times(it?.marginratio?.toDouble() ?: 0.0), 2
                                             )
                                         }

+ 8 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessSellHallViewHolder.kt

@@ -122,13 +122,14 @@ class BusinessSellHallViewHolder(private val activity : AppCompatActivity,privat
                  }
 
                  textView {
-                     viewModel.financingSelectDataList.bindOptional(context){
-                         if (it?.size ?: 0 > 0){
-                             visibility = View.VISIBLE
-                         }else{
-                             visibility = View.GONE
-                         }
-                     }
+                     visibility = View.GONE
+//                     viewModel.financingSelectDataList.bindOptional(context){
+//                         if (it?.size ?: 0 > 0){
+//                             visibility = View.VISIBLE
+//                         }else{
+//                             visibility = View.GONE
+//                         }
+//                     }
                      onThrottleFirstClick {
                          onThrottleFirstClick {
                              viewModel.selectData.postValue(data.value)

+ 0 - 3
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/PurchaseOrderFragment.kt

@@ -145,10 +145,7 @@ class PurchaseOrderFragment : BaseFragment<PurchaseOrderViewModel>() ,TransferAd
 
                 statusLayout(contentBlock = {
                     statusLayout = this
-                    setRetryAction {
 
-                    }
-//                bindTaskStatus(viewModule.status)
                     swipeToLoadLayout {
                         swipeToLayout = this
                         setEnableRefresh(true)

+ 9 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/adapter/TransferAdapter.java

@@ -173,7 +173,7 @@ public class TransferAdapter extends RecyclerView.Adapter<TransferAdapter.ItemVi
                 newPriceData.setColorType("1");
             }else {
                 newPriceData.setValue(NumberUtils.roundNum(NumberUtils.doubleDistortion(String.valueOf(quoteDayData.getPrice())), 2));
-                newPriceData.setColorType(quoteDayData.getColor());
+                newPriceData.setColorType(String.valueOf(quoteDayData.getColorByPresettleReturnInt()));
             }
 
             rightData.add(newPriceData);
@@ -216,9 +216,11 @@ public class TransferAdapter extends RecyclerView.Adapter<TransferAdapter.ItemVi
             } else {
                 highRightData.setColorType("1");
             }
-            highRightData.setColorType("1");
+//            highRightData.setColorType("1");
             //最低价
             QHjRightData lowestRightData = new QHjRightData();
+            //昨收价
+            QHjRightData yesCloseRightData = new QHjRightData();
             if (quoteDayData.getLowest() == 0.0){
                 lowestRightData.setValue("--");
             }else {
@@ -228,22 +230,22 @@ public class TransferAdapter extends RecyclerView.Adapter<TransferAdapter.ItemVi
             double lowestRightDatColor = quoteDayData.getLowest() - quoteDayData.getPreclose();
             if (lowestRightDatColor > 0) {
                 lowestRightData.setColorType("3");
+                yesCloseRightData.setColorType("3");
             } else if (lowestRightDatColor < 0) {
                 lowestRightData.setColorType("2");
+                yesCloseRightData.setColorType("3");
             } else {
                 lowestRightData.setColorType("1");
+                yesCloseRightData.setColorType("3");
             }
-            lowestRightData.setColorType("1");
-            //昨收价
-            QHjRightData yesCloseRightData = new QHjRightData();
+//            lowestRightData.setColorType("1");
+
             if (quoteDayData.getPreclose() == 0.0){
                 yesCloseRightData.setValue("--");
             }else {
                 yesCloseRightData.setValue(NumberUtils.roundNum(NumberUtils.doubleDistortion(String.valueOf(quoteDayData.getPreclose())), data.getDecimalplace()));
             }
 
-            yesCloseRightData.setColorType("1");
-
             if (quoteDayData.getLast() != 0 && quoteDayData.getPreclose() != 0) {
                 String textApplies = "";
                 String textUpDown = NumberUtils.roundNum(NumberUtils.doubleDistortion(String.valueOf((quoteDayData.getPrice() - quoteDayData.getPresettle()))), 2);//涨跌

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

@@ -191,32 +191,6 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
                 amplitudeData.setValue("--");
             }
 
-            if (quoteDayData.getPrice() != 0 && quoteDayData.getPresettle() != 0) {
-                String textApplies = "";
-                String textUpDown = NumberUtils.roundNum(NumberUtils.doubleDistortion(String.valueOf((quoteDayData.getPrice() - quoteDayData.getPresettle()))), 2);//涨跌
-                if (quoteDayData.getPresettle() == 0) {
-                    textApplies = "--";
-                } else {
-                    textApplies = NumberUtils.roundNum(String.valueOf((((quoteDayData.getPrice() - quoteDayData.getPresettle()) / quoteDayData.getPresettle()) * 100)), 2);//涨跌幅
-                }
-                riseFallData.setValue(textUpDown);
-                appliesData.setValue(textApplies + "%");
-                if (Double.valueOf(textUpDown) > 0) {
-                    riseFallData.setColorType("3");
-                    appliesData.setColorType("3");
-                } else if (Double.valueOf(textUpDown) < 0) {
-                    riseFallData.setColorType("2");
-                    appliesData.setColorType("2");
-                } else {
-                    riseFallData.setColorType("1");
-                    appliesData.setColorType("1");
-                }
-            } else {
-                appliesData.setValue("--");
-                appliesData.setColorType("1");
-                riseFallData.setValue("--");
-                riseFallData.setColorType("1");
-            }
             QHjRightData openPriceData = new QHjRightData();//开盘价
             if (quoteDayData.getOpened() == 0.0){
                 openPriceData.setValue("--");
@@ -224,7 +198,7 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
                 openPriceData.setValue(NumberUtils.roundNum(quoteDayData.getOpened(),2));
             }
 
-            openPriceData.setColorType("3");
+
 
             //最高价
             QHjRightData highPriceData = new QHjRightData();
@@ -233,7 +207,7 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
             }else {
                 highPriceData.setValue(NumberUtils.roundNum(quoteDayData.getHighest(),2));
             }
-            highPriceData.setColorType("3");
+
 
             //最低价
             QHjRightData lowesPriceData = new QHjRightData();
@@ -242,11 +216,11 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
             }else {
                 lowesPriceData.setValue(NumberUtils.roundNum(quoteDayData.getLowest(),2));
             }
-            lowesPriceData.setColorType("2");
+
 
             //结算价-实时结算价
             QHjRightData settlementData = new QHjRightData();
-            settlementData.setColorType("1");
+
             if (quoteDayData.getSettle() != 0){
                 settlementData.setValue(NumberUtils.roundNum(quoteDayData.getSettle(),2));
             }else {
@@ -255,13 +229,56 @@ public class TransferSwapsAdapter extends RecyclerView.Adapter<TransferSwapsAdap
 
             //昨结算价
             QHjRightData preSettlementData = new QHjRightData();
-            preSettlementData.setColorType("1");
+
             if (quoteDayData.getPresettle() != 0){
                 preSettlementData.setValue(NumberUtils.roundNum(quoteDayData.getPresettle(),2));
             }else {
                 preSettlementData.setValue("--");
             }
 
+            if (quoteDayData.getPrice() != 0 && quoteDayData.getPresettle() != 0) {
+                String textApplies = "";
+                String textUpDown = NumberUtils.roundNum(NumberUtils.doubleDistortion(String.valueOf((quoteDayData.getPrice() - quoteDayData.getPresettle()))), 2);//涨跌
+                if (quoteDayData.getPresettle() == 0) {
+                    textApplies = "--";
+                } else {
+                    textApplies = NumberUtils.roundNum(String.valueOf((((quoteDayData.getPrice() - quoteDayData.getPresettle()) / quoteDayData.getPresettle()) * 100)), 2);//涨跌幅
+                }
+                riseFallData.setValue(textUpDown);
+                appliesData.setValue(textApplies + "%");
+                if (Double.valueOf(textUpDown) > 0) {
+                    riseFallData.setColorType("3");
+                    appliesData.setColorType("3");
+                    openPriceData.setColorType("3");
+                    highPriceData.setColorType("3");
+                    lowesPriceData.setColorType("3");
+                    settlementData.setColorType("3");
+                    preSettlementData.setColorType("3");
+                } else if (Double.valueOf(textUpDown) < 0) {
+                    riseFallData.setColorType("2");
+                    appliesData.setColorType("2");
+                    openPriceData.setColorType("2");
+                    highPriceData.setColorType("2");
+                    lowesPriceData.setColorType("2");
+                    settlementData.setColorType("2");
+                    preSettlementData.setColorType("2");
+                } else {
+                    riseFallData.setColorType("1");
+                    appliesData.setColorType("1");
+                    openPriceData.setColorType("1");
+                    highPriceData.setColorType("1");
+                    lowesPriceData.setColorType("1");
+                    settlementData.setColorType("1");
+                    preSettlementData.setColorType("1");
+                }
+            } else {
+                appliesData.setValue("--");
+                appliesData.setColorType("1");
+                riseFallData.setValue("--");
+                riseFallData.setColorType("1");
+            }
+
+
             rightData.add(newPriceData);//当前价
             rightData.add(riseFallData);//涨跌
             rightData.add(appliesData);//涨跌幅

+ 14 - 0
RMA/app/src/main/res/layout/layout_item_qhj_top_scroll.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="80dp"
+    android:layout_height="40dp"
+    android:orientation="vertical">
+
+    <TextView
+        android:textSize="12sp"
+        android:gravity="center"
+        android:id="@+id/tv_right_scroll"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:textColor="#AAAAAA" />
+</LinearLayout>

BIN
RMA/app/src/main/res/mipmap-xhdpi/hnst_dqdd_icon.png