Ver código fonte

风险管理7月31日提交代码-liu.bolan-华南顺通

Liu.bolan 4 anos atrás
pai
commit
37dafe5d5c
58 arquivos alterados com 3093 adições e 847 exclusões
  1. 8 0
      RMA/app/build.gradle
  2. 6 0
      RMA/app/src/main/AndroidManifest.xml
  3. 38 25
      RMA/app/src/main/java/cn/muchinfo/rma/business/account/AccountManager.kt
  4. 30 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/warehouse/WarehouseManager.kt
  5. 11 10
      RMA/app/src/main/java/cn/muchinfo/rma/business/warehouse/adapter/WarehouseAdapter.kt
  6. 97 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/FaProductDetailData.kt
  7. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/HnstWrPositionData.kt
  8. 4 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/OrderQuoteData.kt
  9. 50 50
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  10. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/dialog/Dialog.kt
  11. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  12. 19 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysFragment.kt
  13. 67 132
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainFragment.kt
  14. 10 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainViewmodel.kt
  15. 433 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/account/RydzAccountActivity.kt
  16. 64 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/account/RydzAccountViewModel.kt
  17. 79 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/account/RydzMoneyFlowingVIewHolder.kt
  18. 45 11
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/BookingWarehouseActivity.kt
  19. 63 8
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/BookingWarehouseViewModel.kt
  20. 206 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/adapter/BookingAreCancelContentAdapter.java
  21. 44 8
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/SpotWareHouseActivity.kt
  22. 74 16
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/SpotWareHouseViewModel.kt
  23. 12 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/AreCancelContentAdapter.java
  24. 7 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/DetailsWarehouseContentAdapter.java
  25. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/SpecifyDealContentAdapter.java
  26. 12 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/SpotWarehouseContentAdapter.java
  27. 174 70
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedActivity.kt
  28. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedViewModel.kt
  29. 434 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/pickup/PickUpGoodsActivity.kt
  30. 77 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/pickup/PickUpGoodsViewModel.kt
  31. 8 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeMenuUtils.kt
  32. 8 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/NewHomeFragment.kt
  33. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/main/SeaKingMainFragment.kt
  34. 29 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessBuyHallViewHolder.kt
  35. 348 169
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallActivity.kt
  36. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallDetailsActivity.kt
  37. 42 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallViewModel.kt
  38. 28 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessSellHallViewHolder.kt
  39. 149 64
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/FloatListedDialog.kt
  40. 264 141
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/OneListedDialog.kt
  41. 55 24
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/SelectFincningDialog.kt
  42. 43 31
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseReceiptFragment.kt
  43. 10 9
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseReceiptViewModel.kt
  44. 16 38
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/floata/FloatPriceAdapter.java
  45. BIN
      RMA/app/src/main/res/drawable/hnxt_seekba_1.png
  46. 12 0
      RMA/app/src/main/res/drawable/seekbar_thumb.xml
  47. 1 2
      RMA/app/src/main/res/layout/layout_item_hnst_content.xml
  48. BIN
      RMA/app/src/main/res/mipmap-hdpi/ic_launcher.png
  49. BIN
      RMA/app/src/main/res/mipmap-mdpi/ic_launcher.png
  50. BIN
      RMA/app/src/main/res/mipmap-xhdpi/hnst_seekbar.png
  51. BIN
      RMA/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  52. BIN
      RMA/app/src/main/res/mipmap-xhdpi/img_start.png
  53. BIN
      RMA/app/src/main/res/mipmap-xhdpi/rma_login_logo.png
  54. BIN
      RMA/app/src/main/res/mipmap-xhdpi/rydz_close_icon.png
  55. BIN
      RMA/app/src/main/res/mipmap-xhdpi/yrdz_contract.png
  56. BIN
      RMA/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  57. BIN
      RMA/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  58. 5 0
      RMA/app/src/main/res/values/colors.xml

+ 8 - 0
RMA/app/build.gradle

@@ -49,6 +49,14 @@ android {
             resValue "string","app_name","千海金"
             manifestPlaceholders = [app_icon : "@mipmap/ic_launcher"]
         }
+
+        // app3
+        app3 {
+            // 解释同app1
+            applicationId "cn.muchinfo.yrdz"
+            resValue "string","app_name","云融大宗"
+            manifestPlaceholders = [app_icon : "@mipmap/ic_launcher"]
+        }
     }
 
     buildTypes {

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

@@ -386,6 +386,12 @@
             android:screenOrientation="portrait"
             android:windowSoftInputMode="adjustPan"/>
 
+        <activity android:name=".view.base.hnstmain.spotwarehouse.pickup.PickUpGoodsActivity"
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="adjustPan"/>
+
+        <activity android:name=".view.base.hnstmain.account.RydzAccountActivity"/>
+
     </application>
 
 </manifest>

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

@@ -88,15 +88,15 @@ class AccountManager {
         loginID: String,
         password: String,
         byteArray: ByteArray,
-        callback: (isCompleted: Boolean, err: Error?,rsp :SystemMI1.LoginRsp?) -> Unit
+        callback: (isCompleted: Boolean, err: Error?, rsp: SystemMI1.LoginRsp?) -> Unit
     ) {
 
         val app = MyApplication.getInstance().guard {
-            callback(false, Error("Application未初始化"),null)
+            callback(false, Error("Application未初始化"), null)
             return
         }
         val tradeSocketManager = app.tradeSocketManager.guard {
-            callback(false, Error("交易链路未初始化"),null)
+            callback(false, Error("交易链路未初始化"), null)
             return
         }
 
@@ -115,18 +115,18 @@ class AccountManager {
                                 // 登录成功
                                 thenLogined(rst.third!!)
                             }
-                            callback(rst.first, rst.second,rst.third)
+                            callback(rst.first, rst.second, rst.third)
                         }
 
                         override fun onFail(err: java.lang.Error?) {
                             // 发送数据失败
-                            callback(false, err,null)
+                            callback(false, err, null)
                         }
                     })
             }
 
             override fun onFail(err: java.lang.Error?) {
-                callback(false, Error("连接交易服务失败"),null)
+                callback(false, Error("连接交易服务失败"), null)
             }
         })
     }
@@ -146,7 +146,7 @@ class AccountManager {
         // 记录相关登录信息
         GlobalDataCollection.instance?.loginRsp = loginRsp
 
-        SPUtils.getInstance().put(Constant.token,loginRsp.token)
+        SPUtils.getInstance().put(Constant.token, loginRsp.token)
 
         // 成功后通知网络开始发送心跳
         tradeSocketManager.startBeatTime()
@@ -259,7 +259,7 @@ class AccountManager {
             type = "1",
             callback = object : ResponseCallback<BaseResult<LoginQueryData>>() {
                 override fun onError(call: Call?, e: Exception?, id: Int) {
-                    LogUtils.eTag("dasdasdadas",e.toString())
+                    LogUtils.eTag("dasdasdadas", e.toString())
                     callBack(false, Error(e?.message))
                 }
 
@@ -426,7 +426,11 @@ class AccountManager {
                 it.code == "client_spotcontract" ||
                 it.code == "client_accountmanage" ||
                 it.code == "client_deliverygoods" ||
-                it.code == "client_customer"
+                it.code == "client_customer" ||
+                it.code == "client_mobile_hnstxhcx" ||
+                it.code == "client_mobile_hnsthycx" ||
+                it.code == "client_mobile_hnstlygl" ||
+                it.code == "client_mobile_hnstcztx"
             ) {
                 newList.add(it)
             }
@@ -957,11 +961,11 @@ class AccountManager {
      * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
      */
     fun QHJCustomerSignStatusOperateReq(
-        nodetype : Int,
-        goodsid : Long,
-        agreementids : List<Long>,
+        nodetype: Int,
+        goodsid: Long,
+        agreementids: List<Long>,
         callback: (isCompleted: Boolean, err: Error?) -> Unit
-    ){
+    ) {
         val tradeSocketManager = MyApplication.getInstance()?.tradeSocketManager.guard {
             callback(false, Error("交易链路未初始化"))
             return
@@ -996,13 +1000,16 @@ class AccountManager {
     fun queryUserNodeCfgAndStatusGetForUrl(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<UserNodeCfgAndStatusData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().queryGetForUrl(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/QhjSys/QueryUserNodeCfgAndStatus",
             params = params,
             callback = object : ResponseCallback<BaseResult<List<UserNodeCfgAndStatusData>>>() {
-                override fun onResponse(response: BaseResult<List<UserNodeCfgAndStatusData>>?, id: Int) {
+                override fun onResponse(
+                    response: BaseResult<List<UserNodeCfgAndStatusData>>?,
+                    id: Int
+                ) {
                     responseBack(true, response?.data, null)
                 }
 
@@ -1022,14 +1029,17 @@ class AccountManager {
     fun queryUserNodeCfgAndStatus(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<UserNodeCfgAndStatusData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/QhjSys/QueryUserNodeCfgAndStatus",
             params = params,
             type = "1",
             callback = object : ResponseCallback<BaseResult<List<UserNodeCfgAndStatusData>>>() {
-                override fun onResponse(response: BaseResult<List<UserNodeCfgAndStatusData>>?, id: Int) {
+                override fun onResponse(
+                    response: BaseResult<List<UserNodeCfgAndStatusData>>?,
+                    id: Int
+                ) {
                     responseBack(true, response?.data, null)
                 }
 
@@ -1049,14 +1059,17 @@ class AccountManager {
     fun queryAreaFinanceConfig(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<AreaFinanceConfigData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/Qhj/QueryAreaFinanceConfig",
             params = params,
             type = "1",
             callback = object : ResponseCallback<BaseResult<List<AreaFinanceConfigData>>>() {
-                override fun onResponse(response: BaseResult<List<AreaFinanceConfigData>>?, id: Int) {
+                override fun onResponse(
+                    response: BaseResult<List<AreaFinanceConfigData>>?,
+                    id: Int
+                ) {
                     responseBack(true, response?.data, null)
                 }
 
@@ -1076,7 +1089,7 @@ class AccountManager {
     fun queryBrokerRewardLog(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<BrokerRewardLogData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/Qhj/QueryBrokerRewardLog",
@@ -1103,7 +1116,7 @@ class AccountManager {
     fun queryMyTeam(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<MyTeamData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/Qhj/QueryMyTeam",
@@ -1130,7 +1143,7 @@ class AccountManager {
     fun queryMyTeamOrder(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<MyTeamOrderData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/Qhj/QueryMyTeamOrder",
@@ -1157,7 +1170,7 @@ class AccountManager {
     fun queryScoreLog(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<ScoreLogData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/Qhj/QueryScoreLog",
@@ -1184,7 +1197,7 @@ class AccountManager {
     fun queryBrokerApply(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<BrokerApplyData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/Qhj/QueryBrokerApply",
@@ -1211,7 +1224,7 @@ class AccountManager {
     fun queryRootUserAccount(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<RootUserAccountData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
             URL = SPUtils.getInstance()
                 .getString(Constant.goCommonSearchUrl) + "/Ermcp3/QueryRootUserAccount",

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

@@ -20,6 +20,32 @@ import java.lang.Exception
 class WarehouseManager {
 
     /**
+     * 查询融资产品列表
+     * @param params Map<String, String>
+     * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<BusinessData>?, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryFaProductDetail(
+        params: Map<String, String>,
+        responseBack: (isSuccess: Boolean, respData: List<FaProductDetailData>?, error: Error?) -> Unit
+    ) {
+        MyOkHttpUtils().query(
+            URL = SPUtils.getInstance()
+                .getString(Constant.goCommonSearchUrl) + "/WrTrade2/QueryFaProductDetail",
+            params = params,
+            type = "1",
+            callback = object : ResponseCallback<BaseResult<List<FaProductDetailData>>>() {
+                override fun onResponse(response: BaseResult<List<FaProductDetailData>>?, id: Int) {
+                    responseBack(true, response?.data, null)
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    responseBack(false, null, Error(e?.message))
+                }
+            }
+        )
+    }
+
+    /**
      * 查询仓单商品信息
      * @param params Map<String, String>
      * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<BusinessData>?, [@kotlin.ParameterName] Error?, Unit>
@@ -477,7 +503,7 @@ class WarehouseManager {
         ApplyID: Long = 0,//申请ID
         CanPart: Int = 0,//是否允许部份摘牌0:不允许;1:允许
 //        MatchAccIDsString : List<String> = arrayListOf(),//仓单贸易对手用户ID集合(指定对手时填写)
-//        DeliveryMonth : String = "",//交收月
+        DeliveryMonth : String = "",//交收月
         HasWr: Int = 0,//是否有仓单-0:没有仓单 1:有仓单
         WRStandardID: Int = 0,//现货品种ID
         callback: (isCompleted: Boolean, err: Error?) -> Unit
@@ -513,6 +539,7 @@ class WarehouseManager {
             Remark,
             ApplyID,
             CanPart,
+            DeliveryMonth,
             HasWr,
             WRStandardID
         )
@@ -1017,6 +1044,7 @@ class WarehouseManager {
      * 仓库出库请求
      */
     fun wROutApplyReq(
+        Marketid : Long = 0,
         WRStandardID: Long = 0,//仓单标准ID
         WarehouseID: Long = 0,//仓库ID
         UserID: Long = 0,//申请人ID
@@ -1040,6 +1068,7 @@ class WarehouseManager {
             return
         }
         val reqPacket = WarehouseAdapter.getWROutApplyReqInfo(
+            Marketid,
             WRStandardID,
             WarehouseID,
             UserID,

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

@@ -18,6 +18,7 @@ object WarehouseAdapter {
      * 仓单出库申请
      */
     fun getWROutApplyReqInfo(
+        Marketid : Long = 0,
         WRStandardID : Long = 0,//仓单标准ID
         WarehouseID : Long = 0,//仓库ID
         UserID : Long = 0,//申请人ID
@@ -44,16 +45,14 @@ object WarehouseAdapter {
                 loginInfo.userID,
                 AccountID,
                 0,
-                0
+                Marketid.toInt()
             )
         )
         builder.userID = UserID
-        if (WRStandardID != 0L){
-            builder.wrStandardID
-        }
-        if (WarehouseID != 0L){
-            builder.warehouseID = WarehouseID
-        }
+        builder.wrStandardID
+        builder.warehouseID = WarehouseID
+        builder.userID = loginInfo.userID.toLong()
+        builder.accountID = AccountID
         builder.mobile = Mobile
         builder.appointmentDate = AppointmentDate
         builder.appointmentModel = AppointmentModel
@@ -64,7 +63,7 @@ object WarehouseAdapter {
         builder.contactName = ContactName
         builder.contactNum = ContactNum
         builder.appointmentRemark = AppointmentRemark
-        builder.creatorID = CreatorID
+        builder.creatorID = loginInfo.userID.toLong()
         builder.addWROutInDetails(WROutInDetails)
         val arrayOutputStream = ByteArrayOutputStream()
         builder.build().writeTo(arrayOutputStream)
@@ -211,7 +210,7 @@ object WarehouseAdapter {
         ApplyID : Long = 0,//申请ID
         CanPart : Int = 0,//是否允许部份摘牌0:不允许;1:允许
 //        MatchAccIDsString : List<String> = arrayListOf(),//仓单贸易对手用户ID集合(指定对手时填写)
-//        DeliveryMonth : String = "",//交收月
+        DeliveryMonth : String = "",//交收月
         HasWr : Int = 0,//是否有仓单-0:没有仓单 1:有仓单
         WRStandardID : Int = 0//现货品种ID
 //        FactoryItems : WarehouseTradeMI1.DGFactoryItems//要素类型明细集合(没有仓单要素ID填写)
@@ -268,6 +267,9 @@ object WarehouseAdapter {
         builder.canPart = CanPart
         builder.wrStandardID = WRStandardID
         builder.hasWr = HasWr
+        if (DeliveryMonth.isNotEmpty()){
+            builder.deliveryMonth = DeliveryMonth
+        }
 
         val arrayOutputStream = ByteArrayOutputStream()
         builder.build().writeTo(arrayOutputStream)
@@ -487,7 +489,6 @@ object WarehouseAdapter {
         builder.oldWRTradeOrderID = OldWRTradeOrderID
         builder.orderSrc = OrderSrc
         builder.buyOrSell = BuyOrSell
-        builder.wrid = WRID
         builder.clientSerialNo = UUID.randomUUID().toString().replace("-", "")//撤单时传的唯一标识
         builder.clientOrderTime = TimeUtils.getNowString()
         builder.clientType = 3 // 客户端类型: 1客户端  3 手机端 android

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

@@ -0,0 +1,97 @@
+package cn.muchinfo.rma.global.data
+
+import android.os.Parcel
+import android.os.Parcelable
+import com.google.gson.annotations.SerializedName
+
+/**
+ * 融资产品列表
+ */
+data class FaProductDetailData(
+    @SerializedName("accountid")
+    val accountid : String? = "",//资金账号
+    @SerializedName("areauserid")
+    val areauserid : String? = "",//金融机构ID
+    @SerializedName("financingdays")
+    val financingdays : String? = "",//天数(天)
+    @SerializedName("interestminlen")
+    val interestminlen : String? = "",//最小起息天数
+    @SerializedName("interestrate")
+    val interestrate : String? = "",//利率
+    @SerializedName("interestratemode")
+    val interestratemode : String? = "",//利率方式 - 1:年利率 2:日利率
+    @SerializedName("interestsettlemode")
+    val interestsettlemode : String? = "",//结息方式 - 1:按日结息 3:按月结息
+    @SerializedName("interestsettlevalue")
+    val interestsettlevalue : String? = "",//结息方式值
+    @SerializedName("isautoloan")
+    val isautoloan : String? = "",//是否自动放款 0-手动 1-自动 (当为自动放款时,显示"放款快")
+    @SerializedName("marginratio")
+    val marginratio : String? = "",//保证金比率质押率 - [仓单质押]
+    @SerializedName("productdetailid")
+    val productdetailid : String? = "",//产品组合ID(SEQ_FINANCEAREAPRODUCTDETAIL)
+    @SerializedName("productid")
+    val productid : String? = "",//金融产品ID
+    @SerializedName("productname")
+    val productname : String? = "",//产品名称
+    @SerializedName("updatetime")
+    val updatetime : String? = "",//更新时间
+    @SerializedName("username")
+    val username : String? = "",//融出方
+    @SerializedName("wrfactortypeid")
+    val wrfactortypeid : String? = ""//仓单要素ID
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(accountid)
+        parcel.writeString(areauserid)
+        parcel.writeString(financingdays)
+        parcel.writeString(interestminlen)
+        parcel.writeString(interestrate)
+        parcel.writeString(interestratemode)
+        parcel.writeString(interestsettlemode)
+        parcel.writeString(interestsettlevalue)
+        parcel.writeString(isautoloan)
+        parcel.writeString(marginratio)
+        parcel.writeString(productdetailid)
+        parcel.writeString(productid)
+        parcel.writeString(productname)
+        parcel.writeString(updatetime)
+        parcel.writeString(username)
+        parcel.writeString(wrfactortypeid)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<FaProductDetailData> {
+        override fun createFromParcel(parcel: Parcel): FaProductDetailData {
+            return FaProductDetailData(parcel)
+        }
+
+        override fun newArray(size: Int): Array<FaProductDetailData?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}

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

@@ -51,7 +51,7 @@ data class HnstWrPositionData(
     @SerializedName("warehousename")
     val warehousename : String? = "",//仓库名称
     @SerializedName("wrfactortypeid")
-    val wrfactortypeid : String? = "",//仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
+    val wrfactortypeid : String? = "0",//仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
     @SerializedName("wrfactortypename")
     val wrfactortypename : String? = "",//仓单要素类型名称(选择项要素的名称合并显示,逗号分隔)
     @SerializedName("wrpositionid")

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

@@ -37,6 +37,8 @@ data class OrderQuoteData(
     val deliverymonth : String? = "",//交收月
     @SerializedName("buyqty")
     val buyqty : String? = "",//买量
+    @SerializedName("enumdicname")
+    val enumdicname : String? = "",//单位
     @SerializedName("deliverygoodscode")
     val deliverygoodscode : String? = "",//品种代码
     @SerializedName("deliverygoodsid")
@@ -93,6 +95,7 @@ data class OrderQuoteData(
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
+        parcel.readString(),
         parcel.readString()
     ) {
     }
@@ -102,6 +105,7 @@ data class OrderQuoteData(
         parcel.writeString(buypricemove)
         parcel.writeString(deliverymonth)
         parcel.writeString(buyqty)
+        parcel.writeString(enumdicname)
         parcel.writeString(deliverygoodscode)
         parcel.writeString(deliverygoodsid)
         parcel.writeString(deliverygoodsname)

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

@@ -134,62 +134,62 @@ class MainActivity : BaseActivity<MainViewModel>() {
         newNormalIcon.add(R.mipmap.main_tab_1)
         newSelectIcon.add(R.mipmap.rma_select_main_tab_1)
 
-//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_po") == true) {
-//            newFragments.add(procurementFragment)
-//            newTabText.add("采购")
-//            newNormalIcon.add(R.mipmap.main_tab_2)
-//            newSelectIcon.add(R.mipmap.rma_select_main_tab_2)
-//        }
-//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_so") == true) {
-//            newFragments.add(saleFragment)
-//            newTabText.add("销售")
-//            newNormalIcon.add(R.mipmap.main_tab_3)
-//            newSelectIcon.add(R.mipmap.rma_select_main_tab_3)
-//        }
-//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_futures") == true) {
-//            newFragments.add(futureFragment)
-//            newTabText.add("期货")
-//            newNormalIcon.add(R.mipmap.main_tab_4)
-//            newSelectIcon.add(R.mipmap.rma_select_main_tab_4)
-//        }
-//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_exposure") == true) {
-//            newFragments.add(exposureFragment)
-//            newTabText.add("敞口")
-//            newNormalIcon.add(R.mipmap.main_tab_5)
-//            newSelectIcon.add(R.mipmap.rma_select_main_tab_5)
-//        }
-//
-//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_qhjbjb") == true) {
-//            //前海金铂金宝
-//            newFragments.add(platinumTreasureFragment)
-//            newTabText.add("铂金宝")
-//            newNormalIcon.add(R.mipmap.qhj_bjb_tab_normal)
-//            newSelectIcon.add(R.mipmap.qhj_bjb_tab_select)
-//        }
-//
-//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_qhjsphg") == true) {
-//            //前海金饰品回收
-//            newFragments.add(recyclingFragment)
-//            newTabText.add("饰品回收")
-//            newNormalIcon.add(R.mipmap.qhj_sphg_tab_normal)
-//            newSelectIcon.add(R.mipmap.qhj_sphg_tab_select)
-//        }
-//
-//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_qhjmine") == true) {
-//            //前海金我的页面
-//            newFragments.add(seaKingMainFragment)
-//            newTabText.add("我的")
-//            newNormalIcon.add(R.mipmap.qhj_main_tab_normal)
-//            newSelectIcon.add(R.mipmap.qhj_main_tab_select)
-//        }
+        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_po") == true) {
+            newFragments.add(procurementFragment)
+            newTabText.add("采购")
+            newNormalIcon.add(R.mipmap.main_tab_2)
+            newSelectIcon.add(R.mipmap.rma_select_main_tab_2)
+        }
+        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_so") == true) {
+            newFragments.add(saleFragment)
+            newTabText.add("销售")
+            newNormalIcon.add(R.mipmap.main_tab_3)
+            newSelectIcon.add(R.mipmap.rma_select_main_tab_3)
+        }
+        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_futures") == true) {
+            newFragments.add(futureFragment)
+            newTabText.add("期货")
+            newNormalIcon.add(R.mipmap.main_tab_4)
+            newSelectIcon.add(R.mipmap.rma_select_main_tab_4)
+        }
+        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_exposure") == true) {
+            newFragments.add(exposureFragment)
+            newTabText.add("敞口")
+            newNormalIcon.add(R.mipmap.main_tab_5)
+            newSelectIcon.add(R.mipmap.rma_select_main_tab_5)
+        }
 
-//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnstcdmy") == true) {
+        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_qhjbjb") == true) {
+            //前海金铂金宝
+            newFragments.add(platinumTreasureFragment)
+            newTabText.add("铂金宝")
+            newNormalIcon.add(R.mipmap.qhj_bjb_tab_normal)
+            newSelectIcon.add(R.mipmap.qhj_bjb_tab_select)
+        }
+
+        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_qhjsphg") == true) {
+            //前海金饰品回收
+            newFragments.add(recyclingFragment)
+            newTabText.add("饰品回收")
+            newNormalIcon.add(R.mipmap.qhj_sphg_tab_normal)
+            newSelectIcon.add(R.mipmap.qhj_sphg_tab_select)
+        }
+
+        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_qhjmine") == true) {
+            //前海金我的页面
+            newFragments.add(seaKingMainFragment)
+            newTabText.add("我的")
+            newNormalIcon.add(R.mipmap.qhj_main_tab_normal)
+            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 (GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnstcdys") == true) {
             //华南顺通 仓单预售

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

@@ -288,7 +288,7 @@ fun AppCompatActivity.creatHnstSpotDetailSheetDialog(
         .setTitle(titleStr)
         .setAddCancelBtn(true)
     selectList.forEach {
-        builder.addItem(it.deliverygoodsname.toString())
+        builder.addItem(it.ladingbillid.toString() + "(" + it.enableqty + it.enumdicname + ")")
     }
     builder.setOnSheetItemClickListener { dialog, itemView, position, tag ->
         select?.invoke(selectList.get(position))

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

@@ -25,7 +25,8 @@ object Constant {
 //    const val baseurl = "http://192.168.31.171:8080/cfg?key=test_171" // 邓工 签约解约环境
 //    const val baseurl = "http://192.168.21.71:8280/cfg?key=mtp_20"
 
-    const val baseurl = "http://192.168.31.118:8080/cfg?key=test_118"//黄老板 华南顺通
+//    const val baseurl = "http://192.168.31.118:8080/cfg?key=test_118"//黄老板 华南顺通 调试
+        const val baseurl = "http://192.168.31.136:8080/cfg?key=test_136"//黄老板 华南顺通
 
 
     /**

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

@@ -19,9 +19,12 @@ 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 io.reactivex.Flowable
+import io.reactivex.disposables.Disposable
 import org.jetbrains.anko.*
 import org.jetbrains.anko.support.v4.UI
 import org.jetbrains.anko.support.v4.viewPager
+import java.util.concurrent.TimeUnit
 
 /**
  * 华南顺通 仓单预售页面
@@ -47,6 +50,8 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
     //暂存的页面组
     private val uiList : ArrayList<_FrameLayout> = arrayListOf()
 
+    private lateinit var mdDisposable : Disposable
+
     fun initMenuData(){
 
         newTabsArray.add("一口价")
@@ -86,11 +91,19 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
         container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View? {
-
+        initMenuData()
+        mdDisposable = Flowable.interval(5, 10, TimeUnit.SECONDS)
+            .doOnNext {
+                if (selectedTabIndex == 0){
+                    viewModel.queryOneOrderQuote()
+                }else{
+                    viewModel.queryFloatOrderQuote()
+                }
+            }.subscribe()
         return UI {
             verticalLayout {
                 linearLayout {
-                    background = resources.getDrawable(R.color.main_title_bg_color)
+                    background = resources.getDrawable(R.color.white)
 
                     view {
 
@@ -98,7 +111,7 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
 
                     tabSegment {
                         segment = this
-                        background = resources.getDrawable(R.color.segtabment_bg_color)
+                        background = resources.getDrawable(R.color.white)
                         addOnTabSelectedListener(object :
                             QMUITabSegment.OnTabSelectedListener {
                             override fun onDoubleTap(index: Int) {}
@@ -116,7 +129,7 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
                             )
                         )
                         setDefaultTextSize(ConvertUtils.sp2px(16f), ConvertUtils.sp2px(16f))
-                    }.lparams(matchParent, autoSize(100))
+                    }.lparams(0, autoSize(100),1f)
 
                     view {
 
@@ -136,7 +149,7 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
                 }.lparams(matchParent, matchParent)
 
                 segment.setupWithViewPager(viewPager)
-                segment.selectTab(1)
+                segment.selectTab(0)
             }
         }.view
 
@@ -380,7 +393,7 @@ class YSFloatingPriceUI(private val fragment : Fragment, private val viewModel:
 //                                }
 //                                topAdapter.setDatas(titleStringList)
 //                            }
-                        topAdapter.setDatas(arrayListOf("卖价","卖量","买价","买量","仓库"))
+                        topAdapter.setDatas(arrayListOf("卖基差","卖量","买基差","买量","期货合约","仓库","交收月"))
                     }
                 }.lparams(matchParent, matchParent)
             }.lparams(matchParent, autoSize(100))

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

@@ -64,7 +64,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>(){
     override fun onResume() {
         super.onResume()
         viewModel.getUserAccount()
-
+        viewModel.resetAccountData()
     }
 
     override fun onDestroy() {
@@ -77,8 +77,10 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>(){
     fun onMessageEvent(messageEvent : MessageEvent) {
         if (messageEvent.messageType == EventConstent.USERACCOUNTCHANGE){//接到通知更新当前的资金账号
             viewModel.getUserAccount()
+            viewModel.resetAccountData()
         }else if (messageEvent.messageType == EventConstent.FID_MoneyChangedNtf){//资金账号变化通知
             viewModel.getUserAccount()
+            viewModel.resetAccountData()
         }
     }
 
@@ -174,149 +176,82 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>(){
 
                         }.lparams(com.qmuiteam.qmui.kotlin.matchParent, autoSize(360))
 
-                        verticalLayout {
-                            linearLayout {
-                                gravity = Gravity.CENTER_VERTICAL
+                        linearLayout {
+                            verticalLayout {
+                                gravity = Gravity.LEFT
                                 textView {
-                                    text = "净资产(元)"
+                                    text = "金额"
                                     textSizeAuto = 29
-                                    textColorInt = R.color.rma_hint_text_color_ccc
-                                }.lparams(wrapContent, wrapContent) {
-                                    marginStart = autoSize(78)
-                                }
-                                imageView {
-                                    imageResource = R.mipmap.qhj_open_eye
-                                }.lparams(autoSize(38), autoSize(38)) {
-                                    marginStart = autoSize(32)
-                                }
-                            }.lparams(com.qmuiteam.qmui.kotlin.matchParent, autoSize(60))
-
-                            textView {
-                                /**
-                                 * 净资产=总市值-融资额+余额;
-                                 */
-                                viewModel.usedAccountData.bindOptional(context){
-                                    text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.valueOfposition?.minus(it.raisedAmount)?.plus(it.currentbalance).toString()),2)
+                                    textColorStr = "#A1B1C5"
+                                }.lparams(wrapContent, wrapContent){
+                                    marginStart = autoSize(36)
+                                    topMargin = autoSize(36)
                                 }
-                                textSizeAuto = 60
-                                textColorInt = R.color.rma_black_33
-                            }.lparams(wrapContent, wrapContent) {
-                                marginStart = autoSize(78)
-                                topMargin = autoSize(15)
-                            }
-
-                            linearLayout {
-                                //余额
-                                verticalLayout {
-                                    gravity = Gravity.CENTER_VERTICAL
-                                    textView {
-                                        text = "余额(元)"
-                                        textSizeAuto = 29
-                                        textColorInt = R.color.rma_hint_text_color_ccc
-                                    }.lparams(wrapContent, wrapContent) {
-                                        marginStart = autoSize(78)
-                                    }
-                                    textView {
-                                        /**
-                                         * 可用取期末余额
-                                         */
-                                        viewModel.usedAccountData.bindOptional(context) {
-                                            text = NumberUtils.roundNum(
-                                                NumberUtils.doubleDistortion(it?.currentbalance?.toString()),
-                                                2
-                                            )
-                                        }
-                                        textSizeAuto = 36
-                                        textColorInt = R.color.rma_green_color
-                                    }.lparams(wrapContent, wrapContent) {
-                                        marginStart = autoSize(78)
-                                    }
-                                }.lparams(0, autoSize(110), 1f)
-
-                                //持仓
-                                verticalLayout {
-                                    gravity = Gravity.CENTER_VERTICAL
-                                    textView {
-                                        text = "总市值(元)"
-                                        textSizeAuto = 29
-                                        textColorInt = R.color.rma_hint_text_color_ccc
-                                    }.lparams(wrapContent, wrapContent) {
-
-                                    }
-                                    textView {
-                                        viewModel.usedAccountData.bindOptional(context) {
-                                            text = NumberUtils.roundNum(
-                                                NumberUtils.doubleDistortion(it?.valueOfposition?.toString()),
-                                                2
-                                            )
-                                        }
-                                        textSizeAuto = 36
-                                        textColorInt = R.color.rma_red_color
-                                    }.lparams(wrapContent, wrapContent) {
 
+                                textView {
+                                    /**
+                                     * 金额=总市值-融资额+余额;
+                                     */
+                                    viewModel.usedAccountData.bindOptional(context){
+                                        text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.valueOfposition?.minus(it.raisedAmount)?.plus(it.currentbalance).toString()),2)
                                     }
-                                }.lparams(0, autoSize(110), 1f)
-
-                            }.lparams(com.qmuiteam.qmui.kotlin.matchParent, autoSize(110)) {
-                                topMargin = autoSize(20)
-                            }
+                                    textSizeAuto = 34
+                                    textColorStr = "#00C280"
+                                }.lparams(wrapContent, wrapContent){
+                                    marginStart = autoSize(36)
+                                    topMargin = autoSize(10)
+                                }
+                            }.lparams(0, autoSize(200),1f)
 
-                            linearLayout {
-                                linearLayout {
-                                    onThrottleFirstClick {
+                            verticalLayout {
+                                gravity = Gravity.LEFT
+                                textView {
+                                    text = "可用"
+                                    textSizeAuto = 29
+                                    textColorStr = "#A1B1C5"
+                                }.lparams(wrapContent, wrapContent){
+                                    topMargin = autoSize(36)
+                                }
 
-                                        if (GlobalDataCollection.instance?.bankAccountSignData?.accountcode.isNullOrEmpty()){
-                                            ToastUtils.showLong("请先添加提现账户信息")
-                                            return@onThrottleFirstClick
-                                        }
-                                        val intent = Intent()
-                                        intent.putExtra("selectindex",1)
-                                        intent.setClass(context, WithdrawalActivity::class.java)
-                                        ActivityUtils.startActivity(intent)
+                                textView {
+                                    /**
+                                     * 可用取期末余额
+                                     */
+                                    viewModel.usedAccountData.bindOptional(context) {
+                                        text = NumberUtils.roundNum(
+                                            NumberUtils.doubleDistortion(it?.currentbalance?.toString()),
+                                            2
+                                        )
                                     }
-                                    backgroundResource = R.mipmap.qhj_withdraw
-                                    gravity = Gravity.CENTER
-                                    textView {
-                                        text = "提现"
-                                        textColorInt = R.color.qhj_withdraw_color
-                                        textSizeAuto = 36
-                                    }.lparams(wrapContent, wrapContent)
-                                }.lparams(0, autoSize(122), 1f) {
-                                    marginStart = autoSize(78)
-                                    marginEnd = autoSize(36)
+                                    textSizeAuto = 34
+                                    textColorStr = "#FF1414"
+                                }.lparams(wrapContent, wrapContent){
+                                    topMargin = autoSize(10)
                                 }
+                            }.lparams(0, autoSize(200),1f)
 
-                                linearLayout {
-
-                                    onThrottleFirstClick {
-
-//                                        if (GlobalDataCollection.instance?.bankAccountSignData?.accountcode.isNullOrEmpty()){
-//                                            ToastUtils.showLong("请先添加提现账户信息")
-//                                            return@onThrottleFirstClick
-//                                        }
-                                        val intent = Intent()
-                                        intent.putExtra("selectindex",0)
-                                        intent.setClass(context, WithdrawalActivity::class.java)
-                                        ActivityUtils.startActivity(intent)
-                                    }
-                                    backgroundResource = R.drawable.qhj_main_blue_bg
-                                    gravity = Gravity.CENTER
-                                    textView {
-                                        gravity = Gravity.CENTER_HORIZONTAL
-                                        text = "充值"
-                                        textColorInt = R.color.white
-                                        textSizeAuto = 36
-                                    }.lparams(wrapContent, wrapContent)
-                                }.lparams(0, autoSize(84), 1f) {
-                                    marginStart = autoSize(36)
-                                    marginEnd = autoSize(78)
-                                    topMargin = autoSize(15)
+                            verticalLayout {
+                                gravity = Gravity.LEFT
+                                textView {
+                                    text = "合约市值"
+                                    textSizeAuto = 29
+                                    textColorStr = "#A1B1C5"
+                                }.lparams(wrapContent, wrapContent){
+                                    topMargin = autoSize(36)
                                 }
-                            }.lparams(com.qmuiteam.qmui.kotlin.matchParent, autoSize(100)) {
-                                topMargin = autoSize(25)
-                            }
 
-                        }.lparams(com.qmuiteam.qmui.kotlin.matchParent, autoSize(440))
+                                textView {
+                                    /**
+                                     * 合约市值
+                                     */
+                                    text = "--"
+                                    textSizeAuto = 34
+                                    textColorStr = "#FF1414"
+                                }.lparams(wrapContent, wrapContent){
+                                    topMargin = autoSize(10)
+                                }
+                            }.lparams(0, autoSize(200),1f)
+                        }.lparams(com.qmuiteam.qmui.kotlin.matchParent, autoSize(200))
 
                         view {
                             background = resources.getDrawable(R.color.rma_item_bg)

+ 10 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainViewmodel.kt

@@ -31,6 +31,16 @@ class HnstMainViewmodel : BaseViewModel(){
      */
     val usedAccountData : MutableLiveData<AccountData> = MutableLiveData()
 
+    //重新赋值资金账户
+    fun resetAccountData(){
+        val accountDataList = GlobalDataCollection.instance?.accountDataList
+        if (accountDataList.isNullOrEmpty().not()) {
+            val accountData = GlobalDataCollection.instance?.accountData
+            accountData?.clearData()
+            accountData?.setNormalData()
+            usedAccountData.postValue(accountData)
+        }
+    }
 
     /**
      * 获取用户账号信息

+ 433 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/account/RydzAccountActivity.kt

@@ -0,0 +1,433 @@
+package cn.muchinfo.rma.view.base.hnstmain.account
+
+import android.os.Bundle
+import android.view.Gravity
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.app.AppCompatActivity
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.AmountLogData
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.platinumtreasure.trade.MoneyFlowingVIewHolder
+import com.blankj.utilcode.util.ConvertUtils
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 华南顺通的资金页面
+ */
+class RydzAccountActivity : BaseActivity<RydzAccountViewModel>(){
+
+    lateinit var segment: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    private lateinit var viewPager: ViewPager
+
+    //资金信息
+    private val moneyInfoUI by lazy { MoneyInfoUI(this, viewModel) }
+
+    //资金流水
+    private val moneyFlowingUI by lazy { MoneyFlowingUI(this, viewModel) }
+
+    //viewpager的适配器
+    private var newPagerAdapter: PagerAdapter? = null
+
+    //tabSegment标题
+    private val newTabsArray: ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    private val uiList: ArrayList<_FrameLayout> = arrayListOf()
+
+    fun initDataTitle() {
+        newTabsArray.add("资金信息")
+        uiList.add(moneyInfoUI.root)
+        newTabsArray.add("资金流水")
+        uiList.add(moneyFlowingUI.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 onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            viewModel.initAccountData()
+            initDataTitle()
+            background = resources.getDrawable(R.color.white)
+            topBar {
+                commonLeftButton()
+                commonTitle {
+                    text = "资金"
+                }
+            }
+
+            tabSegment {
+                segment = this
+                background = resources.getDrawable(R.color.white)
+                addOnTabSelectedListener(object :
+                    QMUITabSegment.OnTabSelectedListener {
+                    override fun onDoubleTap(index: Int) {}
+                    override fun onTabReselected(index: Int) {}
+                    override fun onTabUnselected(index: Int) {}
+                    override fun onTabSelected(index: Int) {
+                        selectedTabIndex = index
+                    }
+                })
+                setIndicator(QMUITabIndicator(QMUIDisplayHelper.dp2px(context, 2), false, true))
+                setDefaultTextSize(ConvertUtils.sp2px(16f), ConvertUtils.sp2px(16f))
+            }.lparams(matchParent, autoSize(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(selectedTabIndex)
+
+        }
+    }
+
+}
+
+/**
+ * 资金信息
+ * @property activity PlatinumTradeActivity
+ * @property viewModel PlatinumTradeViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class MoneyInfoUI(private val activity: AppCompatActivity, private val viewModel: RydzAccountViewModel){
+
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    gravity = Gravity.LEFT
+                    text = "币种"
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_gray_color
+                }.lparams(autoSize(220), wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    viewModel.usedAccountData.bindOptional(context){
+
+                    }
+                    text = "RMB"
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+            }.lparams(matchParent, autoSize(100))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    gravity = Gravity.LEFT
+                    text = "净资产"
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_gray_color
+                }.lparams(autoSize(220), wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    /**
+                     * 净资产=总市值-融资额+余额;
+                     */
+                    viewModel.usedAccountData.bindOptional(context){
+                        text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.valueOfposition?.minus(it.raisedAmount)?.plus(it.currentbalance).toString()),2)
+                    }
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+            }.lparams(matchParent, autoSize(100))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    gravity = Gravity.LEFT
+                    text = "总市值"
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_gray_color
+                }.lparams(autoSize(220), wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    viewModel.usedAccountData.bindOptional(context){
+                        text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.valueOfposition?.toString()),2)
+                    }
+
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+            }.lparams(matchParent, autoSize(100))
+
+            itemView()
+
+            linearLayout {
+                if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.userinfotype == 1){
+                    visibility = View.GONE
+                }else{
+                    visibility = View.VISIBLE
+                }
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    gravity = Gravity.LEFT
+                    text = "融资额"
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_gray_color
+                }.lparams(autoSize(220), wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    viewModel.usedAccountData.bindOptional(context){
+                        text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.raisedAmount?.toString()),2)
+                    }
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+            }.lparams(matchParent, autoSize(100))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    gravity = Gravity.LEFT
+                    text = "余额"
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_gray_color
+                }.lparams(autoSize(220), wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    /**
+                     * 可用取期末余额
+                     */
+                    viewModel.usedAccountData.bindOptional(context){
+                        text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.currentbalance?.toString()),2)
+                    }
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+            }.lparams(matchParent, autoSize(100))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    gravity = Gravity.LEFT
+                    text = "可用金额"
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_gray_color
+                }.lparams(autoSize(220), wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    /**
+                     * 余额=可用+冻结;
+                     */
+                    viewModel.usedAccountData.bindOptional(context){
+                        val freezeAmount = it?.freezemargin?.plus(it.otherfreezemargin)?.plus(it.freezecharge)?.plus(it.outamountfreeze)//冻结金额
+                        val balance = it?.currentbalance?.minus(freezeAmount ?: 0.0)//
+                        text = NumberUtils.roundNum(NumberUtils.doubleDistortion(balance?.toString()),2)
+                    }
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+            }.lparams(matchParent, autoSize(100))
+
+            itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    gravity = Gravity.LEFT
+                    text = "冻结金额"
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_gray_color
+                }.lparams(autoSize(220), wrapContent){
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    /**
+                     * 冻结=冻结保证金 + 其他冻结保证金 + 手续费冻结 + 出金冻结。
+                     */
+                    viewModel.usedAccountData.bindOptional(context){
+                        val freezeAmount = it?.freezemargin?.plus(it.otherfreezemargin)?.plus(it.freezecharge)?.plus(it.outamountfreeze)
+                        text = NumberUtils.roundNum(NumberUtils.doubleDistortion(freezeAmount.toString()),2)
+                    }
+                    textSizeAuto = 36
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+            }.lparams(matchParent, autoSize(100))
+
+            itemView()
+        }
+    }
+
+}
+
+/**
+ * 资金流水
+ * @property activity PlatinumTradeActivity
+ * @property viewModel PlatinumTradeViewModel
+ * @property root _FrameLayout
+ * @constructor
+ */
+class MoneyFlowingUI(private val activity: AppCompatActivity, private val viewModel: RydzAccountViewModel){
+
+
+    // 下拉刷新
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    /**
+     * 交易下持仓
+     */
+    private val moneyFlowingAdapter: BaseAdapter<AmountLogData, RydzMoneyFlowingVIewHolder> =
+        BaseAdapter { _, _ ->
+            RydzMoneyFlowingVIewHolder(
+                activity,
+                viewModel
+            )
+        }
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            viewModel.queryAmountLog()
+            linearLayout {
+                verticalLayout {
+                    gravity = Gravity.LEFT
+                    textView {
+                        text = "时间"
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_gray_color
+                    }.lparams(wrapContent, wrapContent){
+                        topMargin = autoSize(30)
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(0, autoSize(96),2f)
+
+                verticalLayout {
+                    gravity = Gravity.CENTER
+                    textView {
+                        text = "操作类型"
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_gray_color
+                    }.lparams(wrapContent, wrapContent){
+                        topMargin = autoSize(30)
+                    }
+                }.lparams(0, autoSize(96),1f)
+
+                verticalLayout {
+                    gravity = Gravity.RIGHT
+                    textView {
+                        text = "金额"
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_gray_color
+                    }.lparams(wrapContent, wrapContent){
+                        topMargin = autoSize(30)
+                        marginEnd = autoSize(36)
+                    }
+                }.lparams(0, autoSize(96),1f)
+            }.lparams(matchParent, autoSize(96))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                setRetryAction {
+                    viewModel.queryAmountLog()
+                }
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModel.queryAmountLog()
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    // 未提交列表
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = moneyFlowingAdapter
+                    }.lparams(matchParent, matchParent)
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.costList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    moneyFlowingAdapter.setNewData(it)
+                }
+            }
+        }
+    }
+
+}

+ 64 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/account/RydzAccountViewModel.kt

@@ -0,0 +1,64 @@
+package cn.muchinfo.rma.view.base.hnstmain.account
+
+import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.AccountData
+import cn.muchinfo.rma.global.data.AmountLogData
+import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.base.BaseViewModel
+//云融大宗的资金信息页面
+class RydzAccountViewModel : BaseViewModel(){
+
+    /**
+     * 使用的当前的资金账户信息
+     */
+    val usedAccountData: MutableLiveData<AccountData> = MutableLiveData()
+
+    /**
+     * 资金流水数据
+     */
+    val costList : MutableLiveData<List<AmountLogData>> = MutableLiveData()
+
+    /**
+     * 更新交易下单的account
+     */
+    fun initAccountData() {
+        val accountDataList = GlobalDataCollection.instance?.accountDataList
+        if (accountDataList.isNullOrEmpty().not()) {
+            val accountData = GlobalDataCollection.instance?.accountData
+            accountData?.clearData()
+            accountData?.setNormalData()
+            usedAccountData.postValue(accountData)
+        }
+    }
+
+    /**
+     * 查询资金流水
+     */
+    fun queryAmountLog(){
+        val params = mutableMapOf<String, String>()
+        params["accountID"] = GlobalDataCollection.instance?.accountId.toString()
+        MyApplication.getInstance()?.futureManager?.queryAmountLog(params) { isSuccess, respData, _ ->
+            if (isSuccess) {
+                queryHisAmountLog(respData ?: arrayListOf())
+            }
+        }
+    }
+
+    /**
+     * 查询历史资金流水
+     */
+    fun queryHisAmountLog(list : List<AmountLogData>){
+        val params = mutableMapOf<String, String>()
+        params["accountID"] = GlobalDataCollection.instance?.accountId.toString()
+        MyApplication.getInstance()?.tradingQueryManager?.queryHisAmountLog(params) { isSuccess, respData, _ ->
+            if (isSuccess) {
+                val newList = arrayListOf<AmountLogData>()
+                newList.addAll(list)
+                newList.addAll(respData ?: arrayListOf())
+                costList.postValue(newList)
+            }
+        }
+    }
+
+}

+ 79 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/account/RydzMoneyFlowingVIewHolder.kt

@@ -0,0 +1,79 @@
+package cn.muchinfo.rma.view.base.hnstmain.account
+
+import android.view.Gravity
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.AmountLogData
+import cn.muchinfo.rma.global.toShowTime
+import cn.muchinfo.rma.global.toShowTime2
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+/**
+ * 资金-资金流水viewholder
+ * @property activity AppCompatActivity
+ * @property viewModel PlatinumTradeViewModel
+ * @property itemSize IntArray
+ * @constructor
+ */
+class RydzMoneyFlowingVIewHolder(private val activity : AppCompatActivity, private val viewModel: RydzAccountViewModel) : BaseViewHolder<AmountLogData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        verticalLayout {
+            linearLayout {
+                verticalLayout {
+                    gravity = Gravity.LEFT
+                    textView {
+                        data.bindOptional(context){
+                            text = it?.createtime?.toShowTime2()
+                        }
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_black_33
+                    }.lparams(wrapContent, wrapContent){
+                        topMargin = autoSize(30)
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(0, autoSize(96),2f)
+
+                verticalLayout {
+                    gravity = Gravity.CENTER
+                    textView {
+                        data.bindOptional(context){
+                            text = it?.OPERATETYPENAME
+                        }
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_black_33
+                    }.lparams(wrapContent, wrapContent){
+                        topMargin = autoSize(30)
+                    }
+                }.lparams(0, autoSize(96),1f)
+
+                verticalLayout {
+                    gravity = Gravity.RIGHT
+                    textView {
+                        data.bindOptional(context){
+                            text = NumberUtils.roundNum(it?.amount,2)
+                        }
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_black_33
+                    }.lparams(wrapContent, wrapContent){
+                        topMargin = autoSize(30)
+                        marginEnd = autoSize(36)
+                    }
+                }.lparams(0, autoSize(96),1f)
+            }.lparams(matchParent, autoSize(96))
+
+            itemView()
+        }.lparams(matchParent, wrapContent)
+    }
+
+
+}

+ 45 - 11
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/BookingWarehouseActivity.kt

@@ -13,10 +13,12 @@ import androidx.recyclerview.widget.RecyclerView
 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.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseActivity
 import cn.muchinfo.rma.view.base.app.Constant
+import cn.muchinfo.rma.view.base.hnstmain.bookingwarehouse.adapter.BookingAreCancelContentAdapter
 import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.SpotWareHouseViewModel
 import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.adapter.AreCancelContentAdapter
 import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.adapter.SpecifyDealContentAdapter
@@ -27,6 +29,9 @@ 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 mtp.polymer.com.autowidget.dialog.createLoadingDialog
+import mtp.polymer.com.autowidget.dialog.createWarningDialog
+import mtp.polymer.com.autowidget.utils.bindTaskStatus
 import org.jetbrains.anko.*
 import org.jetbrains.anko.support.v4.viewPager
 
@@ -104,6 +109,7 @@ class BookingWarehouseActivity : BaseActivity<BookingWarehouseViewModel>(){
         super.onCreate(savedInstanceState)
         verticalLayout {
             initMenuData()
+            createLoadingDialog(hintStr = "").bindTaskStatus(context, viewModel.loadingDialogStatus)
             topBar {
                 commonLeftButton()
                 commonTitle {
@@ -243,10 +249,10 @@ class OrderSummaryUI(private val activity : AppCompatActivity, private val viewM
                 statusLayout = this
                 swipeToLoadLayout {
                     swipeToLayout = this
-                    setEnableRefresh(false)
-                    setEnableLoadMore(true)
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
                     setOnRefreshListener {
-
+                        viewModel.queryorderSummaryWrPosition()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
@@ -301,7 +307,7 @@ class OrderSummaryUI(private val activity : AppCompatActivity, private val viewM
  * @property viewModel SpotWareHouseViewModel
  * @constructor
  */
-class BookingAreCancelledUI(private val activity : AppCompatActivity,private val viewModel: BookingWarehouseViewModel)  : AreCancelContentAdapter.OnContentScrollListener {
+class BookingAreCancelledUI(private val activity : AppCompatActivity,private val viewModel: BookingWarehouseViewModel)  : BookingAreCancelContentAdapter.OnContentScrollListener {
 
     private lateinit var swipeToLayout: SwipeToLoadLayout
     private lateinit var statusLayout: StatusLayout
@@ -313,8 +319,9 @@ class BookingAreCancelledUI(private val activity : AppCompatActivity,private val
     }
 
     val areCancelcontentAdapter by lazy {
-        AreCancelContentAdapter(
-            activity
+        BookingAreCancelContentAdapter(
+            activity,
+            viewModel
         )
     }
 
@@ -327,6 +334,33 @@ class BookingAreCancelledUI(private val activity : AppCompatActivity,private val
     val root = _FrameLayout(activity).apply {
         verticalLayout {
             viewModel.AreCancelTitle(Constant.table_mobile_hnst_yscd_gd)
+            viewModel.showCancelDialog.bindOptional(context){
+                if (it == true){
+                    activity.createWarningDialog {
+                        setTitle("温馨提示")
+                        setMessage("确定撤销此挂单吗?")
+                        addAction("取消") { dialog, _ ->
+                            viewModel.showCancelDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                        addAction("确定") { dialog, _ ->
+                            val data1 = viewModel.selectCancelData.value
+                            viewModel.requeryWRListingCancelOrder(
+                                marketId = 17201,
+                                goodsId = data1?.goodsid?.toInt() ?: 0,
+                                AccountID = GlobalDataCollection.instance?.accountId ?: 0,
+                                OldWRTradeOrderID = data1?.wrtradeorderid?.toLong() ?: 0,
+                                BuyOrSell = data1?.buyorsell?.toInt() ?: 0
+                            ){
+                                viewModel.queryAreCancelWrPosition()
+                            }
+
+                            viewModel.showCancelDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                    }.show()
+                }
+            }
 //            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
             areCancelcontentAdapter.setOnContentScrollListener(this@BookingAreCancelledUI)
             linearLayout {
@@ -347,7 +381,7 @@ class BookingAreCancelledUI(private val activity : AppCompatActivity,private val
                     horScrollview = this
                     setOnCustomScrollChangeListener { _, scrollX, _, _, _ ->
                         areCancelcontentAdapter.offestX = scrollX
-                        val viewHolderCacheList: List<AreCancelContentAdapter.ItemViewHolder> =
+                        val viewHolderCacheList: List<BookingAreCancelContentAdapter.ItemViewHolder> =
                             areCancelcontentAdapter.viewHolderCacheList
 
                         if (null != viewHolderCacheList) {
@@ -383,10 +417,10 @@ class BookingAreCancelledUI(private val activity : AppCompatActivity,private val
                 statusLayout = this
                 swipeToLoadLayout {
                     swipeToLayout = this
-                    setEnableRefresh(false)
-                    setEnableLoadMore(true)
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
                     setOnRefreshListener {
-
+                        viewModel.queryAreCancelWrPosition()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
@@ -397,7 +431,7 @@ class BookingAreCancelledUI(private val activity : AppCompatActivity,private val
                         addOnScrollListener(object : RecyclerView.OnScrollListener() {
                             override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                                 super.onScrolled(recyclerView, dx, dy)
-                                val viewHolderCacheList: List<AreCancelContentAdapter.ItemViewHolder> =
+                                val viewHolderCacheList: List<BookingAreCancelContentAdapter.ItemViewHolder> =
                                     areCancelcontentAdapter.viewHolderCacheList
                                 if (null != viewHolderCacheList) {
                                     val size = viewHolderCacheList.size

+ 63 - 8
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/BookingWarehouseViewModel.kt

@@ -6,11 +6,16 @@ import cn.muchinfo.rma.global.data.ColumnsData
 import cn.muchinfo.rma.global.data.HnstWrPositionData
 import cn.muchinfo.rma.global.data.WrOrderDetailData
 import cn.muchinfo.rma.global.data.WrSpecialMatchOrderData
+import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.global.wrtradeorderstatus
+import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.autoWidget.toArrayList
 import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
 import cn.muchinfo.rma.view.base.BaseViewModel
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mtp.polymer.com.autowidget.utils.TaskUiModel
 
 /**
  * 预售仓单viewmodel
@@ -18,6 +23,10 @@ import cn.muchinfo.rma.view.base.BaseViewModel
 class BookingWarehouseViewModel : BaseViewModel(){
 
     /**
+     * 加载状态控制
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
+    /**
      * 订单汇总头部数据
      */
     val orderSummaryTitle: MutableLiveData<List<ColumnsData>> = MutableLiveData()
@@ -57,6 +66,13 @@ class BookingWarehouseViewModel : BaseViewModel(){
      */
     val specifyDealContentDataList: MutableLiveData<List<WrSpecialMatchOrderData>> = MutableLiveData()
 
+    /**
+     * 是否弹出撤单弹窗
+     */
+    val showCancelDialog : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
+    //点击撤单时选择的撤单实体
+    val selectCancelData : MutableLiveData<WrOrderDetailData> = MutableLiveData()
+
     //-----------------成交------------------
     /**
      * 查询现货仓单-成交头部数据
@@ -85,6 +101,7 @@ class BookingWarehouseViewModel : BaseViewModel(){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("querytype","2")
+            put("haswr","0")
         }
         MyApplication.getInstance()?.warehouseManager?.queryWrTradeDetail(params = params){isSuccess, respData, error ->
             if (isSuccess){
@@ -219,7 +236,8 @@ class BookingWarehouseViewModel : BaseViewModel(){
     fun queryorderSummaryWrPosition(){
         val params = mutableMapOf<String,String>().apply {
             put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
-            put("querytype","1")
+            put("querytype","2")
+            put("haswr","0")
         }
         MyApplication.getInstance()?.warehouseManager?.queryWrPosition(params = params){ isSuccess, respData, error ->
             if (isSuccess){
@@ -236,17 +254,17 @@ class BookingWarehouseViewModel : BaseViewModel(){
         respData.forEach {
             val newRightData = arrayListOf<String>()
             //仓库
-            newRightData.add(it.warehousename ?: "-")
+            newRightData.add(it.warehousename?.isBlankString() ?: "-")
             //预售数量
-            newRightData.add( "--" + it.enumdicname)
-            //销售履约数量
-            newRightData.add(it.sellexcuteqty ?: "-")
+            newRightData.add( it?.credittotalqty + it.enumdicname)
+            //成交数量
+            newRightData.add(it.credittradeqty ?: "-" + it.enumdicname)
             //冻结数量
-            newRightData.add(it.freezeqty ?: "-")
+            newRightData.add(it.freezeqty ?: "-" + it.enumdicname)
             //质押数量
-            newRightData.add(it.pledgeqty ?: "-")
+            newRightData.add(it.pledgeqty ?: "-"+ it.enumdicname)
             //可用数量
-            newRightData.add(it.enalbeqty ?: "-")
+            newRightData.add(it.enalbeqty ?: "-"+ it.enumdicname)
             val newData = it.copy(rightData = newRightData)
             newList.add(newData)
         }
@@ -281,6 +299,7 @@ class BookingWarehouseViewModel : BaseViewModel(){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("querytype","2")
+            put("haswr","0")
         }
         MyApplication.getInstance()?.warehouseManager?.queryWrOrderDetail(params = params){isSuccess, respData, error ->
             if (isSuccess){
@@ -322,5 +341,41 @@ class BookingWarehouseViewModel : BaseViewModel(){
         return newList
     }
 
+    //挂单撤单请求
+    fun requeryWRListingCancelOrder(
+        marketId: Int,//市场id
+        goodsId: Int,//商品id
+        AccountID: Long = 0,//资金账号
+        OldWRTradeOrderID: Long = 0,//目标仓单贸易委托单ID
+        OrderSrc: Int = 0,//委托来源
+        BuyOrSell: Int = 0,//买卖方向
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.warehouseManager?.requeryWRListingCancelOrder(
+                marketId = marketId,
+                goodsId = goodsId,
+                AccountID = AccountID,
+                OldWRTradeOrderID = OldWRTradeOrderID,
+                OrderSrc = OrderSrc,
+                BuyOrSell = BuyOrSell
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
+
 
 }

+ 206 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/adapter/BookingAreCancelContentAdapter.java

@@ -0,0 +1,206 @@
+package cn.muchinfo.rma.view.base.hnstmain.bookingwarehouse.adapter;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.muchinfo.rma.R;
+import cn.muchinfo.rma.global.data.WrOrderDetailData;
+import cn.muchinfo.rma.view.autoWidget.CustomHorizontalScrollView;
+import cn.muchinfo.rma.view.base.hnstmain.bookingwarehouse.BookingWarehouseViewModel;
+import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.SpotWareHouseViewModel;
+import cn.muchinfo.rma.view.base.procurement.RightScrollAdapter;
+
+/**
+ * 现货仓单-挂单adapter
+ */
+public class BookingAreCancelContentAdapter extends RecyclerView.Adapter<BookingAreCancelContentAdapter.ItemViewHolder> {
+
+    private Context context;
+    private List<WrOrderDetailData> datas;
+    private int index = -1;
+    private int position = -1;
+    private List<ItemViewHolder> mViewHolderList = new ArrayList<>();
+    private BookingWarehouseViewModel viewModel;
+    public int offestX = 0;
+    private OnContentScrollListener onContentScrollListener;
+    //1是现货汇总,2是库存汇总
+    private String type;
+
+    public interface OnContentScrollListener {
+        void onScroll(MotionEvent event);
+    }
+
+    public void setOnContentScrollListener(OnContentScrollListener onContentScrollListener) {
+        this.onContentScrollListener = onContentScrollListener;
+    }
+
+
+    public BookingAreCancelContentAdapter(Context context, BookingWarehouseViewModel viewModel) {
+        this.viewModel = viewModel;
+        this.context = context;
+    }
+
+    public void setDatas(List<WrOrderDetailData> datas) {
+        this.datas = datas;
+        notifyDataSetChanged();
+    }
+
+    private void setPosition(int position) {
+        if (this.position == position) {
+            this.position = -1;
+            notifyItemChanged(index);
+        } else {
+            this.position = position;
+            notifyItemChanged(position);
+        }
+    }
+
+    @NonNull
+    @Override
+    public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+        View view = LayoutInflater.from(context).inflate(R.layout.spot_warehouse_layout_item_content, viewGroup, false);
+        return new ItemViewHolder(view);
+    }
+
+    @SuppressLint("SetTextI18n")
+    @Override
+    public void onBindViewHolder(@NonNull final ItemViewHolder itemViewHolder, int i) {
+        this.index = i;
+        WrOrderDetailData data = datas.get(i);
+
+        itemViewHolder.tvLeftTitle.setText(data.getDeliverygoodsname());
+        itemViewHolder.tv_left_bottom_title.setText(data.getWrstandardname());
+
+//        itemViewHolder.tv_left_bottom_title.setText(datas.get(i).getMiddlegoodscode());
+        //右边滑动部分
+        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
+        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
+        itemViewHolder.rvItemRight.setLayoutManager(linearLayoutManager);
+        itemViewHolder.rvItemRight.setHasFixedSize(true);
+        RightScrollAdapter rightScrollAdapter = new RightScrollAdapter(context);
+        rightScrollAdapter.setDatas(datas.get(i).getRightData());
+        itemViewHolder.rvItemRight.setAdapter(rightScrollAdapter);
+        //缓存当前holder
+        if (!mViewHolderList.contains(itemViewHolder)) {
+            mViewHolderList.add(itemViewHolder);
+        }
+        itemViewHolder.allView.setVisibility(View.GONE);
+
+        if (i == this.position) {
+            itemViewHolder.roots_view.setBackgroundColor(context.getResources().getColor(R.color.rma_list_select_color));
+            itemViewHolder.allView.setVisibility(View.VISIBLE);
+        } else {
+            itemViewHolder.roots_view.setBackgroundColor(context.getResources().getColor(R.color.white));
+            itemViewHolder.allView.setVisibility(View.GONE);
+        }
+        itemViewHolder.all_click_View.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (data.getWrtradeorderstatus().equals("3")){
+                    setPosition(i);
+                }
+            }
+        });
+
+        itemViewHolder.invoice_register.setVisibility(View.VISIBLE);
+        //撤单
+        itemViewHolder.invoice_register.setOnClickListener(view -> {
+            viewModel.getShowCancelDialog().postValue(true);
+            viewModel.getSelectCancelData().postValue(data);
+        });
+
+        itemViewHolder.load_more.setOnClickListener(view -> {
+
+        });
+        itemViewHolder.horItemScrollview.setEventListener(new CustomHorizontalScrollView.EventListener() {
+            @Override
+            public void onEvent(MotionEvent event) {
+                if (null != onContentScrollListener) onContentScrollListener.onScroll(event);
+            }
+        });
+        //由于viewHolder的缓存,在1级缓存取出来是2个viewholder,并且不会被重新赋值,所以这里需要处理缓存的viewholder的位移
+        itemViewHolder.horItemScrollview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+            @Override
+            public void onGlobalLayout() {
+                if (!itemViewHolder.isLayoutFinish()) {
+                    itemViewHolder.horItemScrollview.scrollTo(offestX, 0);
+                    itemViewHolder.setLayoutFinish(true);
+                }
+            }
+        });
+    }
+
+    @Override
+    public int getItemCount() {
+        return null == datas ? 0 : datas.size();
+    }
+
+    public List<ItemViewHolder> getViewHolderCacheList() {
+        return mViewHolderList;
+    }
+
+    public int getOffestX() {
+        return offestX;
+    }
+
+    public static class ItemViewHolder extends RecyclerView.ViewHolder {
+        LinearLayout roots_view;//根部布局
+        TextView details;//详情
+        TextView invoice_register;//撤单
+        TextView midpoints_registration;
+        TextView settlement_of_registration;
+        TextView payment_registration;
+        TextView warehouse_register;//挂牌
+        TextView fanacel_register;//提货
+        ImageView load_more;//更多
+        LinearLayout allView;//隐藏的底部操作空间
+        LinearLayout all_click_View;//item左侧点击控件
+        TextView tvLeftTitle;//左边销售方字段
+        TextView tv_left_bottom_title;//合同编号
+        RecyclerView rvItemRight;//右方的列表
+        public CustomHorizontalScrollView horItemScrollview;//右方的滑动控件
+        private boolean isLayoutFinish;//自定义字段,用于标记layout
+
+        public boolean isLayoutFinish() {
+            return isLayoutFinish;
+        }
+
+        public void setLayoutFinish(boolean layoutFinish) {
+            isLayoutFinish = layoutFinish;
+        }
+
+        public ItemViewHolder(@NonNull View itemView) {
+            super(itemView);
+            midpoints_registration = itemView.findViewById(R.id.midpoints_registration);
+            settlement_of_registration = itemView.findViewById(R.id.settlement_of_registration);
+            payment_registration = itemView.findViewById(R.id.payment_registration);
+            warehouse_register = itemView.findViewById(R.id.warehouse_register);
+            fanacel_register = itemView.findViewById(R.id.fanacel_register);
+            load_more = itemView.findViewById(R.id.load_more);
+            tvLeftTitle = itemView.findViewById(R.id.tv_left_title);
+            rvItemRight = itemView.findViewById(R.id.rv_item_right);
+            horItemScrollview = itemView.findViewById(R.id.hor_item_scrollview);
+            allView = itemView.findViewById(R.id.all_view);
+            tv_left_bottom_title = itemView.findViewById(R.id.tv_left_bottom_title);
+            all_click_View = itemView.findViewById(R.id.all_click_View);
+            invoice_register = itemView.findViewById(R.id.invoice_register);
+
+            roots_view = itemView.findViewById(R.id.roots_view);
+        }
+    }
+}

+ 44 - 8
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/SpotWareHouseActivity.kt

@@ -27,12 +27,18 @@ import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.adapter.SpotWarehouseCon
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.reportquery.adapter.FanacelReportContentAdapter
 import cn.muchinfo.rma.view.base.procurement.TopTabAdpater
+import cn.muchinfo.rma.view.eventbus.EventConstent
+import cn.muchinfo.rma.view.eventbus.MessageEvent
+import com.blankj.utilcode.util.AppUtils
 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 mtp.polymer.com.autowidget.dialog.createLoadingDialog
+import mtp.polymer.com.autowidget.dialog.createWarningDialog
 import mtp.polymer.com.autowidget.utils.bindTaskStatus
+import org.greenrobot.eventbus.EventBus
 
 import org.jetbrains.anko.*
 import org.jetbrains.anko.support.v4.viewPager
@@ -133,13 +139,13 @@ class SpotWareHouseActivity : BaseActivity<SpotWareHouseViewModel>(){
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         verticalLayout {
+            createLoadingDialog(hintStr = "").bindTaskStatus(context, viewModel.loadingDialogStatus)
             initMenuData()
             topBar {
                 commonLeftButton()
                 commonTitle {
                     text = "现货仓单"
                 }
-
             }
 
             tabSegment {
@@ -273,6 +279,9 @@ class SpotSummaryUI(private val activity : AppCompatActivity,private val viewMod
 
             statusLayout(contentBlock = {
                 statusLayout = this
+                setRetryAction {
+
+                }
                 swipeToLoadLayout {
                     swipeToLayout = this
                     setEnableRefresh(false)
@@ -559,10 +568,10 @@ class DetailsWarehouseUI(private val activity : AppCompatActivity,private val vi
                 statusLayout = this
                 swipeToLoadLayout {
                     swipeToLayout = this
-                    setEnableRefresh(false)
-                    setEnableLoadMore(true)
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
                     setOnRefreshListener {
-
+                        viewModel.querydetailsWarehouseWrPosition()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
@@ -632,7 +641,7 @@ class AreCancelledUI(private val activity : AppCompatActivity,private val viewMo
 
     val areCancelcontentAdapter by lazy {
         AreCancelContentAdapter(
-            activity
+            activity,viewModel
         )
     }
 
@@ -644,6 +653,33 @@ class AreCancelledUI(private val activity : AppCompatActivity,private val viewMo
     @RequiresApi(Build.VERSION_CODES.N)
     val root = _FrameLayout(activity).apply {
         verticalLayout {
+            viewModel.showCancelDialog.bindOptional(context){
+                if (it == true){
+                    activity.createWarningDialog {
+                        setTitle("温馨提示")
+                        setMessage("确定撤销此挂单吗?")
+                        addAction("取消") { dialog, _ ->
+                            viewModel.showCancelDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                        addAction("确定") { dialog, _ ->
+                            val data1 = viewModel.selectCancelData.value
+                            viewModel.requeryWRListingCancelOrder(
+                                marketId = 17201,
+                                goodsId = data1?.goodsid?.toInt() ?: 0,
+                                AccountID = GlobalDataCollection.instance?.accountId ?: 0,
+                                OldWRTradeOrderID = data1?.wrtradeorderid?.toLong() ?: 0,
+                                BuyOrSell = data1?.buyorsell?.toInt() ?: 0
+                            ){
+                                viewModel.queryAreCancelWrPosition()
+                            }
+
+                            viewModel.showCancelDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                    }.show()
+                }
+            }
             viewModel.AreCancelTitle(Constant.table_mobile_hnst_xhcd_gd)
 //            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
             areCancelcontentAdapter.setOnContentScrollListener(this@AreCancelledUI)
@@ -701,10 +737,10 @@ class AreCancelledUI(private val activity : AppCompatActivity,private val viewMo
                 statusLayout = this
                 swipeToLoadLayout {
                     swipeToLayout = this
-                    setEnableRefresh(false)
-                    setEnableLoadMore(true)
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
                     setOnRefreshListener {
-
+                        viewModel.queryAreCancelWrPosition()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)

+ 74 - 16
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/SpotWareHouseViewModel.kt

@@ -5,10 +5,14 @@ import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.global.wrtradeorderstatus
+import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.autoWidget.toArrayList
 import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
 import cn.muchinfo.rma.view.base.BaseViewModel
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mtp.polymer.com.autowidget.utils.TaskUiModel
 
 /**
  * 现货仓单viewmodel
@@ -16,6 +20,11 @@ import cn.muchinfo.rma.view.base.BaseViewModel
 class SpotWareHouseViewModel : BaseViewModel(){
 
     /**
+     * 加载状态控制
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
+
+    /**
      * 现货汇总头部数据
      */
     val spotSummaryTitle: MutableLiveData<List<ColumnsData>> = MutableLiveData()
@@ -78,6 +87,49 @@ class SpotWareHouseViewModel : BaseViewModel(){
      */
     val specifyDealContentDataList: MutableLiveData<List<WrSpecialMatchOrderData>> = MutableLiveData()
 
+    /**
+     * 是否弹出撤单弹窗
+     */
+    val showCancelDialog : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
+    //点击撤单时选择的撤单实体
+    val selectCancelData : MutableLiveData<WrOrderDetailData> = MutableLiveData()
+
+    //挂单撤单请求
+    fun requeryWRListingCancelOrder(
+        marketId: Int,//市场id
+        goodsId: Int,//商品id
+        AccountID: Long = 0,//资金账号
+        OldWRTradeOrderID: Long = 0,//目标仓单贸易委托单ID
+        OrderSrc: Int = 0,//委托来源
+        BuyOrSell: Int = 0,//买卖方向
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.warehouseManager?.requeryWRListingCancelOrder(
+                marketId = marketId,
+                goodsId = goodsId,
+                AccountID = AccountID,
+                OldWRTradeOrderID = OldWRTradeOrderID,
+                OrderSrc = OrderSrc,
+                BuyOrSell = BuyOrSell
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
+
 
     //-----------------指定成交------------------
     /**
@@ -172,6 +224,7 @@ class SpotWareHouseViewModel : BaseViewModel(){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("querytype","2")
+            put("haswr","1")
         }
         MyApplication.getInstance()?.warehouseManager?.queryWrTradeDetail(params = params){isSuccess, respData, error ->
             if (isSuccess){
@@ -191,18 +244,18 @@ class SpotWareHouseViewModel : BaseViewModel(){
             newRightData.add(it.warehousename ?: "-")
             //挂牌类型
             newRightData.add(if (it.buyorsell == "0"){"买入"}else{"卖出"})
-            //指定价格
+            //成交价格
             newRightData.add(it.tradeprice ?: "-")
-            //指定数量
+            //成交数量
             newRightData.add(it.tradeqty ?: "-")
-            //金额
-            newRightData.add(it.amount ?: "-")
-            //挂牌
-            newRightData.add(it.username ?: "-")
-            //指定方
-            newRightData.add(it.matchusername ?: "-")
-            //时间
-            newRightData.add(it.ordertime ?: "-")
+            //成交金额
+            newRightData.add(it.amount?.isBlankString() ?: "-")
+            //对手
+            newRightData.add(it.matchusername?.isBlankString() ?: "-")
+            //成交时间
+            newRightData.add(it.tradetime ?: "-")
+            //成交单号
+            newRightData.add(it.wrtradedetailid ?: "-")
             val newData = it.copy(rightData = newRightData)
             newList.add(newData)
         }
@@ -238,6 +291,7 @@ class SpotWareHouseViewModel : BaseViewModel(){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("querytype","2")
+            put("haswr","1")
         }
         MyApplication.getInstance()?.warehouseManager?.queryWrOrderDetail(params = params){isSuccess, respData, error ->
             if (isSuccess){
@@ -306,6 +360,7 @@ class SpotWareHouseViewModel : BaseViewModel(){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("querytype","2")
+            put("haswr","1")
         }
         MyApplication.getInstance()?.warehouseManager?.queryWrPosition(params = params){isSuccess, respData, error ->
             if (isSuccess){
@@ -369,6 +424,7 @@ class SpotWareHouseViewModel : BaseViewModel(){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
             put("querytype","1")
+            put("haswr","1")
         }
         MyApplication.getInstance()?.warehouseManager?.queryWrPosition(params = params){isSuccess, respData, error ->
             if (isSuccess){
@@ -414,12 +470,14 @@ class SpotWareHouseViewModel : BaseViewModel(){
         }
         MyApplication.getInstance()?.commonManager?.queryTableDefine(params = params) { isSuccess, respData, error ->
             if (isSuccess) {
-                val newlist = respData?.get(0)?.columns?.toArrayList()
-                newlist?.sortWith(Comparator { t1, t2 ->
-                    t1.orderindex?.toInt()?.minus(t2.orderindex?.toInt() ?: 0) ?: 0
-                })
-                detailsWarehouseTitle.postValue(newlist)
-                querydetailsWarehouseWrPosition()
+                if (respData?.size ?: 0 > 0){
+                    val newlist = respData?.get(0)?.columns?.toArrayList()
+                    newlist?.sortWith(Comparator { t1, t2 ->
+                        t1.orderindex?.toInt()?.minus(t2.orderindex?.toInt() ?: 0) ?: 0
+                    })
+                    detailsWarehouseTitle.postValue(newlist)
+                    querydetailsWarehouseWrPosition()
+                }
             }
         }
     }

+ 12 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/AreCancelContentAdapter.java

@@ -24,6 +24,7 @@ import cn.muchinfo.rma.R;
 import cn.muchinfo.rma.global.data.HnstWrPositionData;
 import cn.muchinfo.rma.global.data.WrOrderDetailData;
 import cn.muchinfo.rma.view.autoWidget.CustomHorizontalScrollView;
+import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.SpotWareHouseViewModel;
 import cn.muchinfo.rma.view.base.procurement.RightScrollAdapter;
 
 /**
@@ -36,6 +37,7 @@ public class AreCancelContentAdapter extends RecyclerView.Adapter<AreCancelConte
     private int index = -1;
     private int position = -1;
     private List<ItemViewHolder> mViewHolderList = new ArrayList<>();
+    private SpotWareHouseViewModel viewModel;
     public int offestX = 0;
     private OnContentScrollListener onContentScrollListener;
     //1是现货汇总,2是库存汇总
@@ -50,9 +52,9 @@ public class AreCancelContentAdapter extends RecyclerView.Adapter<AreCancelConte
     }
 
 
-    public AreCancelContentAdapter(Context context) {
+    public AreCancelContentAdapter(Context context,SpotWareHouseViewModel viewModel) {
+        this.viewModel = viewModel;
         this.context = context;
-
     }
 
     public void setDatas(List<WrOrderDetailData> datas) {
@@ -82,9 +84,8 @@ public class AreCancelContentAdapter extends RecyclerView.Adapter<AreCancelConte
     public void onBindViewHolder(@NonNull final ItemViewHolder itemViewHolder, int i) {
         this.index = i;
         WrOrderDetailData data = datas.get(i);
-
-        itemViewHolder.tvLeftTitle.setText("--");
-
+        itemViewHolder.tvLeftTitle.setText(data.getDeliverygoodsname());
+        itemViewHolder.tv_left_bottom_title.setText(data.getWrstandardname());
 //        itemViewHolder.tv_left_bottom_title.setText(datas.get(i).getMiddlegoodscode());
         //右边滑动部分
         LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
@@ -110,14 +111,18 @@ public class AreCancelContentAdapter extends RecyclerView.Adapter<AreCancelConte
         itemViewHolder.all_click_View.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                setPosition(i);
+                if (data.getWrtradeorderstatus().equals("3")){
+                    setPosition(i);
+                }
             }
         });
 
         itemViewHolder.invoice_register.setVisibility(View.VISIBLE);
+
         //撤单
         itemViewHolder.invoice_register.setOnClickListener(view -> {
-            ToastUtils.showLong("撤单");
+            viewModel.getShowCancelDialog().postValue(true);
+            viewModel.getSelectCancelData().postValue(data);
         });
 
         itemViewHolder.load_more.setOnClickListener(view -> {

+ 7 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/DetailsWarehouseContentAdapter.java

@@ -26,6 +26,7 @@ import cn.muchinfo.rma.global.data.HnstWrPositionData;
 import cn.muchinfo.rma.global.data.HoldLBData;
 import cn.muchinfo.rma.view.autoWidget.CustomHorizontalScrollView;
 import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.listed.ListedActivity;
+import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.pickup.PickUpGoodsActivity;
 import cn.muchinfo.rma.view.base.procurement.RightScrollAdapter;
 
 /**
@@ -122,13 +123,18 @@ public class DetailsWarehouseContentAdapter extends RecyclerView.Adapter<Details
         //挂牌
         itemViewHolder.warehouse_register.setOnClickListener(view -> {
             Intent intent = new Intent();
+            intent.putExtra("data1",new HnstWrPositionData());
+            intent.putExtra("type","1");
             intent.putExtra("data",data);
             intent.setClass(context, ListedActivity.class);
             ActivityUtils.startActivity(intent);
         });
         //提货
         itemViewHolder.fanacel_register.setOnClickListener(view -> {
-
+            Intent intent = new Intent();
+            intent.putExtra("data",data);
+            intent.setClass(context, PickUpGoodsActivity.class);
+            ActivityUtils.startActivity(intent);
         });
 
         itemViewHolder.load_more.setOnClickListener(view -> {

+ 2 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/SpecifyDealContentAdapter.java

@@ -85,7 +85,8 @@ public class SpecifyDealContentAdapter extends RecyclerView.Adapter<SpecifyDealC
         this.index = i;
         WrSpecialMatchOrderData data = datas.get(i);
 
-        itemViewHolder.tvLeftTitle.setText("--");
+        itemViewHolder.tvLeftTitle.setText(data.getDeliverygoodsname());
+        itemViewHolder.tv_left_bottom_title.setText(data.getWrstandardname());
 
 //        itemViewHolder.tv_left_bottom_title.setText(datas.get(i).getMiddlegoodscode());
         //右边滑动部分

+ 12 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/SpotWarehouseContentAdapter.java

@@ -30,8 +30,10 @@ import cn.muchinfo.rma.global.data.ExposureReportData;
 import cn.muchinfo.rma.global.data.FinanceReportData;
 import cn.muchinfo.rma.global.data.FutureDataReportData;
 import cn.muchinfo.rma.global.data.HnstWrPositionData;
+import cn.muchinfo.rma.global.data.HoldLBData;
 import cn.muchinfo.rma.view.autoWidget.CustomHorizontalScrollView;
 import cn.muchinfo.rma.view.base.app.Constant;
+import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.listed.ListedActivity;
 import cn.muchinfo.rma.view.base.home.reportquery.reportdetail.ReportCommonDetailsActivity;
 import cn.muchinfo.rma.view.base.procurement.RightScrollAdapter;
 
@@ -120,22 +122,25 @@ public class SpotWarehouseContentAdapter extends RecyclerView.Adapter<SpotWareho
         itemViewHolder.all_click_View.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (type.equals("3") || type.equals("2")){//仓库汇总和订单汇总可以点击展开
-//                    itemViewHolder.horItemScrollview.resetClick();
-//                    setPosition(i);
+                if (type.equals("3")){//仓库汇总和订单汇总可以点击展开
+                    setPosition(i);
                 }
             }
         });
-        if (type.equals("3") || type.equals("2")){//仓库汇总和订单汇总可以挂牌
-            itemViewHolder.warehouse_register.setVisibility(View.VISIBLE);
-        }
+        itemViewHolder.warehouse_register.setVisibility(View.VISIBLE);
+
         if (type.equals("2")){//仓库汇总可以提货
             itemViewHolder.fanacel_register.setVisibility(View.VISIBLE);
         }
 
         //挂牌
         itemViewHolder.warehouse_register.setOnClickListener(view -> {
-
+            Intent intent = new Intent();
+            intent.putExtra("data1",data);
+            intent.putExtra("type","2");
+            intent.putExtra("data",new HoldLBData());
+            intent.setClass(context, ListedActivity.class);
+            ActivityUtils.startActivity(intent);
         });
         //提货
         itemViewHolder.fanacel_register.setOnClickListener(view -> {

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

@@ -43,10 +43,21 @@ import org.jetbrains.anko.*
  */
 class ListedActivity : BaseActivity<ListedViewModel>() {
 
+    //1 现货仓单的挂 2 是预售仓单的挂
+    private val type by lazy {
+        intent.getStringExtra("type")
+    }
+
+    //现货仓单明细传入的实体
     private val data by lazy {
         intent.getParcelableExtra<HoldLBData>("data") as HoldLBData
     }
 
+    //预售仓单汇总传入的实体
+    private val data1 by lazy {
+        intent.getParcelableExtra<HnstWrPositionData>("data1") as HnstWrPositionData
+    }
+
     private var options1Items: List<JsonBean> = java.util.ArrayList<JsonBean>()
     private var options2Items = java.util.ArrayList<java.util.ArrayList<String>>()
 
@@ -70,7 +81,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
     //摘牌金额
     lateinit var one_delisting_amount: TextView
 
-    //摘牌金额
+    //交收月
     lateinit var month_text: TextView
 
     //挂牌价格输入
@@ -123,14 +134,16 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             }.lparams(autoSize(250), wrapContent)
 
                             textView {
-                                text = data.deliverygoodsname
+                                if (type == "1"){
+                                    text = data.deliverygoodsname
+                                }else{
+                                    text = data1.deliverygoodsname
+                                }
+
                                 textSizeAuto = 34
                                 textColorInt = R.color.rma_black_33
                             }.lparams(wrapContent, wrapContent)
 
-
-
-
                         }.lparams(matchParent, autoSize(132))
 
                         itemView()
@@ -149,7 +162,12 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             }.lparams(autoSize(250), wrapContent)
 
                             textView {
-                                text = data.wrstandardname
+                                if (type == "1"){
+                                    text = data.wrstandardname
+                                }else{
+                                    text = data1.wrstandardname
+                                }
+
                                 textSizeAuto = 34
                                 textColorInt = R.color.rma_black_33
                             }.lparams(wrapContent, wrapContent)
@@ -172,7 +190,11 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             }.lparams(autoSize(250), wrapContent)
 
                             textView {
-                                text = data.warehousename
+                                if (type == "1"){
+                                    text = data.warehousename
+                                }else{
+                                    text = data1.warehousename
+                                }
                                 textSizeAuto = 34
                                 textColorInt = R.color.rma_black_33
                             }.lparams(wrapContent, wrapContent)
@@ -411,7 +433,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                     isIndeterminate = false
                                     splitTrack = false
                                     setPadding(0, 0, 0, 0)
-                                    thumb = resources.getDrawable(R.mipmap.hnxt_seekbar)
+                                    thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
                                     progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
                                     setOnSeekBarChangeListener(object :
                                         SeekBar.OnSeekBarChangeListener {
@@ -420,7 +442,12 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                             p1: Int,
                                             p2: Boolean
                                         ) {
-                                            listednumberEdittext.text = NumberUtils.roundNum(data.enableqty?.toDouble()?.times(p1.div(100.0))?.toString(),0)
+                                            if (type == "1"){
+                                                listednumberEdittext.text = NumberUtils.roundNum(data.enableqty?.toDouble()?.times(p1.div(100.0))?.toString(),0)
+                                            }else{
+                                                listednumberEdittext.text = NumberUtils.roundNum(data1.credittotalqty?.toDouble()?.times(p1.div(100.0))?.toString(),0)
+                                            }
+
                                         }
 
                                         override fun onStartTrackingTouch(p0: SeekBar?) {
@@ -446,7 +473,11 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                     emptyView()
 
                                     textView {
-                                        text = data.enableqty + "吨"
+                                        if (type == "1"){
+                                            text = data.enableqty + "吨"
+                                        }else{
+                                            text = data1.credittotalqty + "吨"
+                                        }
                                         textSizeAuto = 29
                                         textColorInt = R.color.rma_gray_color
                                     }.lparams(wrapContent, wrapContent)
@@ -535,18 +566,16 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                         }
 
                         linearLayout {
+                            if (type == "2"){
+                                visibility = View.VISIBLE
+                            }else{
+                                visibility = View.GONE
+                            }
                             onThrottleFirstClick {
                                 showDataSelectDialog(type = "2") {
                                     month_text.text = this
                                 }
                             }
-                            listedType.bindOptional(context) {
-                                if (it?.id == "2") {
-                                    visibility = View.VISIBLE
-                                } else {
-                                    visibility = View.GONE
-                                }
-                            }
                             gravity = Gravity.CENTER_VERTICAL
                             textView {
                                 text = "交收月"
@@ -581,62 +610,124 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                     gravity = Gravity.CENTER_VERTICAL
                     textView {
                         onThrottleFirstClick {
-                            if (listedType.value?.id == "1"){//一口价
-                                viewModel.requeryWRListingOrderReq(
-                                    LadingBillId = data.ladingbillid?.toLong() ?: 0,
-                                    TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
-                                    SubNum = data.subnum?.toLong() ?: 0,
-                                    WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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 = 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 = 1,
-                                    WRStandardID = data.wrstandardid?.toInt() ?: 0
-                                ){
-                                    finish()
+                            if (type == "1"){//现货仓单挂单
+                                if (listedType.value?.id == "1"){//一口价
+                                    viewModel.requeryWRListingOrderReq(
+                                        LadingBillId = data.ladingbillid?.toLong() ?: 0,
+                                        TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                        SubNum = data.subnum?.toLong() ?: 0,
+                                        WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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 = 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 = 1,
+                                        WRStandardID = data.wrstandardid?.toInt() ?: 0
+                                    ){
+                                        finish()
+                                    }
+                                }else{//浮动价
+                                    viewModel.requeryWRListingOrderReq(
+                                        LadingBillId = data.ladingbillid?.toLong() ?: 0,
+                                        TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                        SubNum = data.subnum?.toLong() ?: 0,
+                                        WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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(),
+                                        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,
+                                        WRStandardID = data.wrstandardid?.toInt() ?: 0
+                                    ){
+                                        finish()
+                                    }
                                 }
-                            }else{//浮动价
-                                viewModel.requeryWRListingOrderReq(
-                                    LadingBillId = data.ladingbillid?.toLong() ?: 0,
-                                    TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
-                                    SubNum = data.subnum?.toLong() ?: 0,
-                                    WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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(),
-                                    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,
-                                    WRStandardID = data.wrstandardid?.toInt() ?: 0
-                                ){
-                                    finish()
+                            }else{//预售仓单挂单
+                                if (listedType.value?.id == "1"){//一口价
+                                    viewModel.requeryWRListingOrderReq(
+                                        LadingBillId = 0,
+                                        TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                        SubNum = 0,
+                                        WRFactorTypeId = data1.wrfactortypeid?.toLong() ?: 0,
+                                        UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
+                                        AccountID = GlobalDataCollection.instance?.accountId ?: 0,
+                                        IsSpecified = 0,
+                                        OrderQty = listednumberEdittext.text.toString().toLong(),
+                                        DeliveryGoodsID = data1.deliverygoodsid?.toInt() ?: 0,
+                                        WRPriceType = 1,
+                                        FixedPrice = onePriceInputEdittext.text.toString().toDouble(),
+                                        WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                                        TimevalidType = 4,
+                                        FirstRatio = 0.0,
+                                        DeliveryMonth = month_text.text.toString(),
+                                        PerformanceTemplateID = 0,
+                                        BuyOrSell = 1,
+                                        PriceDisplayMode = 1,
+                                        CanBargain = 0,
+                                        ApplyID = 0,
+                                        CanPart = 1,
+                                        HasWr = 0,
+                                        WRStandardID = data1.wrstandardid?.toInt() ?: 0
+                                    ){
+                                        finish()
+                                    }
+                                }else{//浮动价
+                                    viewModel.requeryWRListingOrderReq(
+                                        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 = data1.deliverygoodsid?.toInt() ?: 0,
+                                        WRPriceType = 2,
+                                        WRTradeGoods = getWRTradeGoods(),
+                                        PriceFactor = 1.0,
+                                        PriceMove = basisInputEdittext.text.toString().toDouble(),
+                                        TimevalidType = 4,
+                                        FirstRatio = 0.0,
+                                        PerformanceTemplateID = 0,
+                                        DeliveryMonth = month_text.text.toString(),
+                                        BuyOrSell = 1,
+                                        PriceDisplayMode = 1,
+                                        CanBargain = 0,
+                                        ApplyID = 0,
+                                        CanPart = 1,
+                                        HasWr = 0,
+                                        WRStandardID = data1.wrstandardid?.toInt() ?: 0
+                                    ){
+                                        finish()
+                                    }
                                 }
                             }
+
                         }
                         gravity = Gravity.CENTER
                         backgroundResource = R.mipmap.rma_save_info_bg
@@ -695,6 +786,13 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                 ToastUtils.showLong("起摘数量不能为0")
                 return false
             }
+
+            if (type == "2"){
+                if (month_text.text.toString().isNullOrEmpty()){
+                    ToastUtils.showLong("请选择交收月")
+                    return false
+                }
+            }
         }else{//浮动价校验
             if (selectGoodsInfo.value?.value.isNullOrEmpty()){
                 ToastUtils.showLong("请选择行情商品")
@@ -724,6 +822,12 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                 ToastUtils.showLong("起摘数量不能为0")
                 return false
             }
+            if (type == "2"){
+                if (month_text.text.toString().isNullOrEmpty()){
+                    ToastUtils.showLong("请选择交收月")
+                    return false
+                }
+            }
         }
 
         return true

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

@@ -126,7 +126,7 @@ class ListedViewModel : BaseViewModel(){
         ApplyID: Long = 0,//申请ID
         CanPart: Int = 0,//是否允许部份摘牌0:不允许;1:允许
 //        MatchAccIDsString : List<String> = arrayListOf(),//仓单贸易对手用户ID集合(指定对手时填写)
-//        DeliveryMonth : String = "",//交收月
+        DeliveryMonth : String = "",//交收月
         HasWr: Int = 0,//是否有仓单-0:没有仓单 1:有仓单
         WRStandardID: Int = 0,//现货品种ID
         isSuccess: (isCompleted: Boolean) -> Unit
@@ -137,6 +137,7 @@ class ListedViewModel : BaseViewModel(){
                 LadingBillId = LadingBillId,
                 TradeDate = TradeDate,
                 AccountID = AccountID,
+                DeliveryMonth = DeliveryMonth,
                 OrderQty = OrderQty,
                 IsSpecified = IsSpecified,
                 SubNum = SubNum,

+ 434 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/pickup/PickUpGoodsActivity.kt

@@ -0,0 +1,434 @@
+package cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.pickup
+
+import android.graphics.Color
+import android.os.Build
+import android.os.Bundle
+import android.view.Gravity
+import android.view.View
+import android.view.inputmethod.EditorInfo
+import android.widget.EditText
+import android.widget.SeekBar
+import android.widget.TextView
+import androidx.annotation.RequiresApi
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.HoldLBData
+import cn.muchinfo.rma.global.utils.TimeUtils
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI1
+import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.PickerView.builder.OptionsPickerBuilder
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText2
+import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import com.blankj.utilcode.util.ToastUtils
+import mtp.polymer.com.autowidget.dialog.createLoadingDialog
+import mtp.polymer.com.autowidget.dialog.showDataSelectDialog
+import mtp.polymer.com.autowidget.utils.bindTaskStatus
+import org.jetbrains.anko.*
+
+//提货页面
+class PickUpGoodsActivity : BaseActivity<PickUpGoodsViewModel>(){
+    //提货数量
+    lateinit var listednumberEdittext: MangeNumberEditText2
+
+    //提货人
+    lateinit var name_edittxt: EditText
+
+    //联系方式
+    lateinit var phone_number : EditText
+
+    //交收月
+    lateinit var month_text: TextView
+
+    //备注
+    lateinit var remask_edittext : EditText
+
+    /**
+     * 查询所用的date 注意(页面显示时间规则yyyy-MM-dd,而接口请求规则yyyyMMdd,简直无fuck可说)
+     */
+    var tradedate: String = ""
+
+    //现货仓单明细传入的实体
+    private val data by lazy {
+        intent.getParcelableExtra<HoldLBData>("data") as HoldLBData
+    }
+
+    @RequiresApi(Build.VERSION_CODES.O)
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            createLoadingDialog(hintStr = "").bindTaskStatus(context, viewModel.loadingDialogStatus)
+
+            background = resources.getDrawable(R.color.white)
+            topBar {
+                commonLeftButton()
+                commonTitle {
+                    text = "提货"
+                }
+            }
+
+            frameLayout {
+                scrollView {
+                    verticalLayout {
+                        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)
+
+                            textView {
+                                text = data.deliverygoodsname
+
+                                textSizeAuto = 34
+                                textColorInt = R.color.rma_black_33
+                            }.lparams(wrapContent, wrapContent)
+
+                        }.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)
+
+                            textView {
+                                text = data.wrstandardname
+
+                                textSizeAuto = 34
+                                textColorInt = R.color.rma_black_33
+                            }.lparams(wrapContent, wrapContent)
+
+                        }.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)
+
+                            textView {
+
+                                    text = data.warehousename
+
+                                textSizeAuto = 34
+                                textColorInt = R.color.rma_black_33
+                            }.lparams(wrapContent, wrapContent)
+
+                        }.lparams(matchParent, autoSize(132))
+
+                        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 {
+                                        listednumberEdittext = this
+                                        text = "1"
+                                        setOnTextChangeListener { view, value ->
+
+                                        }
+
+                                    }.lparams(0, autoSize(72), 1f){
+                                        marginEnd = autoSize(36)
+                                    }
+
+                                    textView {
+                                        text = "吨"
+                                        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(0, 0, 0, 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
+                                        ) {
+                                            listednumberEdittext.text = NumberUtils.roundNum(data.enableqty?.toDouble()?.times(p1.div(100.0))?.toString(),0)
+                                        }
+
+                                        override fun onStartTrackingTouch(p0: SeekBar?) {
+
+                                        }
+
+                                        override fun onStopTrackingTouch(p0: SeekBar?) {
+
+                                        }
+                                    })
+                                }.lparams(matchParent, autoSize(46)) {
+                                    marginEnd = autoSize(110)
+                                    topMargin = autoSize(20)
+                                }
+
+                                linearLayout {
+                                    textView {
+                                        text = "0"
+                                        textSizeAuto = 29
+                                        textColorInt = R.color.rma_gray_color
+                                    }.lparams(wrapContent, wrapContent)
+
+                                    emptyView()
+
+                                    textView {
+                                        text = data.enableqty + "吨"
+                                        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)
+
+                            editText {
+                                name_edittxt = this
+                                hint = "请输入提货人姓名"
+                                background = null
+                                inputType = EditorInfo.TYPE_CLASS_TEXT
+//                                        setDecimalInputType()
+                                hintColorStr = "#CCCCCC"
+                                textSizeAuto = 31
+                                textColorStr = "#333333"
+                            }.lparams(0, autoSize(132), 1f)
+
+                        }.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)
+
+                            editText {
+                                phone_number = this
+                                hint = "请输入联系方式"
+                                background = null
+                                inputType = EditorInfo.TYPE_CLASS_NUMBER
+//                                        setDecimalInputType()
+                                hintColorStr = "#CCCCCC"
+                                textSizeAuto = 31
+                                textColorStr = "#333333"
+                            }.lparams(0, autoSize(132), 1f)
+
+                        }.lparams(matchParent, autoSize(132))
+
+                        itemView()
+
+                        linearLayout {
+                            onThrottleFirstClick {
+                                showDataSelectDialog(type = "1") {
+                                    month_text.text = this
+                                }
+                            }
+                            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 = TimeUtils.getNowTime("yyyyMMdd")
+                                month_text = this
+                                textSizeAuto = 34
+                                textColorInt = R.color.rma_black_33
+                            }.lparams(wrapContent, wrapContent)
+
+                            emptyView()
+
+                            imageView {
+                                imageResource = R.mipmap.rma_search_by_time
+                            }.lparams(autoSize(38), autoSize(38)){
+                                marginEnd = autoSize(36)
+                            }
+                        }.lparams(matchParent, autoSize(132))
+
+                        itemView()
+
+                        linearLayout {
+                            background = resources.getDrawable(R.color.white)
+                            gravity = Gravity.CENTER_VERTICAL
+                            textView {
+                                text = "备        注"
+                                textSizeAuto = 31
+                                textColorInt = R.color.rma_hint_text_color_ccc
+                            }.lparams(wrapContent, wrapContent) {
+                                marginStart = autoSize(36)
+                            }
+
+                            editText {
+                                remask_edittext = this
+                                hint = "请输入备注"
+                                background = null
+                                inputType = EditorInfo.TYPE_CLASS_TEXT
+                                hintColorStr = "#CCCCCC"
+                                textSizeAuto = 31
+                                textColorStr = "#333333"
+                            }.lparams(matchParent, autoSize(260)) {
+                                marginStart = autoSize(80)
+                            }
+                        }.lparams(matchParent, autoSize(136)) {
+                            bottomMargin = autoSize(200)
+                        }
+                    }
+                }
+
+                linearLayout {
+                    background = resources.getDrawable(R.color.white)
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        onThrottleFirstClick {
+                            if (check().not()){
+                                return@onThrottleFirstClick
+                            }
+                            viewModel.wROutApplyReq(
+                                AccountID = GlobalDataCollection.instance?.accountId ?: 0,
+                                Marketid = 17201,
+                                WRStandardID = data.wrstandardid?.toLong() ?: 0,
+                                WarehouseID = data.warehouseid?.toLong() ?: 0,
+                                AppointmentModel = 3,
+                                AppointmentDate = month_text.text.toString(),
+                                ContactName = name_edittxt.text.toString(),
+                                ContactNum = phone_number.text.toString(),
+                                AppointmentRemark = remask_edittext.text.toString(),
+                                WROutInDetails = getWRTradeGoods()
+                            ){
+                                finish()
+                            }
+                        }
+                        gravity = Gravity.CENTER
+                        backgroundResource = R.mipmap.rma_save_info_bg
+                        text = "提货"
+                        textSizeAuto = 38
+                        textColorInt = R.color.rma_star_color
+                    }.lparams(0, autoSize(119), 1f) {
+                        marginStart = autoSize(59)
+                        marginEnd = autoSize(59)
+                    }
+
+                }.lparams(matchParent, autoSize(144)) {
+                    gravity = Gravity.BOTTOM
+                }
+            }.lparams(matchParent, matchParent)
+        }
+    }
+
+    fun getWRTradeGoods() : ManageServiceMI1.WROutInDetail{
+        val wRTradeGoods = ManageServiceMI1.WROutInDetail.newBuilder()
+        wRTradeGoods.ladingBillID = data.ladingbillid
+        wRTradeGoods.subNum = 0
+        wRTradeGoods.qty = listednumberEdittext.text.toString().toLong()
+        wRTradeGoods.outQty = listednumberEdittext.text.toString().toLong()
+        return wRTradeGoods.build()
+    }
+
+    //提交前的校验
+    fun check() : Boolean{
+        if (listednumberEdittext.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入提货数量")
+            return false
+        }
+        if (listednumberEdittext.text.toString().toDouble() == 0.0){
+            ToastUtils.showLong("提货数量不能为零")
+            return false
+        }
+
+        if (name_edittxt.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入提货人姓名")
+            return false
+        }
+
+        if (phone_number.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入提货人联系方式")
+            return false
+        }
+
+        if (month_text.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请选择交收月")
+            return false
+        }
+
+        return true
+    }
+
+}

+ 77 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/pickup/PickUpGoodsViewModel.kt

@@ -0,0 +1,77 @@
+package cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.pickup
+
+import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.netManage.base.InteractiveException
+import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI1
+import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.base.BaseViewModel
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mtp.polymer.com.autowidget.utils.TaskUiModel
+
+//提货viewmodel
+class PickUpGoodsViewModel : BaseViewModel(){
+
+    /**
+     * 加载状态控制
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
+
+    //提货请求
+    fun wROutApplyReq(
+        Marketid : Long = 0,
+        WRStandardID: Long = 0,//仓单标准ID
+        WarehouseID: Long = 0,//仓库ID
+        UserID: Long = 0,//申请人ID
+        AccountID: Long = 0,//申请人账户ID
+        Mobile: String = "",//申请人手机号
+        AppointmentDate: String = "",//预约出库时间(格式:20200101)
+        AppointmentModel: Int = 0,//预约方式:1-物流,2-自送,3-自提
+        ProvinceID: Long = 0,//省
+        DistrictID: Long = 0,//区
+        CityID: Long = 0,//市
+        Address: String = "",//详细地址
+        ContactName: String = "",//收货人提货人
+        ContactNum: String = "",//收货人提货人手机
+        AppointmentRemark: String = "",//预约备注
+        CreatorID: Long = 0,//创建人ID
+        WROutInDetails: ManageServiceMI1.WROutInDetail,//仓单出库提单明细数据
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.warehouseManager?.wROutApplyReq(
+                Marketid = Marketid,
+                WRStandardID = WRStandardID,
+                WarehouseID = WarehouseID,
+                Mobile = Mobile,
+                AccountID = AccountID,
+                AppointmentDate = AppointmentDate,
+                AppointmentModel = AppointmentModel,
+                ProvinceID = ProvinceID,
+                DistrictID = DistrictID,
+                CityID = CityID,
+                Address = Address,
+                UserID = UserID,
+                ContactName = ContactName,
+                ContactNum = ContactNum,
+                AppointmentRemark = AppointmentRemark,
+                CreatorID = CreatorID,
+                WROutInDetails = WROutInDetails
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
+}

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

@@ -42,6 +42,14 @@ fun String.getMenuIcon() : Int{
         returnString = R.mipmap.main_business_2
     }else if (this == "client_customer"){
         returnString = R.mipmap.main_business_1
+    }else if (this == "client_mobile_hnstxhcx"){
+        returnString = R.mipmap.main_business_7
+    }else if (this == "client_mobile_hnsthycx"){
+        returnString = R.mipmap.yrdz_contract
+    }else if (this == "client_mobile_hnstlygl"){
+        returnString = R.mipmap.main_business_5
+    }else if (this == "client_mobile_hnstcztx"){
+        returnString = R.mipmap.qhj_withdrawal
     }
 
     return returnString

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

@@ -762,6 +762,14 @@ fun jumpActivity(context : Context,code : String){
             context,
             CustomerDataActivity::class.java
         )
+    }else if (code == "client_mobile_hnstxhcx"){//华南顺通-现货查询
+
+    }else if (code == "client_mobile_hnsthycx"){//华南顺通-合约查询
+
+    }else if (code == "client_mobile_hnstlygl"){//华南顺通-履约管理
+
+    }else if (code == "client_mobile_hnstcztx"){//华南顺通-充值提现
+
     }
     ActivityUtils.startActivity(intent)
 }

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

@@ -376,7 +376,7 @@ class SeaKingMainFragment : BaseFragment<SeaKingMainViewModel>() {
                                     }
                                 }.lparams(0, autoSize(110), 1f)
 
-                            }.lparams(matchParent, autoSize(110)) {
+                            }.lparams(0, autoSize(110),1f) {
                                 topMargin = autoSize(20)
                             }
 
@@ -431,7 +431,7 @@ class SeaKingMainFragment : BaseFragment<SeaKingMainViewModel>() {
                                     marginEnd = autoSize(78)
                                     topMargin = autoSize(15)
                                 }
-                            }.lparams(matchParent, autoSize(100)) {
+                            }.lparams(0, autoSize(110),1f) {
                                 topMargin = autoSize(25)
                             }
 

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

@@ -27,6 +27,14 @@ class BusinessBuyHallViewHolder(private val activity : AppCompatActivity, privat
 
     override fun _FrameLayout.createContentView() {
         verticalLayout {
+            background = resources.getDrawable(R.color.buy_color_bg)
+            data.bindOptional(context) {
+                if (it?.isClick == 0) {
+                   background = resources.getDrawable(R.color.buy_color_bg)
+                } else if (it?.isClick == 1) {
+                    background = resources.getDrawable(R.color.white)
+                }
+            }
             onThrottleFirstClick {
                 viewModel.setOnBuyItemClick(data.value?.wrtradeorderid ?: "")
             }
@@ -36,7 +44,11 @@ class BusinessBuyHallViewHolder(private val activity : AppCompatActivity, privat
                     gravity = Gravity.CENTER_VERTICAL or Gravity.LEFT
                     textView {
                         data.bindOptional(context){
-                            text = NumberUtils.roundNum(it?.fixedprice,2)
+                            if (pricetype == "1"){
+                                text = NumberUtils.roundNum(it?.fixedprice,2)
+                            }else{
+                                text = NumberUtils.roundNum(it?.pricemove,2)
+                            }
                         }
                         textSizeAuto = 34
                         textColorInt = R.color.rma_black_33
@@ -103,6 +115,22 @@ class BusinessBuyHallViewHolder(private val activity : AppCompatActivity, privat
                     marginEnd = autoSize(24)
                 }
 
+                textView {
+                    onThrottleFirstClick {
+                        onThrottleFirstClick {
+                            viewModel.selectData.postValue(data.value)
+                            viewModel.showFinancingDialog.postValue(true)
+                        }
+                    }
+                    backgroundResource = R.drawable.rma_item_click_bg
+                    gravity = Gravity.CENTER
+                    text = "融资摘牌"
+                    textColorInt = R.color.rma_item_click_color
+                    textSizeAuto = 26
+                }.lparams(autoSize(120), autoSize(48)) {
+                    marginEnd = autoSize(24)
+                }
+
             }.lparams(matchParent, autoSize(72))
         }.lparams(matchParent, wrapContent)
     }

Diferenças do arquivo suprimidas por serem muito extensas
+ 348 - 169
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallActivity.kt


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

@@ -110,7 +110,7 @@ class BusinessHallDetailsActivity : BaseActivity<BusinessHallViewModel>() {
 
                                     verticalLayout {
                                         textView {
-                                            text = it.steptypename
+                                            text = it.stepinfo
                                             textSizeAuto = 34
                                             textColorInt = R.color.rma_black_33
                                         }.lparams(wrapContent, wrapContent)

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

@@ -31,7 +31,7 @@ class BusinessHallViewModel : BaseViewModel(){
     val businessBuyHallDataList : MutableLiveData<List<OrderQuoteDetailData>> = MutableLiveData()
 
     //融资选择方案列表
-    val financingSelectDataList : MutableLiveData<List<String>> = MutableLiveData()
+    val financingSelectDataList : MutableLiveData<List<FaProductDetailData>> = MutableLiveData()
 
     //弹出一口价摘牌dialog
     val showOnePriceDialog : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
@@ -44,9 +44,34 @@ class BusinessHallViewModel : BaseViewModel(){
     //仓单商品信息
     val wrGoodsInfoData : MutableLiveData<WrGoodsInfoData> = MutableLiveData()
 
+    //弹出融资摘牌dialog
+    val showFinancingDialog : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
+
+    /**
+     * 当前选择的资金账户
+     */
+    val usedAccountData : MutableLiveData<AccountData> = MutableLiveData()
+
+    //融资的选择实体
+    val slectfinancingData : MutableLiveData<FaProductDetailData> = MutableLiveData()
+
     //查询融资选择方案
-    fun getFinancingSelectData(){
-        financingSelectDataList.postValue(arrayListOf("1","2","3","4","5"))
+    fun getFinancingSelectData(data: OrderQuoteData){
+        val params = mutableMapOf<String,String>().apply {
+            put("wrfactortypeid",data.wrfactortypeid ?: "")
+        }
+        MyApplication.getInstance()?.warehouseManager?.queryFaProductDetail(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                financingSelectDataList.postValue(respData)
+            }
+        }
+    }
+
+    //重新赋值资金账户
+    fun resetAccountData(data : AccountData){
+        data.clearData()
+        data.setNormalData()
+        usedAccountData.postValue(data)
     }
 
     /**
@@ -57,10 +82,12 @@ class BusinessHallViewModel : BaseViewModel(){
     /**
      * 查询现货明细
      */
-    fun querydetailsWarehouseWrPosition(){
+    fun querydetailsWarehouseWrPosition(data : OrderQuoteData){
         val params = mutableMapOf<String,String>().apply {
             put("accountid", GlobalDataCollection.instance?.accountId.toString())
-
+            put("warehouseid",data.warehouseid ?: "")
+            put("deliverygoodsid",data.deliverygoodsid ?: "")
+            put("wrstandardid",data.wrstandardid ?: "")
         }
         MyApplication.getInstance()?.warehouseManager?.queryHoldLB(params = params){isSuccess, respData, error ->
             if (isSuccess){
@@ -128,7 +155,11 @@ class BusinessHallViewModel : BaseViewModel(){
     fun querySellDataList( type : String, pricetype : String, data: OrderQuoteData){
         val params = mutableMapOf<String,String>().apply {
             put("wrpricetype",pricetype)
-            put("haswr","1")
+            if (type == "1"){
+                put("haswr","1")//仓单贸易
+            }else{
+                put("haswr","0")//仓单预售
+            }
             put("wrfactortypeid",data.wrfactortypeid ?: "")
             put("goodsid",data.goodsid ?: "")
             put("buyorsell","1")
@@ -144,7 +175,11 @@ class BusinessHallViewModel : BaseViewModel(){
     fun queryBuyDataList( type : String, pricetype : String, data: OrderQuoteData){
         val params = mutableMapOf<String,String>().apply {
             put("wrpricetype",pricetype)
-            put("haswr","1")
+            if (type == "1"){
+                put("haswr","1")//仓单贸易
+            }else{
+                put("haswr","0")//仓单预售
+            }
             put("wrfactortypeid",data.wrfactortypeid ?: "")
             put("goodsid",data.goodsid ?: "")
             put("buyorsell","0")

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

@@ -33,6 +33,14 @@ class BusinessSellHallViewHolder(private val activity : AppCompatActivity,privat
 
     override fun _FrameLayout.createContentView() {
          verticalLayout {
+             background = resources.getDrawable(R.color.sell_color_bg)
+             data.bindOptional(context) {
+                 if (it?.isClick == 0) {
+                     background = resources.getDrawable(R.color.sell_color_bg)
+                 } else if (it?.isClick == 1) {
+                     background = resources.getDrawable(R.color.white)
+                 }
+             }
              onThrottleFirstClick {
                  viewModel.setOnSellItemClick(data.value?.wrtradeorderid ?: "")
              }
@@ -43,7 +51,11 @@ class BusinessSellHallViewHolder(private val activity : AppCompatActivity,privat
                      gravity = Gravity.CENTER_VERTICAL or Gravity.LEFT
                      textView {
                          data.bindOptional(context){
-                             text = NumberUtils.roundNum(it?.fixedprice,2)
+                             if (pricetype == "1"){
+                                 text = NumberUtils.roundNum(it?.fixedprice,2)
+                             }else{
+                                 text = NumberUtils.roundNum(it?.pricemove,2)
+                             }
                          }
                          textSizeAuto = 34
                          textColorInt = R.color.rma_black_33
@@ -109,6 +121,21 @@ class BusinessSellHallViewHolder(private val activity : AppCompatActivity,privat
                      marginEnd = autoSize(24)
                  }
 
+                 textView {
+                     onThrottleFirstClick {
+                         onThrottleFirstClick {
+                             viewModel.selectData.postValue(data.value)
+                             viewModel.showFinancingDialog.postValue(true)
+                         }
+                     }
+                     backgroundResource = R.drawable.rma_item_click_bg
+                     gravity = Gravity.CENTER
+                     text = "融资摘牌"
+                     textColorInt = R.color.rma_item_click_color
+                     textSizeAuto = 26
+                 }.lparams(autoSize(120), autoSize(48)) {
+                     marginEnd = autoSize(24)
+                 }
              }.lparams(matchParent, autoSize(72))
          }.lparams(matchParent, wrapContent)
     }

+ 149 - 64
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/FloatListedDialog.kt

@@ -51,6 +51,7 @@ import org.w3c.dom.Text
  */
 fun AppCompatActivity.FloatListedDialog(
     activity: AppCompatActivity,
+    type: String,
     viewModel: BusinessHallViewModel,
     data : OrderQuoteData
 ): CustomDialogFragment {
@@ -61,11 +62,11 @@ fun AppCompatActivity.FloatListedDialog(
 
     //一口价卖挂牌
     val oneSellListedUI by lazy {
-        FloatSellListedUI(activity,viewModel,data)
+        FloatSellListedUI(activity,viewModel,type,data)
     }
 
     val oneBuyListedUI by lazy {
-        FloatBuyListedUI(activity, viewModel,data)
+        FloatBuyListedUI(activity, viewModel,type,data)
     }
 
     //viewpager的适配器
@@ -81,10 +82,10 @@ fun AppCompatActivity.FloatListedDialog(
 
     fun initMenuData(){
 
-        newTabsArray.add("卖大厅")
+        newTabsArray.add("卖挂牌")
         uiList.add(oneSellListedUI.root)
 
-        newTabsArray.add("买大厅")
+        newTabsArray.add("买挂牌")
         uiList.add(oneBuyListedUI.root)
 
         newPagerAdapter = object : PagerAdapter() {
@@ -169,6 +170,7 @@ fun AppCompatActivity.FloatListedDialog(
 class FloatSellListedUI(
     private val activity: AppCompatActivity,
     private val viewModel: BusinessHallViewModel,
+    type: String,
     data : OrderQuoteData
 ) {
 
@@ -233,13 +235,13 @@ class FloatSellListedUI(
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 onThrottleFirstClick {
-                    activity.creatHnstSpotDetailSheetDialog("请选择资金账号", viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()) {
+                    activity.creatHnstSpotDetailSheetDialog("请选择现货仓单", viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()) {
                         selectSpotDetailsData.postValue(this)
                     }
                 }
                 linearLayout {
                     textView {
-                        text = "仓单现货明细"
+                        text = "现货仓单"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
                     }.lparams(wrapContent, wrapContent){
@@ -248,7 +250,7 @@ class FloatSellListedUI(
                 }.lparams(autoSize(250), wrapContent)
 
                 textView {
-                    text = "请选择仓单现货明细"
+                    text = "请选择现货仓单"
                     selectSpotDetailsData.bindOptional(context){
                         text = it?.deliverygoodsname
                     }
@@ -280,6 +282,7 @@ class FloatSellListedUI(
 
                 numberEditText {
                     basisInputEdittext = this
+                    text = "0"
                     setOnTextChangeListener { view, value ->
 
                     }
@@ -308,6 +311,7 @@ class FloatSellListedUI(
                     linearLayout {
                         gravity = Gravity.CENTER_VERTICAL
                         numberEditText {
+                            text = "1"
                             listednumberEdittext = this
                             setOnTextChangeListener { view, value ->
 
@@ -332,7 +336,7 @@ class FloatSellListedUI(
                         isIndeterminate = false
                         splitTrack = false
                         setPadding(0,0,0,0)
-                        thumb = resources.getDrawable(R.mipmap.hnxt_seekbar)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
                         thumbOffset = 0
                         progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
                         setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
@@ -423,6 +427,17 @@ class FloatSellListedUI(
 
             }.lparams(matchParent, autoSize(167))
 
+            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 {
@@ -447,34 +462,64 @@ class FloatSellListedUI(
                             ToastUtils.showLong("请输入基差")
                             return@onThrottleFirstClick
                         }
-
-                        viewModel.requeryWRListingOrderReq(
-                            LadingBillId = selectSpotDetailsData.value?.ladingbillid?.toLong() ?: 0,
-                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
-                            SubNum = selectSpotDetailsData.value?.subnum?.toLong() ?: 0,
-                            WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
-                            WRStandardID = data.wrstandardid?.toInt() ?: 0
-                        ){
-                            viewModel.controlDialogDisappear.postValue(true)
+                        if (type == "1"){
+                            viewModel.requeryWRListingOrderReq(
+                                LadingBillId = selectSpotDetailsData.value?.ladingbillid?.toLong() ?: 0,
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                SubNum = selectSpotDetailsData.value?.subnum?.toLong() ?: 0,
+                                WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
+                                WRStandardID = data.wrstandardid?.toInt() ?: 0
+                            ){
+                                viewModel.controlDialogDisappear.postValue(true)
+                            }
+                        }else{
+                            viewModel.requeryWRListingOrderReq(
+                                LadingBillId = selectSpotDetailsData.value?.ladingbillid?.toLong() ?: 0,
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                SubNum = selectSpotDetailsData.value?.subnum?.toLong() ?: 0,
+                                WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
+                                WRStandardID = data.wrstandardid?.toInt() ?: 0
+                            ){
+                                viewModel.controlDialogDisappear.postValue(true)
+                            }
                         }
+
                     }
                     gravity = Gravity.CENTER
                     backgroundResource = R.drawable.qhj_main_blue_bg
@@ -518,6 +563,7 @@ class FloatSellListedUI(
 class FloatBuyListedUI(
     private val activity: AppCompatActivity,
     private val viewModel: BusinessHallViewModel,
+    type: String,
     data : OrderQuoteData
 ) {
     //选择的资金账号
@@ -577,7 +623,7 @@ class FloatBuyListedUI(
                 gravity = Gravity.CENTER_VERTICAL
                 linearLayout {
                     textView {
-                        text = "挂牌价格"
+                        text = "基        差"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
                     }.lparams(wrapContent, wrapContent){
@@ -586,6 +632,7 @@ class FloatBuyListedUI(
                 }.lparams(autoSize(250), wrapContent)
 
                 numberEditText {
+                    text = "0"
                     onePriceInputEdittext = this
                     setOnTextChangeListener { view, value ->
                         if (value.isNullOrEmpty().not()){
@@ -619,6 +666,7 @@ class FloatBuyListedUI(
                     linearLayout {
                         gravity = Gravity.CENTER_VERTICAL
                         numberEditText {
+                            text = "1"
                             oneNumberInputEdittext = this
                             setOnTextChangeListener { view, value ->
                                 if (value.isNullOrEmpty().not()){
@@ -647,7 +695,7 @@ class FloatBuyListedUI(
                         isIndeterminate = false
                         splitTrack = false
                         setPadding(0,0,0,0)
-                        thumb = resources.getDrawable(R.mipmap.hnxt_seekbar)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
                         thumbOffset = 0
                         progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
                         setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
@@ -716,9 +764,7 @@ class FloatBuyListedUI(
                             hintColorStr = "#CCCCCC"
                             textSizeAuto = 31
                             textColorStr = "#333333"
-                        }.lparams(0, autoSize(132),1f) {
-                            marginStart = autoSize(80)
-                        }
+                        }.lparams(0, autoSize(132),1f)
 
                         textView {
                             text = "吨"
@@ -749,12 +795,24 @@ class FloatBuyListedUI(
                 }
 
                 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 {
@@ -779,31 +837,58 @@ class FloatBuyListedUI(
                             ToastUtils.showLong("挂牌数量不能为零")
                             return@onThrottleFirstClick
                         }
-
-                        viewModel.requeryWRListingOrderReq(
-                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
-                            WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
-                            PriceMove = onePriceInputEdittext.text.toString().toDouble(),
-                            WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
-                            TimevalidType = 4,
-                            FirstRatio = 0.0,
-                            PerformanceTemplateID = 0,
-                            BuyOrSell = 0,
-                            PriceDisplayMode = 1,
-                            CanBargain = 0,
-                            ApplyID = 0,
-                            CanPart = 1,
-                            HasWr = 1,
-                            WRStandardID = data.wrstandardid?.toInt() ?: 0
-                        ){
-                            viewModel.controlDialogDisappear.postValue(true)
+                        if (type == "1"){
+                            viewModel.requeryWRListingOrderReq(
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
+                                PriceMove = onePriceInputEdittext.text.toString().toDouble(),
+                                WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                                TimevalidType = 4,
+                                FirstRatio = 0.0,
+                                PerformanceTemplateID = 0,
+                                BuyOrSell = 0,
+                                PriceDisplayMode = 1,
+                                CanBargain = 0,
+                                ApplyID = 0,
+                                CanPart = 1,
+                                HasWr = 1,
+                                WRStandardID = data.wrstandardid?.toInt() ?: 0
+                            ){
+                                viewModel.controlDialogDisappear.postValue(true)
+                            }
+                        }else{
+                            viewModel.requeryWRListingOrderReq(
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
+                                PriceMove = onePriceInputEdittext.text.toString().toDouble(),
+                                WRTradeGoods = WarehouseTradeMI1.WRGoodsInfo.newBuilder().build(),
+                                TimevalidType = 4,
+                                FirstRatio = 0.0,
+                                PerformanceTemplateID = 0,
+                                BuyOrSell = 0,
+                                PriceDisplayMode = 1,
+                                CanBargain = 0,
+                                ApplyID = 0,
+                                CanPart = 1,
+                                HasWr = 0,
+                                WRStandardID = data.wrstandardid?.toInt() ?: 0
+                            ){
+                                viewModel.controlDialogDisappear.postValue(true)
+                            }
                         }
+
                     }
                     gravity = Gravity.CENTER
                     backgroundResource = R.drawable.qhj_main_blue_bg

+ 264 - 141
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/OneListedDialog.kt

@@ -49,8 +49,9 @@ import org.jetbrains.anko.support.v4.viewPager
  */
 fun AppCompatActivity.OneListedDialog(
     activity: AppCompatActivity,
+    type: String,
     viewModel: BusinessHallViewModel,
-    data : OrderQuoteData
+    data: OrderQuoteData
 ): CustomDialogFragment {
 
     lateinit var segment: QMUITabSegment
@@ -59,26 +60,26 @@ fun AppCompatActivity.OneListedDialog(
 
     //一口价卖挂牌
     val oneSellListedUI by lazy {
-        OneSellListedUI(activity,viewModel,data)
+        OneSellListedUI(activity, viewModel, type, data)
     }
 
     //一口价买挂牌
     val oneBuyListedUI by lazy {
-        OneBuyListedUI(activity, viewModel,data)
+        OneBuyListedUI(activity, viewModel, type, data)
     }
 
     //viewpager的适配器
-     var newPagerAdapter : PagerAdapter? = null
+    var newPagerAdapter: PagerAdapter? = null
 
     //tabSegment标题
-     val newTabsArray : ArrayList<String> = arrayListOf()
+    val newTabsArray: ArrayList<String> = arrayListOf()
 
     //暂存的页面组
-     val uiList : ArrayList<_FrameLayout> = arrayListOf()
+    val uiList: ArrayList<_FrameLayout> = arrayListOf()
 
-    val selectIndex : MutableLiveData<Int> = MutableLiveData()
+    val selectIndex: MutableLiveData<Int> = MutableLiveData()
 
-    fun initMenuData(){
+    fun initMenuData() {
 
         newTabsArray.add("卖挂牌")
         uiList.add(oneSellListedUI.root)
@@ -115,8 +116,8 @@ fun AppCompatActivity.OneListedDialog(
         backgroundColor = Color.parseColor("#5f000000")
         initMenuData()
         verticalLayout {
-            viewModel.controlDialogDisappear.bindOptional(context){
-                if (it == true){
+            viewModel.controlDialogDisappear.bindOptional(context) {
+                if (it == true) {
                     dialog.dismiss()
                     viewModel.controlDialogDisappear.postValue(false)
                 }
@@ -158,7 +159,7 @@ fun AppCompatActivity.OneListedDialog(
 
             segment.setupWithViewPager(viewPager)
             segment.selectTab(1)
-        }.lparams(matchParent, matchParent){
+        }.lparams(matchParent, matchParent) {
             topMargin = autoSize(120)
         }
     }
@@ -168,24 +169,26 @@ fun AppCompatActivity.OneListedDialog(
 class OneSellListedUI(
     private val activity: AppCompatActivity,
     private val viewModel: BusinessHallViewModel,
-    data : OrderQuoteData
+    type: String,
+    data: OrderQuoteData
 ) {
     //选择的现货仓单明细数据
-    val selectSpotDetailsData : MutableLiveData<HoldLBData> = MutableLiveData()
+    val selectSpotDetailsData: MutableLiveData<HoldLBData> = MutableLiveData()
 
     //选择的资金账号
-    val selectAccountData : MutableLiveData<AccountData> = MutableLiveData()
+    val selectAccountData: MutableLiveData<AccountData> = MutableLiveData()
+
     //挂牌价格输入
-    lateinit var onePriceInputEdittext : MangeNumberEditText2
+    lateinit var onePriceInputEdittext: MangeNumberEditText2
 
     //挂牌数量
-    lateinit var oneNumberInputEdittext : MangeNumberEditText2
+    lateinit var oneNumberInputEdittext: MangeNumberEditText2
 
     //起摘数量输入框
-    lateinit var startInputNumber : EditText
+    lateinit var startInputNumber: EditText
 
     //摘牌金额
-    lateinit var one_delisting_amount : TextView
+    lateinit var one_delisting_amount: TextView
 
     @SuppressLint("NewApi")
     @RequiresApi(Build.VERSION_CODES.O)
@@ -196,7 +199,10 @@ class OneSellListedUI(
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 onThrottleFirstClick {
-                    activity.creatAccountDataSheetDialog("请选择资金账号", GlobalDataCollection.instance?.accountDataList ?: arrayListOf()) {
+                    activity.creatAccountDataSheetDialog(
+                        "请选择资金账号",
+                        GlobalDataCollection.instance?.accountDataList ?: arrayListOf()
+                    ) {
                         selectAccountData.postValue(this)
                     }
                 }
@@ -205,13 +211,13 @@ class OneSellListedUI(
                         text = "交易账户"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
+                    }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(36)
                     }
                 }.lparams(autoSize(250), wrapContent)
 
                 textView {
-                    selectAccountData.bindOptional(context){
+                    selectAccountData.bindOptional(context) {
                         text = it?.accountid.toString() + "   " + it?.accountname
                     }
                     textSizeAuto = 34
@@ -231,24 +237,27 @@ class OneSellListedUI(
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 onThrottleFirstClick {
-                    activity.creatHnstSpotDetailSheetDialog("请选择资金账号", viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()) {
+                    activity.creatHnstSpotDetailSheetDialog(
+                        "请选择现货仓单",
+                        viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()
+                    ) {
                         selectSpotDetailsData.postValue(this)
                     }
                 }
                 linearLayout {
                     textView {
-                        text = "仓单现货明细"
+                        text = "现货仓单"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
+                    }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(36)
                     }
                 }.lparams(autoSize(250), wrapContent)
 
                 textView {
-                    text = "请选择仓单现货明细"
-                    selectSpotDetailsData.bindOptional(context){
-                        text = it?.deliverygoodsname
+                    text = "请选择现货仓单"
+                    selectSpotDetailsData.bindOptional(context) {
+                        text = it?.ladingbillid + "(" + it?.enableqty + it?.enumdicname + ")"
                     }
                     textSizeAuto = 34
                     textColorInt = R.color.rma_black_33
@@ -271,22 +280,27 @@ class OneSellListedUI(
                         text = "挂牌价格"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
+                    }.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()){
-                                one_delisting_amount.text = NumberUtils.roundNum(value.toString().toDouble().times(oneNumberInputEdittext.text.toString().toDouble()).toString(),2)
+                        if (value.isNullOrEmpty().not()) {
+                            if (oneNumberInputEdittext.text.toString().isNullOrEmpty().not()) {
+                                one_delisting_amount.text = NumberUtils.roundNum(
+                                    value.toString().toDouble()
+                                        .times(oneNumberInputEdittext.text.toString().toDouble())
+                                        .toString(), 2
+                                )
                             }
                         }
                     }
 
-                }.lparams(0, autoSize(72),1f){
+                }.lparams(0, autoSize(72), 1f) {
                     marginEnd = autoSize(110)
                 }
             }.lparams(matchParent, autoSize(143))
@@ -299,7 +313,7 @@ class OneSellListedUI(
                         text = "挂牌数量"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
+                    }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(36)
                         topMargin = autoSize(36)
                     }
@@ -310,16 +324,23 @@ class OneSellListedUI(
                     linearLayout {
                         gravity = Gravity.CENTER_VERTICAL
                         numberEditText {
+                            text = "1"
                             oneNumberInputEdittext = this
                             setOnTextChangeListener { view, value ->
-                                if (value.isNullOrEmpty().not()){
-                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty().not()){
-                                        one_delisting_amount.text = NumberUtils.roundNum(value.toString().toDouble().times(onePriceInputEdittext.text.toString().toDouble()).toString(),2)
+                                if (value.isNullOrEmpty().not()) {
+                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
+                                            .not()
+                                    ) {
+                                        one_delisting_amount.text = NumberUtils.roundNum(
+                                            value.toString().toDouble().times(
+                                                onePriceInputEdittext.text.toString().toDouble()
+                                            ).toString(), 2
+                                        )
                                     }
                                 }
                             }
 
-                        }.lparams(0, autoSize(72),1f){
+                        }.lparams(0, autoSize(72), 1f) {
                             marginEnd = autoSize(36)
                         }
 
@@ -327,21 +348,21 @@ class OneSellListedUI(
                             text = "吨"
                             textSizeAuto = 34
                             textColorInt = R.color.rma_hint_text_color_ccc
-                        }.lparams(wrapContent, wrapContent){
+                        }.lparams(wrapContent, wrapContent) {
                             marginEnd = autoSize(36)
                         }
                     }.lparams(matchParent, autoSize(143))
 
-                    inflateLayout<SeekBar>(R.layout.main_seekbar)  {
+                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
                         min = 10
                         max = 100
                         isIndeterminate = false
                         splitTrack = false
-                        setPadding(0,0,0,0)
-                        thumb = resources.getDrawable(R.mipmap.hnxt_seekbar)
+                        setPadding(0, 0, 0, 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
 
                         progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
-                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
                             override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
 
                             }
@@ -354,7 +375,7 @@ class OneSellListedUI(
 
                             }
                         })
-                    }.lparams(matchParent, wrapContent){
+                    }.lparams(matchParent, wrapContent) {
                         marginEnd = autoSize(110)
                         topMargin = autoSize(20)
                     }
@@ -373,7 +394,7 @@ class OneSellListedUI(
                             textSizeAuto = 29
                             textColorInt = R.color.rma_gray_color
                         }.lparams(wrapContent, wrapContent)
-                    }.lparams(matchParent, wrapContent){
+                    }.lparams(matchParent, wrapContent) {
                         marginEnd = autoSize(110)
                         topMargin = autoSize(10)
                     }
@@ -381,6 +402,8 @@ class OneSellListedUI(
                 }.lparams(matchParent, autoSize(290))
             }.lparams(matchParent, autoSize(290))
 
+
+
             itemView()
 
             linearLayout {
@@ -390,7 +413,7 @@ class OneSellListedUI(
                         text = "起摘数量"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
+                    }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(36)
                     }
                 }.lparams(autoSize(250), wrapContent)
@@ -406,14 +429,14 @@ class OneSellListedUI(
                             hintColorStr = "#CCCCCC"
                             textSizeAuto = 31
                             textColorStr = "#333333"
-                        }.lparams(0, autoSize(132),1f) {
+                        }.lparams(0, autoSize(132), 1f) {
                         }
 
                         textView {
                             text = "吨"
                             textSizeAuto = 31
-                            textColorInt = R.color.rma_black_33
-                        }.lparams(wrapContent, wrapContent){
+                            textColorInt = R.color.rma_hint_text_color_ccc
+                        }.lparams(wrapContent, wrapContent) {
                             marginEnd = autoSize(36)
                         }
                     }.lparams(matchParent, autoSize(100))
@@ -435,17 +458,30 @@ class OneSellListedUI(
                     text = "挂牌金额"
                     textSizeAuto = 34
                     textColorInt = R.color.rma_hint_text_color_ccc
-                }.lparams(autoSize(214), wrapContent){
+                }.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 {
@@ -453,54 +489,84 @@ class OneSellListedUI(
                 gravity = Gravity.CENTER_VERTICAL
                 textView {
                     onThrottleFirstClick {
-                        if (selectSpotDetailsData.value?.deliverygoodsid.isNullOrEmpty()){
+                        if (selectSpotDetailsData.value?.deliverygoodsid.isNullOrEmpty()) {
                             ToastUtils.showLong("请选择现货仓单明细")
                             return@onThrottleFirstClick
                         }
-                        if (onePriceInputEdittext.text.toString().isNullOrEmpty()){
+                        if (onePriceInputEdittext.text.toString().isNullOrEmpty()) {
                             ToastUtils.showLong("请输入挂牌价格")
                             return@onThrottleFirstClick
                         }
-                        if (onePriceInputEdittext.text.toString().toDouble() == 0.0){
+                        if (onePriceInputEdittext.text.toString().toDouble() == 0.0) {
                             ToastUtils.showLong("挂牌价格不能为零")
                             return@onThrottleFirstClick
                         }
 
-                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()){
+                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()) {
                             ToastUtils.showLong("请输入挂牌数量")
                             return@onThrottleFirstClick
                         }
-                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0){
+                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0) {
                             ToastUtils.showLong("挂牌数量不能为零")
                             return@onThrottleFirstClick
                         }
                         val selectDetailsData = selectSpotDetailsData.value
-                        viewModel.requeryWRListingOrderReq(
-                            LadingBillId = selectDetailsData?.ladingbillid?.toLong() ?: 0,
-                            SubNum = selectDetailsData?.subnum?.toLong() ?: 0,
-                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
-                            WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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 = 1,
-                            WRStandardID = data.wrstandardid?.toInt() ?: 0
-                        ){
-                            viewModel.controlDialogDisappear.postValue(true)
+                        if (type == "1") {
+                            viewModel.requeryWRListingOrderReq(
+                                LadingBillId = selectDetailsData?.ladingbillid?.toLong() ?: 0,
+                                SubNum = selectDetailsData?.subnum?.toLong() ?: 0,
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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 = 1,
+                                WRStandardID = data.wrstandardid?.toInt() ?: 0
+                            ) {
+                                viewModel.controlDialogDisappear.postValue(true)
+                            }
+                        } else {
+                            viewModel.requeryWRListingOrderReq(
+                                LadingBillId = selectDetailsData?.ladingbillid?.toLong() ?: 0,
+                                SubNum = selectDetailsData?.subnum?.toLong() ?: 0,
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
+                                WRStandardID = data.wrstandardid?.toInt() ?: 0
+                            ) {
+                                viewModel.controlDialogDisappear.postValue(true)
+                            }
                         }
+
                     }
                     gravity = Gravity.CENTER
                     backgroundResource = R.drawable.qhj_main_blue_bg
@@ -534,23 +600,25 @@ class OneSellListedUI(
 class OneBuyListedUI(
     private val activity: AppCompatActivity,
     private val viewModel: BusinessHallViewModel,
-    data : OrderQuoteData
+    type: String,
+    data: OrderQuoteData
 ) {
 
     //选择的资金账号
-    val selectAccountData : MutableLiveData<AccountData> = MutableLiveData()
+    val selectAccountData: MutableLiveData<AccountData> = MutableLiveData()
 
     //挂牌价格输入
-    lateinit var onePriceInputEdittext : MangeNumberEditText2
+    lateinit var onePriceInputEdittext: MangeNumberEditText2
 
     //挂牌数量
-    lateinit var oneNumberInputEdittext : MangeNumberEditText2
+    lateinit var oneNumberInputEdittext: MangeNumberEditText2
 
     //起摘数量输入框
-    lateinit var startInputNumber : EditText
+    lateinit var startInputNumber: EditText
 
     //挂牌金额
-    lateinit var one_delisting_amount : TextView
+    lateinit var one_delisting_amount: TextView
+
     @RequiresApi(Build.VERSION_CODES.O)
     val root = _FrameLayout(activity).apply {
         verticalLayout {
@@ -559,22 +627,25 @@ class OneBuyListedUI(
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 onThrottleFirstClick {
-                    activity.creatAccountDataSheetDialog("请选择资金账号", GlobalDataCollection.instance?.accountDataList ?: arrayListOf()) {
-                            selectAccountData.postValue(this)
-                        }
+                    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){
+                    }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(36)
                     }
                 }.lparams(autoSize(250), wrapContent)
 
                 textView {
-                    selectAccountData.bindOptional(context){
+                    selectAccountData.bindOptional(context) {
                         text = it?.accountid.toString() + "   " + it?.accountname
                     }
                     textSizeAuto = 34
@@ -595,25 +666,30 @@ class OneBuyListedUI(
                 gravity = Gravity.CENTER_VERTICAL
                 linearLayout {
                     textView {
-                        text = "基        差"
+                        text = "挂牌价格"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
+                    }.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()){
-                                one_delisting_amount.text = NumberUtils.roundNum(value.toString().toDouble().times(oneNumberInputEdittext.text.toString().toDouble()).toString(),2)
+                        if (value.isNullOrEmpty().not()) {
+                            if (oneNumberInputEdittext.text.toString().isNullOrEmpty().not()) {
+                                one_delisting_amount.text = NumberUtils.roundNum(
+                                    value.toString().toDouble()
+                                        .times(oneNumberInputEdittext.text.toString().toDouble())
+                                        .toString(), 2
+                                )
                             }
                         }
                     }
 
-                }.lparams(0, autoSize(72),1f){
+                }.lparams(0, autoSize(72), 1f) {
                     marginEnd = autoSize(110)
                 }
             }.lparams(matchParent, autoSize(143))
@@ -626,7 +702,7 @@ class OneBuyListedUI(
                         text = "挂牌数量"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
+                    }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(36)
                         topMargin = autoSize(36)
                     }
@@ -636,15 +712,22 @@ class OneBuyListedUI(
                     linearLayout {
                         gravity = Gravity.CENTER_VERTICAL
                         numberEditText {
+                            text = "1"
                             oneNumberInputEdittext = this
                             setOnTextChangeListener { view, value ->
-                                if (value.isNullOrEmpty().not()){
-                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty().not()){
-                                        one_delisting_amount.text = NumberUtils.roundNum(value.toString().toDouble().times(onePriceInputEdittext.text.toString().toDouble()).toString(),2)
+                                if (value.isNullOrEmpty().not()) {
+                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
+                                            .not()
+                                    ) {
+                                        one_delisting_amount.text = NumberUtils.roundNum(
+                                            value.toString().toDouble().times(
+                                                onePriceInputEdittext.text.toString().toDouble()
+                                            ).toString(), 2
+                                        )
                                     }
                                 }
                             }
-                        }.lparams(0, autoSize(72),1f){
+                        }.lparams(0, autoSize(72), 1f) {
                             marginEnd = autoSize(36)
                         }
 
@@ -652,20 +735,20 @@ class OneBuyListedUI(
                             text = "吨"
                             textSizeAuto = 34
                             textColorInt = R.color.rma_hint_text_color_ccc
-                        }.lparams(wrapContent, wrapContent){
+                        }.lparams(wrapContent, wrapContent) {
                             marginEnd = autoSize(36)
                         }
                     }.lparams(matchParent, autoSize(143))
 
-                    inflateLayout<SeekBar>(R.layout.main_seekbar)  {
+                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
                         min = 10
                         max = 100
                         isIndeterminate = false
                         splitTrack = false
-                        setPadding(0,0,0,0)
-                        thumb = resources.getDrawable(R.mipmap.hnxt_seekbar)
+                        setPadding(0, 0, 0, 0)
+                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
                         progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
-                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
+                        setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
                             override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
 
                             }
@@ -678,7 +761,7 @@ class OneBuyListedUI(
 
                             }
                         })
-                    }.lparams(matchParent, autoSize(46)){
+                    }.lparams(matchParent, wrapContent) {
                         marginEnd = autoSize(110)
                         topMargin = autoSize(20)
                     }
@@ -697,7 +780,7 @@ class OneBuyListedUI(
                             textSizeAuto = 29
                             textColorInt = R.color.rma_gray_color
                         }.lparams(wrapContent, wrapContent)
-                    }.lparams(matchParent, wrapContent){
+                    }.lparams(matchParent, wrapContent) {
                         marginEnd = autoSize(110)
                         topMargin = autoSize(10)
                     }
@@ -714,7 +797,7 @@ class OneBuyListedUI(
                         text = "起摘数量"
                         textSizeAuto = 34
                         textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
+                    }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(36)
                     }
                 }.lparams(autoSize(250), wrapContent)
@@ -730,7 +813,7 @@ class OneBuyListedUI(
                             hintColorStr = "#CCCCCC"
                             textSizeAuto = 31
                             textColorStr = "#333333"
-                        }.lparams(0, autoSize(132),1f) {
+                        }.lparams(0, autoSize(132), 1f) {
 
                         }
 
@@ -738,7 +821,7 @@ class OneBuyListedUI(
                             text = "吨"
                             textSizeAuto = 31
                             textColorInt = R.color.rma_black_33
-                        }.lparams(wrapContent, wrapContent){
+                        }.lparams(wrapContent, wrapContent) {
                             marginEnd = autoSize(36)
                         }
                     }.lparams(matchParent, autoSize(100))
@@ -761,17 +844,30 @@ class OneBuyListedUI(
                     text = "挂牌金额"
                     textSizeAuto = 34
                     textColorInt = R.color.rma_hint_text_color_ccc
-                }.lparams(autoSize(214), wrapContent){
+                }.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 {
@@ -779,48 +875,75 @@ class OneBuyListedUI(
                 gravity = Gravity.CENTER_VERTICAL
                 textView {
                     onThrottleFirstClick {
-                        if (onePriceInputEdittext.text.toString().isNullOrEmpty()){
+                        if (onePriceInputEdittext.text.toString().isNullOrEmpty()) {
                             ToastUtils.showLong("请输入挂牌价格")
                             return@onThrottleFirstClick
                         }
-                        if (onePriceInputEdittext.text.toString().toDouble() == 0.0){
+                        if (onePriceInputEdittext.text.toString().toDouble() == 0.0) {
                             ToastUtils.showLong("挂牌价格不能为零")
                             return@onThrottleFirstClick
                         }
 
-                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()){
+                        if (oneNumberInputEdittext.text.toString().isNullOrEmpty()) {
                             ToastUtils.showLong("请输入挂牌数量")
                             return@onThrottleFirstClick
                         }
-                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0){
+                        if (oneNumberInputEdittext.text.toString().toDouble() == 0.0) {
                             ToastUtils.showLong("挂牌数量不能为零")
                             return@onThrottleFirstClick
                         }
-
-                        viewModel.requeryWRListingOrderReq(
-                            TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
-                            WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
-                            PriceDisplayMode = 1,
-                            CanBargain = 0,
-                            ApplyID = 0,
-                            CanPart = 1,
-                            HasWr = 1,
-                            WRStandardID = data.wrstandardid?.toInt() ?: 0
-                        ){
-                            viewModel.controlDialogDisappear.postValue(true)
+                        if (type == "1") {
+                            viewModel.requeryWRListingOrderReq(
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
+                                PriceDisplayMode = 1,
+                                CanBargain = 0,
+                                ApplyID = 0,
+                                CanPart = 1,
+                                HasWr = 1,
+                                WRStandardID = data.wrstandardid?.toInt() ?: 0
+                            ) {
+                                viewModel.controlDialogDisappear.postValue(true)
+                            }
+                        } else {
+                            viewModel.requeryWRListingOrderReq(
+                                TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
+                                WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 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,
+                                PriceDisplayMode = 1,
+                                CanBargain = 0,
+                                ApplyID = 0,
+                                CanPart = 1,
+                                HasWr = 0,
+                                WRStandardID = data.wrstandardid?.toInt() ?: 0
+                            ) {
+                                viewModel.controlDialogDisappear.postValue(true)
+                            }
                         }
+
                     }
                     gravity = Gravity.CENTER
                     backgroundResource = R.drawable.qhj_main_blue_bg
@@ -848,7 +971,7 @@ class OneBuyListedUI(
             }
         }
 
-        fun check() : Boolean{
+        fun check(): Boolean {
 
 
             return true

+ 55 - 24
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/SelectFincningDialog.kt

@@ -4,8 +4,10 @@ import android.graphics.Color
 import android.view.Gravity
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.FaProductDetailData
 import cn.muchinfo.rma.global.data.OrderQuoteData
 import cn.muchinfo.rma.global.data.OrderQuoteDetailData
+import cn.muchinfo.rma.global.toPercentage
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.future.trade.itemView
@@ -26,7 +28,7 @@ fun AppCompatActivity.SelectFincningDialog(
     lateinit var swipeToLayout: SwipeToLoadLayout
     lateinit var statusLayout: StatusLayout
 
-    val selectFincningAdapter: BaseAdapter<String, SelectFincningViewHolder> =
+    val selectFincningAdapter: BaseAdapter<FaProductDetailData, SelectFincningViewHolder> =
         BaseAdapter { _, _ ->
             SelectFincningViewHolder(
                 activity,
@@ -37,11 +39,19 @@ fun AppCompatActivity.SelectFincningDialog(
     return createCustomDialog(cancelable = false) { dialog ->
         backgroundColor = Color.parseColor("#5f000000")
         verticalLayout {
-            viewModel.getFinancingSelectData()
+            viewModel.slectfinancingData.bindOptional(context){
+                if (it?.accountid.isNullOrEmpty().not()){
+                    dialog.dismiss()
+                }
+            }
             linearLayout {
+                background = resources.getDrawable(R.color.white)
                 gravity = Gravity.CENTER_VERTICAL
                 imageView {
-                    imageResource = R.mipmap.orange_del
+                    onThrottleFirstClick {
+                        dialog.dismiss()
+                    }
+                    imageResource = R.mipmap.rydz_close_icon
                 }.lparams(autoSize(46), autoSize(46)){
                     marginStart = autoSize(36)
                 }
@@ -64,6 +74,7 @@ fun AppCompatActivity.SelectFincningDialog(
             }.lparams(matchParent, autoSize(100))
 
             statusLayout(contentBlock = {
+                background = resources.getDrawable(R.color.white)
                 statusLayout = this
 //                bindTaskStatus(viewModule.status)
                 setRetryAction {
@@ -71,7 +82,7 @@ fun AppCompatActivity.SelectFincningDialog(
                 }
                 swipeToLoadLayout {
                     swipeToLayout = this
-                    setEnableRefresh(true)
+                    setEnableRefresh(false)
                     setEnableLoadMore(false)
                     setOnRefreshListener {
 
@@ -88,34 +99,34 @@ fun AppCompatActivity.SelectFincningDialog(
             }, emptyBlock = {
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
-
-            viewModel.financingSelectDataList.bindOptional(context) {
-                if (it?.isEmpty() == true || it?.size == 0) {
-                    statusLayout.showEmpty()
-                } else {
-                    if (swipeToLayout.getIsRefreshing()) {
-                        swipeToLayout.finishRefresh()
-                    }
-                    statusLayout.showSuccess()
-                    selectFincningAdapter.setNewData(it)
-                }
+            if (viewModel.financingSelectDataList.value?.size ?: 0 > 0){
+                statusLayout.showSuccess()
+                selectFincningAdapter.setNewData(viewModel.financingSelectDataList.value)
+            }else{
+                statusLayout.showEmpty()
             }
+
         }.lparams(matchParent, matchParent){
             topMargin = autoSize(120)
         }
     }
 }
 
-class SelectFincningViewHolder(private val activity: AppCompatActivity,private val viewModel: BusinessHallViewModel) : BaseViewHolder<String>(activity){
+class SelectFincningViewHolder(private val activity: AppCompatActivity,private val viewModel: BusinessHallViewModel) : BaseViewHolder<FaProductDetailData>(activity){
 
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
     override fun _FrameLayout.createContentView() {
         verticalLayout {
+            onThrottleFirstClick {
+                viewModel.slectfinancingData.postValue(data.value)
+            }
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 textView {
-                    text = "铜供应链金融"
+                    data.bindOptional(context){
+                        text = it?.username
+                    }
                     textSizeAuto = 34
                     textColorInt = R.color.rma_black_33
                 }.lparams(wrapContent, wrapContent){
@@ -125,7 +136,11 @@ class SelectFincningViewHolder(private val activity: AppCompatActivity,private v
                 emptyView()
 
                 textView {
-                    text = "放款快"
+                    data.bindOptional(context){
+                        if (it?.isautoloan == "1"){
+                            text = "放款快"
+                        }
+                    }
                     textSizeAuto = 32
                     textColorInt = R.color.rma_green_color
                 }.lparams(wrapContent, wrapContent){
@@ -137,7 +152,9 @@ class SelectFincningViewHolder(private val activity: AppCompatActivity,private v
                 verticalLayout {
                     gravity = Gravity.LEFT
                     textView {
-                        text = "铜杆帮你采"
+                        data.bindOptional(context){
+                            text = it?.productname
+                        }
                         textSizeAuto = 32
                         textColorInt = R.color.buy_hall_color
                     }.lparams(wrapContent, wrapContent){
@@ -157,7 +174,9 @@ class SelectFincningViewHolder(private val activity: AppCompatActivity,private v
                 verticalLayout {
                     gravity = Gravity.CENTER_HORIZONTAL
                     textView {
-                        text = "90天"
+                        data.bindOptional(context){
+                            text = it?.financingdays
+                        }
                         textSizeAuto = 32
                         textColorInt = R.color.rma_black_33
                     }.lparams(wrapContent, wrapContent){
@@ -177,7 +196,9 @@ class SelectFincningViewHolder(private val activity: AppCompatActivity,private v
                 verticalLayout {
                     gravity = Gravity.CENTER_HORIZONTAL
                     textView {
-                        text = "30%"
+                        data.bindOptional(context){
+                            text = it?.marginratio?.toPercentage()
+                        }
                         textSizeAuto = 32
                         textColorInt = R.color.rma_black_33
                     }.lparams(wrapContent, wrapContent){
@@ -197,7 +218,9 @@ class SelectFincningViewHolder(private val activity: AppCompatActivity,private v
                 verticalLayout {
                     gravity = Gravity.CENTER_HORIZONTAL
                     textView {
-                        text = "10%"
+                       data.bindOptional(context){
+                            text = it?.interestratemode?.toPercentage()
+                        }
                         textSizeAuto = 32
                         textColorInt = R.color.rma_black_33
                     }.lparams(wrapContent, wrapContent){
@@ -217,7 +240,13 @@ class SelectFincningViewHolder(private val activity: AppCompatActivity,private v
                 verticalLayout {
                     gravity = Gravity.RIGHT
                     textView {
-                        text = "日结"
+                        data.bindOptional(context){
+                            if (it?.interestsettlemode == "1"){
+                                text = "日结"
+                            }else{
+                                text = "月结"
+                            }
+                        }
                         textSizeAuto = 32
                         textColorInt = R.color.rma_black_33
                     }.lparams(wrapContent, wrapContent){
@@ -226,7 +255,9 @@ class SelectFincningViewHolder(private val activity: AppCompatActivity,private v
                     }
 
                     textView {
-                        text = "1天起息"
+                        data.bindOptional(context){
+                            text = it?.interestminlen + "天起息"
+                        }
                         textSizeAuto = 32
                         textColorInt = R.color.rma_black_33
                     }.lparams(wrapContent, wrapContent){

+ 43 - 31
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseReceiptFragment.kt

@@ -23,12 +23,15 @@ 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 io.reactivex.Flowable
+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
+import java.util.concurrent.TimeUnit
 
 /**
  * 仓单贸易报价牌
@@ -39,9 +42,6 @@ class WarehouseReceiptFragment : BaseFragment<WarehouseReceiptViewModel>(){
     var selectedTabIndex: Int = 0
     private lateinit var viewPager: ViewPager
 
-
-
-
     //一口价报价牌
     private val onePriceUI by lazy { OnePriceUI(this,viewModel) }
 
@@ -57,6 +57,8 @@ class WarehouseReceiptFragment : BaseFragment<WarehouseReceiptViewModel>(){
     //暂存的页面组
     private val uiList : ArrayList<_FrameLayout> = arrayListOf()
 
+    private lateinit var mdDisposable : Disposable
+
     fun initMenuData(){
 
         newTabsArray.add("一口价")
@@ -125,6 +127,15 @@ class WarehouseReceiptFragment : BaseFragment<WarehouseReceiptViewModel>(){
         savedInstanceState: Bundle?
     ): View? {
         initMenuData()
+        mdDisposable = Flowable.interval(5, 10, TimeUnit.SECONDS)
+            .doOnNext {
+                if (selectedTabIndex == 0){
+                    viewModel.queryOneOrderQuote()
+                }else{
+                    viewModel.queryFloatOrderQuote("")
+                }
+            }.subscribe()
+        // 销毁 mdDisposable.dispose();   这个是销毁
 
         return UI {
 
@@ -425,7 +436,7 @@ class FloatingPriceUI(private val fragment : Fragment,private val viewModel: War
 //                                }
 //                                topAdapter.setDatas(titleStringList)
 //                            }
-                        topAdapter.setDatas(arrayListOf("卖价","卖量","买价","买量","期货合约","仓库","交收月"))
+                        topAdapter.setDatas(arrayListOf("卖基差","卖量","买基差","买量","期货合约","仓库","交收月"))
                     }
                 }.lparams(matchParent, matchParent)
             }.lparams(matchParent, autoSize(100))
@@ -441,19 +452,20 @@ class FloatingPriceUI(private val fragment : Fragment,private val viewModel: War
                     setEnableRefresh(true)
                     setEnableLoadMore(false)
                     setOnRefreshListener {
-                        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)
-                            }
-                        }
+                        viewModel.queryFloatOrderQuote("")
+//                        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)
@@ -485,20 +497,20 @@ class FloatingPriceUI(private val fragment : Fragment,private val viewModel: War
                                 // 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)
-                                            }
-                                        }
-                                    }
+//                                    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)
+//                                            }
+//                                        }
+//                                    }
                                 }
                             }
                         })

+ 10 - 9
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseReceiptViewModel.kt

@@ -48,15 +48,16 @@ class WarehouseReceiptViewModel : BaseViewModel(){
         MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){isSuccess, respData, error ->
             if (isSuccess){
                 floatProceDataList.postValue(respData)
-                if (respData?.size ?: 0 > 10){
-                    queryQuoteDay(tag,0,10,respData ?: arrayListOf()){isCompleted, err ->
-
-                    }
-                }else{
-                    queryQuoteDay(tag,0,respData?.size ?: 0,respData ?: arrayListOf()){isCompleted, err ->
-
-                    }
-                }
+                //说是不订阅行情,靠轮询10秒查
+//                if (respData?.size ?: 0 > 10){
+//                    queryQuoteDay(tag,0,10,respData ?: arrayListOf()){isCompleted, err ->
+//
+//                    }
+//                }else{
+//                    queryQuoteDay(tag,0,respData?.size ?: 0,respData ?: arrayListOf()){isCompleted, err ->
+//
+//                    }
+//                }
             }
         }
     }

+ 16 - 38
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/floata/FloatPriceAdapter.java

@@ -106,51 +106,29 @@ public class FloatPriceAdapter extends RecyclerView.Adapter<FloatPriceAdapter.It
         //获取盘面信息
         QuoteDayData quoteDayData = null;//当前商品的盘面信息(有用的只有买一卖一价即回购销售价,其他信息用关联商品的)
 
-        List<GoodsInfoAndQuotes> quotesList = GlobalDataCollection.Companion.getInstance().getGoodsInfoAndQuotesList();//获取盘面信息列表
-        for (int j = 0;j < quotesList.size();j++){
-            if (data.getGoodscode().equals(quotesList.get(j).getOutgoodscode())){
-                quoteDayData = quotesList.get(j).getQuoteDayData();//赋值当前商品的盘面信息
-            }
-        }
-        //卖
+//        List<GoodsInfoAndQuotes> quotesList = GlobalDataCollection.Companion.getInstance().getGoodsInfoAndQuotesList();//获取盘面信息列表
+//        for (int j = 0;j < quotesList.size();j++){
+//            if (data.getGoodscode().equals(quotesList.get(j).getOutgoodscode())){
+//                quoteDayData = quotesList.get(j).getQuoteDayData();//赋值当前商品的盘面信息
+//            }
+//        }
+        //卖基差
         QHjRightData sellPriceData = new QHjRightData();
+        sellPriceData.setValue(data.getSellpricemove());
+        sellPriceData.setColorType("1");
         //卖量
         QHjRightData sellNumData = new QHjRightData();
-        //买价
+        sellNumData.setValue(data.getSellqty());
+        sellNumData.setColorType("1");
+        //买基差
         QHjRightData buyPriceData = new QHjRightData();
+        buyPriceData.setValue(data.getBuypricemove());
+        buyPriceData.setColorType("1");
         //买量
         QHjRightData buyNumData = new QHjRightData();
+        buyNumData.setValue(data.getBuyqty());
+        buyNumData.setColorType("1");
 
-        if (quoteDayData == null || quoteDayData.getAsk() == 0.0){
-            sellPriceData.setValue(data.getSellprice());
-            sellPriceData.setColorType("1");
-        }else {
-            sellPriceData.setValue(NumberUtils.roundNum(quoteDayData.getAsk(),2));
-            sellPriceData.setColorType("1");
-        }
-
-        if (quoteDayData == null || quoteDayData.getAskvolume() == 0.0){
-            sellNumData.setValue(data.getSellqty());
-            sellNumData.setColorType("1");
-        }else {
-            sellNumData.setValue(NumberUtils.roundNum(quoteDayData.getAskvolume(),2));
-            sellNumData.setColorType("1");
-        }
-
-        if (quoteDayData == null || quoteDayData.getBid() == 0.0){
-            buyPriceData.setValue(data.getBuyprice());
-            buyPriceData.setColorType("1");
-        }else {
-            buyPriceData.setValue(NumberUtils.roundNum(quoteDayData.getBid(),2));
-            buyPriceData.setColorType("1");
-        }
-        if (quoteDayData == null || quoteDayData.getBidvolume() == 0.0){
-            buyNumData.setValue(data.getBuyqty());
-            buyNumData.setColorType("1");
-        }else {
-            buyNumData.setValue(NumberUtils.roundNum(quoteDayData.getBidvolume(),2));
-            buyNumData.setColorType("1");
-        }
 
         //期货合约
         QHjRightData goodsCodeData = new QHjRightData();

BIN
RMA/app/src/main/res/drawable/hnxt_seekba_1.png


+ 12 - 0
RMA/app/src/main/res/drawable/seekbar_thumb.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item>
+        <shape>
+            <size
+                android:height="1dp"
+                android:width="1dp" />
+            <solid android:color="@android:color/transparent" />
+        </shape>
+    </item>
+    <item android:drawable="@drawable/hnxt_seekba_1"/>
+</layer-list>

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

@@ -22,9 +22,8 @@
                 android:layout_height="match_parent">
 
                 <TextView
-                    android:layout_marginLeft="5dp"
+
                     android:layout_gravity="center"
-                    android:layout_marginStart="7dp"
                     android:id="@+id/tv_left_title"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"

BIN
RMA/app/src/main/res/mipmap-hdpi/ic_launcher.png


BIN
RMA/app/src/main/res/mipmap-mdpi/ic_launcher.png


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


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


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


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


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


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


BIN
RMA/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


BIN
RMA/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


+ 5 - 0
RMA/app/src/main/res/values/colors.xml

@@ -107,4 +107,9 @@
     <color name="hnst_sell_hall_top_bg_color">#E0F7EF</color>
     <color name="hnst_buy_hall_top_bg_color">#FAF1E6</color>
     <color name="hnst_line_color">#DAEDFF</color>
+
+    <color name="sell_color_bg">#8FE1C6</color>
+    <color name="sell_title_bg_color">#1DC089</color>
+    <color name="buy_color_bg">#F5E0C7</color>
+    <color name="buy_title_bg_color">#FC9618</color>
 </resources>

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff