Ver Fonte

风险管理8月11日提交代码-liu.bolan-云融大宗

Liu.bolan há 4 anos atrás
pai
commit
42f1442384
58 ficheiros alterados com 7614 adições e 473 exclusões
  1. 24 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/performance/PerformanceAdapter.kt
  2. 40 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/performance/PerformanceManager.kt
  3. 103 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/warehouse/WarehouseManager.kt
  4. 112 2
      RMA/app/src/main/java/cn/muchinfo/rma/business/warehouse/adapter/WarehouseAdapter.kt
  5. 37 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/StringUtils.kt
  6. 124 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/WrOutInApplyData.kt
  7. 9 0
      RMA/app/src/main/java/cn/muchinfo/rma/protobuf/funcode/FunCode.java
  8. 4804 198
      RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI3.java
  9. 5 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/view/MangeNumberEditText2.java
  10. 4 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  11. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureFragment.kt
  12. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/RealTimeExposureDetailsActivity.kt
  13. 36 34
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/CdysWarehouseScreeningDialog.kt
  14. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysFragment.kt
  15. 11 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysViewModel.kt
  16. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/viewholder/CdysSelectViewHolder.kt
  17. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/viewholder/CdysWrStandardFactoryItemSonViewHolder.kt
  18. 6 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/viewholder/CdysWrStandardFactoryItemViewHolder.kt
  19. 6 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/BookingWarehouseActivity.kt
  20. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/BookingWarehouseViewModel.kt
  21. 5 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/finance/FinanceManagementActivity.kt
  22. 11 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/finance/FinanceManagementDetailsActivity.kt
  23. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/finance/FinanceManagementViewModel.kt
  24. 27 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/finance/adapter/FinanceApplicationContentAdapter.java
  25. 33 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performance/PerformanceInformationActivity.kt
  26. 43 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performance/PerformanceInformationViewModel.kt
  27. 20 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performance/adapter/PerformanceInformationContentAdapter.java
  28. 198 10
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/SpotWareHouseActivity.kt
  29. 146 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/SpotWareHouseViewModel.kt
  30. 221 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/PickUpContentAdapter.java
  31. 10 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedActivity.kt
  32. 2 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedViewModel.kt
  33. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/NewHomeFragment.kt
  34. 4 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractActivity.kt
  35. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/inventory/inventoryaudit/InventoryAuditActivity.kt
  36. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/inventory/inventorymanager/InventoryDetailsActivity.kt
  37. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/inventory/inventorymanager/InventoryManagerActivity.kt
  38. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reportquery/ReportQueryActivity.kt
  39. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reportquery/reportdetail/ReportCommonDetailsActivity.kt
  40. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/platinumtreasure/PlatinumTreasureFragment.kt
  41. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContractDetailActivity.kt
  42. 3 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallActivity.kt
  43. 2 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallViewModel.kt
  44. 39 35
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/FloatListedDialog.kt
  45. 94 68
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/OneListedDialog.kt
  46. 14 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseReceiptFragment.kt
  47. 220 20
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseReceiptViewModel.kt
  48. 9 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseScreeningDialog.kt
  49. 31 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/dialog/ListedData.kt
  50. 1098 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/dialog/WarehouseOneListedDialog.kt
  51. 9 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/floata/FloatPriceAdapter.java
  52. 16 10
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/one/OnePriceAdapter.java
  53. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/viewholder/WarehouseSelectViewHolder.kt
  54. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/viewholder/WrStandardFactoryItemSonViewHolder.kt
  55. 8 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/viewholder/WrStandardFactoryItemViewHolder.kt
  56. 1 1
      RMA/app/src/main/res/drawable/hnxt_cancel_bg.xml
  57. 1 1
      RMA/app/src/main/res/drawable/qhj_main_blue_bg.xml
  58. 2 2
      RMA/app/src/main/res/layout/spot_warehouse_layout_item_content.xml

+ 24 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/performance/PerformanceAdapter.kt

@@ -41,6 +41,30 @@ object PerformanceAdapter {
         return Packet50(FunCode.PerformanceActivateReq, arrayOutputStream.toByteArray())
     }
 
+    /**
+     * 履约激活请求 即是交收功能确认应答
+     * @param packet50 Packet50
+     * @return Triple<Boolean, Error?, ErmcpMI1.SpotContractOperateRsp?>
+     */
+    fun analysisPerformanceActivateRsp(packet50: Packet50): Triple<Boolean, Error?, PerformanceMI1.PerformanceActivateRsp?> {
+        return try {
+            val resultRsp = PerformanceMI1.PerformanceActivateRsp.parseFrom(packet50.content)
+            if (resultRsp.retCode == 0) {
+                // 操作成功
+                Triple(true, null, resultRsp)
+            }else if (resultRsp.retCode == -1){
+                // 操作失败
+                Triple(false, Error(resultRsp.retDesc), null)
+            } else {
+                // 操作失败
+                Triple(false, Error(ErrorMessageUtils.getErrorString(resultRsp.retCode)), null)
+            }
+        } catch (e: Exception) {
+            // 操作失败
+            Triple(false, Error("装箱失败"), null)
+        }
+    }
+
 
     //履约手动确认请求
     fun getPerformanceManualConfirmReqInfo(

+ 40 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/performance/PerformanceManager.kt

@@ -22,6 +22,46 @@ import java.lang.Exception
 class PerformanceManager {
 
     /**
+     * 履约激活请求 即是交收功能
+     * @param marketid Int
+     * @param PerformancePlanID Long
+     * @param ApplyAccountID Long
+     * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun PerformanceActivateReq(
+        marketid : Int = 0,//市场id
+        PerformancePlanID : Long = 0,//履约计划ID
+        ApplyAccountID : Long = 0,//发起方账号ID
+        callback: (isCompleted: Boolean, err: Error?) -> Unit
+    ){
+        val tradeSocketManager = MyApplication.getInstance()?.tradeSocketManager.guard {
+            callback(false, Error("交易链路未初始化"))
+            return
+        }
+
+        val reqPacket = PerformanceAdapter.getPerformanceActivateReqInfo(
+            marketid, PerformancePlanID, ApplyAccountID
+        )
+
+        tradeSocketManager.send(
+            reqPacket,
+            FunCode.PerformanceActivateRsp,
+            object : Callback<Packet50> {
+                override fun onSuccess(rsp: Packet50?) {
+                    val rst = PerformanceAdapter.analysisPerformanceActivateRsp(rsp!!)
+                    callback(rst.first, rst.second)
+                }
+
+                override fun onFail(err: Error?) {
+                    // 发送数据失败
+                    callback(false, err)
+                }
+
+            }
+        )
+    }
+
+    /**
      * 查询履约信息详情
      * @param params Map<String, String>
      * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<BusinessData>?, [@kotlin.ParameterName] Error?, Unit>

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

@@ -128,6 +128,36 @@ class WarehouseManager {
 
 
     /**
+     *  查询提货申请
+     * @param params Map<String, String>
+     * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<BusinessData>?, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryWrOutInApply(
+        params: Map<String, String>,
+        responseBack: (isSuccess: Boolean, respData: List<WrOutInApplyData>?, error: Error?) -> Unit
+    ) {
+        MyOkHttpUtils().query(
+            URL = SPUtils.getInstance()
+                .getString(Constant.goCommonSearchUrl) + "/WrTrade2/QueryWrOutInApply",
+            params = params,
+            type = "1",
+            callback = object : ResponseCallback<BaseResult<List<WrOutInApplyData>>>() {
+                override fun onResponse(
+                    response: BaseResult<List<WrOutInApplyData>>?,
+                    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>
@@ -482,6 +512,7 @@ class WarehouseManager {
         HasWr: Int = 0,//是否有仓单-0:没有仓单 1:有仓单
         WRStandardID: Int = 0,//现货品种ID
         DelistMinQty : Long = 0,//起摘数量
+        FactoryItems : List<WarehouseTradeMI1.DGFactoryItems>,//要素类型明细集合(没有仓单要素ID填写)
         callback: (isCompleted: Boolean, err: Error?) -> Unit
     ) {
         val tradeSocketManager = MyApplication.getInstance()?.tradeSocketManager.guard {
@@ -518,7 +549,8 @@ class WarehouseManager {
             DeliveryMonth,
             HasWr,
             WRStandardID,
-            DelistMinQty
+            DelistMinQty,
+            FactoryItems
         )
 
         tradeSocketManager.send(
@@ -1018,6 +1050,76 @@ class WarehouseManager {
     }
 
     /**
+     * 仓单出库撤回请求
+     * @param applyid Long
+     * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun WROutCancelReq(
+        applyid : Long,//申请Id
+        callback: (isCompleted: Boolean, err: Error?) -> Unit
+    ){
+        val tradeSocketManager = MyApplication.getInstance()?.tradeSocketManager.guard {
+            callback(false, Error("交易链路未初始化"))
+            return
+        }
+        val reqPacket = WarehouseAdapter.getWROutCancelReqInfo(
+            applyid
+        )
+
+        tradeSocketManager.send(
+            reqPacket,
+            FunCode.WROutCancelRsp,
+            object : Callback<Packet50> {
+                override fun onSuccess(rsp: Packet50?) {
+                    val rst = WarehouseAdapter.analysisWROutCancelRsp(rsp!!)
+                    callback(rst.first, rst.second)
+                }
+
+                override fun onFail(err: Error?) {
+                    // 发送数据失败
+                    callback(false, err)
+                }
+
+            }
+        )
+    }
+
+    /**
+     * 仓单出库确认请求
+     * @param applyid Long
+     * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun WROutConfirmReq(
+        applyid : Long,//申请Id
+        callback: (isCompleted: Boolean, err: Error?) -> Unit
+    ){
+        val tradeSocketManager = MyApplication.getInstance()?.tradeSocketManager.guard {
+            callback(false, Error("交易链路未初始化"))
+            return
+        }
+        val reqPacket = WarehouseAdapter.getWROutConfirmReqInfo(
+            applyid
+        )
+
+        tradeSocketManager.send(
+            reqPacket,
+            FunCode.WROutConfirmRsp,
+            object : Callback<Packet50> {
+                override fun onSuccess(rsp: Packet50?) {
+                    val rst = WarehouseAdapter.analysisWROutConfirmRsp(rsp!!)
+                    callback(rst.first, rst.second)
+                }
+
+                override fun onFail(err: Error?) {
+                    // 发送数据失败
+                    callback(false, err)
+                }
+
+            }
+        )
+    }
+
+    /**
      * 仓库出库请求
      */
     fun wROutApplyReq(

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

@@ -15,6 +15,113 @@ import java.util.*
 object WarehouseAdapter {
 
     /**
+     * 仓单出库撤回请求
+     * @param applyid Long
+     */
+    fun getWROutCancelReqInfo(
+        applyid : Long//申请Id
+    ) : Packet50{
+        val builder = ManageServiceMI3.WROutCancelReq.newBuilder()
+        val loginInfo = GlobalDataCollection.instance?.loginRsp!!
+        builder.setHeader(
+            MessageHeadModel.getHead(
+                FunCode.WROutCancelReq,
+                loginInfo.userID,
+                0,
+                0,
+                17201
+            )
+        )
+        builder.applyid = applyid
+        builder.operatesrc = 2
+        builder.operateid = loginInfo.loginID
+        val arrayOutputStream = ByteArrayOutputStream()
+        builder.build().writeTo(arrayOutputStream)
+        return Packet50(FunCode.WROutCancelReq, arrayOutputStream.toByteArray())
+    }
+
+    /**
+     * 仓单出库撤回响应
+     * @param packet50 Packet50
+     * @return Triple<Boolean, Error?, ManageServiceMI2.ERMCPAreaInOutStockApplyRsp?>
+     */
+    fun analysisWROutCancelRsp(packet50: Packet50) : Triple<Boolean, Error?, ManageServiceMI3.WROutCancelRsp?> {
+
+        return try {
+            val resultRsp = ManageServiceMI3.WROutCancelRsp.parseFrom(packet50.content)
+            if (resultRsp.retCode == 0) {
+                // 操作成功
+                Triple(true, null, resultRsp)
+            } else {
+                if (resultRsp.retCode == -1){
+                    // 操作失败
+                    Triple(false, Error(resultRsp.retDesc), null)
+                }else{
+                    // 操作失败
+                    Triple(false, Error(ErrorMessageUtils.getErrorString(resultRsp.retCode)), null)
+                }
+
+            }
+        } catch (e: Exception) {
+            // 操作失败
+            Triple(false, Error("装箱失败"), null)
+        }
+    }
+
+    /**
+     *仓单出库确认请求
+     */
+    fun getWROutConfirmReqInfo(
+        applyid : Long//申请Id
+    ) : Packet50{
+        val builder = ManageServiceMI3.WROutConfirmReq.newBuilder()
+        val loginInfo = GlobalDataCollection.instance?.loginRsp!!
+        builder.setHeader(
+            MessageHeadModel.getHead(
+                FunCode.WROutConfirmReq,
+                loginInfo.userID,
+                0,
+                0,
+                17201
+            )
+        )
+        builder.applyid = applyid
+        builder.operatesrc = 2
+        builder.operateid = loginInfo.loginID
+        val arrayOutputStream = ByteArrayOutputStream()
+        builder.build().writeTo(arrayOutputStream)
+        return Packet50(FunCode.WROutConfirmReq, arrayOutputStream.toByteArray())
+    }
+
+    /**
+     * 仓单出库确认响应
+     * @param packet50 Packet50
+     * @return Triple<Boolean, Error?, ManageServiceMI2.ERMCPAreaInOutStockApplyRsp?>
+     */
+    fun analysisWROutConfirmRsp(packet50: Packet50) : Triple<Boolean, Error?, ManageServiceMI3.WROutConfirmRsp?> {
+
+        return try {
+            val resultRsp = ManageServiceMI3.WROutConfirmRsp.parseFrom(packet50.content)
+            if (resultRsp.retCode == 0) {
+                // 操作成功
+                Triple(true, null, resultRsp)
+            } else {
+                if (resultRsp.retCode == -1){
+                    // 操作失败
+                    Triple(false, Error(resultRsp.retDesc), null)
+                }else{
+                    // 操作失败
+                    Triple(false, Error(ErrorMessageUtils.getErrorString(resultRsp.retCode)), null)
+                }
+
+            }
+        } catch (e: Exception) {
+            // 操作失败
+            Triple(false, Error("装箱失败"), null)
+        }
+    }
+
+    /**
      * 仓单出库申请
      */
     fun getWROutApplyReqInfo(
@@ -218,8 +325,8 @@ object WarehouseAdapter {
         DeliveryMonth : String = "",//交收月
         HasWr : Int = 0,//是否有仓单-0:没有仓单 1:有仓单
         WRStandardID : Int = 0,//现货品种ID
-        DelistMinQty : Long = 0//起摘数量
-//        FactoryItems : WarehouseTradeMI1.DGFactoryItems//要素类型明细集合(没有仓单要素ID填写)
+        DelistMinQty : Long = 0,//起摘数量
+        FactoryItems : List<WarehouseTradeMI1.DGFactoryItems>//要素类型明细集合(没有仓单要素ID填写)
     ) : Packet50{
         val builder = WarehouseTradeMI1.HdWROrderReq.newBuilder()
         val loginInfo = GlobalDataCollection.instance?.loginRsp!!
@@ -237,6 +344,9 @@ object WarehouseAdapter {
             builder.ladingBillId = LadingBillId
             builder.subNum = SubNum
         }
+        if (WRFactorTypeId == 0L){
+            builder.addAllFactoryItems(FactoryItems)
+        }
         builder.wrFactorTypeId = WRFactorTypeId
         builder.buyOrSell = BuyOrSell
         builder.tradeDate = TradeDate

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

@@ -305,6 +305,43 @@ fun String.inventoryapplystatus() : String{
 }
 
 /**
+ * 出入库状态
+ */
+fun String.pickupapplystatus() : String{
+    if (this.isNullOrEmpty()){
+        return "--"
+    }
+    var str = ""
+    when {
+        this == "1" -> {
+            str = "待初审"
+        }
+        this == "2" -> {
+            str = "初审通过"
+        }
+        this == "3" -> {
+            str = "初审拒绝"
+        }
+        this == "4" -> {
+            str = "初审失败"
+        }
+        this == "5" -> {
+            str = "复审通过"
+        }
+        this == "6" -> {
+            str = "复审拒绝"
+        }
+        this == "7" -> {
+            str = "复审失败"
+        }
+        this == "8" -> {
+            str = "已撤销"
+        }
+    }
+    return str
+}
+
+/**
  * 融资管理申请单状态
  */
 fun String.applystatus() : String{

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

@@ -0,0 +1,124 @@
+package cn.muchinfo.rma.global.data
+
+import android.os.Parcel
+import android.os.Parcelable
+import com.google.gson.annotations.SerializedName
+
+/**
+ * 提货申请
+ */
+data class WrOutInApplyData(
+    @SerializedName("applyid")
+    val applyid : String? = "",//申请单id
+    @SerializedName("applystatus")
+    val applystatus : String? = "",//申请状态 - 1:待初审 2:初审通过 3:初审拒绝 4:初审失败 5复审通过 6:复审拒绝 7:复审失败 8:已撤销
+    @SerializedName("applytime")
+    val applytime : String? = "",//申请时间
+    @SerializedName("applytype")
+    val applytype : String? = "",//申请类型 - 1:预约入库 2:预约出库 3:入库注册 4:出库注销
+    @SerializedName("deliverygoodscode")
+    val deliverygoodscode : String? = "",//品种代码
+    @SerializedName("deliverygoodsid")
+    val deliverygoodsid: String? = "",//品种ID
+    @SerializedName("deliverygoodsname")
+    val deliverygoodsname: String? = "",//品种名称
+    @SerializedName("enumdicname")
+    val enumdicname : String? = "",//单位名称
+    @SerializedName("expresscompany")
+    val expresscompany: String? = "",//物流公司
+    @SerializedName("expressnum")
+    val expressnum: String? = "",//物流单号
+    @SerializedName("minivalue")
+    val minivalue:  String? = "",//现货商品最小变动值
+    @SerializedName("optioncompare")
+    val optioncompare: String? = "",//选择项比较串【{选择项ID}+{冒号}+选择项值 } ,逗号分隔,头尾加逗号】-- 所有选择项拼接,用于比较
+    @SerializedName("qty")
+    val qty: String? = "",//数量
+    @SerializedName("userid")
+    val userid: String? = "",//用户id
+    @SerializedName("warehouseid")
+    val warehouseid: String? = "",//仓库ID
+    @SerializedName("warehousename")
+    val warehousename : String? = "",//仓库名称
+    @SerializedName("wrfactortypeid")
+    val wrfactortypeid : String? = "",//仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
+    @SerializedName("wrfactortypename")
+    val wrfactortypename: String? = "",//仓单要素类型名称(选择项要素的名称合并显示,逗号分隔)
+    @SerializedName("wrstandardcode")
+    val wrstandardcode: String? = "",//现货商品代码
+    @SerializedName("wrstandardid")
+    val wrstandardid: String? = "",//现货商品ID
+    @SerializedName("wrstandardname")
+    val wrstandardname: String? = "",//商品名称
+    @SerializedName("wrtypename")
+    val wrtypename: String? = "",//商品
+    var rightData : List<String?>? = arrayListOf()//组装的右侧数据
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.createStringArrayList()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(applyid)
+        parcel.writeString(applystatus)
+        parcel.writeString(applytime)
+        parcel.writeString(applytype)
+        parcel.writeString(deliverygoodscode)
+        parcel.writeString(deliverygoodsid)
+        parcel.writeString(deliverygoodsname)
+        parcel.writeString(enumdicname)
+        parcel.writeString(expresscompany)
+        parcel.writeString(expressnum)
+        parcel.writeString(minivalue)
+        parcel.writeString(optioncompare)
+        parcel.writeString(qty)
+        parcel.writeString(userid)
+        parcel.writeString(warehouseid)
+        parcel.writeString(warehousename)
+        parcel.writeString(wrfactortypeid)
+        parcel.writeString(wrfactortypename)
+        parcel.writeString(wrstandardcode)
+        parcel.writeString(wrstandardid)
+        parcel.writeString(wrstandardname)
+        parcel.writeString(wrtypename)
+        parcel.writeStringList(rightData)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<WrOutInApplyData> {
+        override fun createFromParcel(parcel: Parcel): WrOutInApplyData {
+            return WrOutInApplyData(parcel)
+        }
+
+        override fun newArray(size: Int): Array<WrOutInApplyData?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}

+ 9 - 0
RMA/app/src/main/java/cn/muchinfo/rma/protobuf/funcode/FunCode.java

@@ -365,6 +365,15 @@ public class FunCode {
     //履约激活应答
     public static final int PerformanceActivateRsp = 1310742;
 
+    //仓单出库撤回请求
+    public static final int WROutCancelReq = 1900743;
+    //仓单出库撤回响应
+    public static final int WROutCancelRsp = 1900744;
+    //仓单出库确认请求
+    public static final int WROutConfirmReq = 1900739;
+    //仓单出库确认响应
+    public static final int WROutConfirmRsp = 1900740;
+
     /**
      * 交易委托请求(196639)
      */

Diff do ficheiro suprimidas por serem muito extensas
+ 4804 - 198
RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI3.java


+ 5 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/view/MangeNumberEditText2.java

@@ -104,12 +104,17 @@ public class MangeNumberEditText2 extends FrameLayout implements View.OnClickLis
         init();
     }
 
+    public void setTextColor(int color){
+        p_number.setTextColor(getResources().getColor(color));
+    }
+
     private void init1(AttributeSet attrs, int defStyleAttr) {
         TypedArray a = mContext.getTheme().obtainStyledAttributes(attrs, R.styleable.MangeNumberEditText, defStyleAttr, 0);
         String digits = a.getString(R.styleable.MangeNumberEditText_digits);
         if (digits != null) {
             p_number.setKeyListener(DigitsKeyListener.getInstance(digits));
         }
+
     }
 
     public void setOnTextChangeListener(OnTextChangeListener onTextChangeListener) {

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

@@ -10,13 +10,13 @@ object Constant {
 //    const val baseurl = "http://103.40.249.123:8280/cfg?key=mtp_20"//千海金外盘
 //    const val baseurl = "http://103.40.249.127:28280/cfg?key=mtp_20"
 //    const val baseurl = "http://192.168.30.125:8080/cfg?key=test_125"
-    const val baseurl = "http://192.168.31.114:8080/cfg?key=test_114" // 企业风管 123123
+//    const val baseurl = "http://192.168.31.114:8080/cfg?key=test_114" // 企业风管 123123
 //        const val baseurl = "http://192.168.30.125:8080/cfg?key=test_125"//李倩千海金 18611112222
 //    const val baseurl = "http://192.168.31.220:8080/cfg?key=test_220"//李倩千海金 18611112222
 //     const val baseurl = "http://192.168.31.101:8080/cfg?key=test_101"//李倩千海金 18611112222
 
 //     const val baseurl = "http://192.168.31.107:8080/cfg?key=test_107"//李倩千海金 18611112222
-//      const val baseurl = "http://192.168.30.211:8080/cfg?key=test_211"// 瑶姐 130000000001 123456
+      const val baseurl = "http://192.168.30.211:8080/cfg?key=test_211"// 瑶姐 130000000001 123456
 //          const val baseurl = "http://192.168.31.107:8080/cfg?key=test_107"// 瑶姐 千海金 13760119855
 
 //    const val baseurl = "http://192.168.31.175:8080/cfg?key=test_175" // 8888  123123
@@ -267,6 +267,8 @@ object Constant {
     const val table_mobile_hnst_xhcd_cj = "table_mobile_hnst_xhcd_cj"
     /** 华南顺通-现货仓单_指定成交 **/
     const val table_mobile_hnst_xhcd_zdcj = "table_mobile_hnst_xhcd_zdcj"
+    /** 华南顺通-现货仓单-提货 **/
+    const val table_mobile_hnst_xhcd_crk = "table_mobile_hnst_xhcd_crk"
     /** 华南顺通-现货仓单-明细  **/
     const val table_mobile_hnst_xhcd_mx = "table_mobile_hnst_xhcd_mx"
     /** 云融大宗-融资管理-申请单 **/

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

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

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

@@ -91,7 +91,7 @@ class RealTimeExposureDetailsActivity : BaseActivity<ExposureViewModel>() , Expo
                         }.lparams(wrapContent, wrapContent) {
                             marginStart = autoSize(30)
                         }
-                    }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                    }.lparams(autoSize(250), autoSize(100))
 
                     inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                         horScrollview = this

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

@@ -130,39 +130,39 @@ fun AppCompatActivity.CdysScreeningDialog(
                                 }
                             }.lparams(matchParent, autoSize(80))
 
-                             linearLayout {
-                                 onThrottleFirstClick {
-                                     activity.showDataSelectDialog(type = "2") {
-                                         tradedatetextview.text = this
-                                     }
-                                 }
-                                 backgroundResource = R.drawable.rma_time_click_bg
-                                 gravity = Gravity.CENTER_VERTICAL
-                                 textView {
-                                     tradedatetextview = this
-                                     text = TimeUtils.millis2String(
-                                         TimeUtils.getNowMills().minus(86400000),
-                                         SimpleDateFormat("yyyy-MM")
-                                     )
-                                     textColorInt = R.color.rma_hint_text_color_ccc
-                                     textSizeAuto = 31
-                                 }.lparams(wrapContent, wrapContent) {
-                                     marginStart = autoSize(18)
-                                 }
-
-                                 emptyView()
-
-                                 imageView {
-                                     imageResource = R.mipmap.rma_search_by_time
-                                 }.lparams(autoSize(38), autoSize(38)){
-                                     marginEnd = autoSize(10)
-                                 }
-                                }.lparams(autoSize(420), autoSize(72)) {
-                                    topMargin = autoSize(20)
-                                    bottomMargin = autoSize(20)
-                                    marginStart = autoSize(36)
+                            linearLayout {
+                                onThrottleFirstClick {
+                                    activity.showDataSelectDialog(type = "2") {
+                                        tradedatetextview.text = this
+                                    }
+                                }
+                                backgroundResource = R.drawable.rma_time_click_bg
+                                gravity = Gravity.CENTER_VERTICAL
+                                textView {
+                                    tradedatetextview = this
+                                    text = TimeUtils.millis2String(
+                                        TimeUtils.getNowMills().minus(86400000),
+                                        SimpleDateFormat("yyyy-MM")
+                                    )
+                                    textColorInt = R.color.rma_hint_text_color_ccc
+                                    textSizeAuto = 31
+                                }.lparams(wrapContent, wrapContent) {
+                                    marginStart = autoSize(18)
                                 }
 
+                                emptyView()
+
+                                imageView {
+                                    imageResource = R.mipmap.rma_search_by_time
+                                }.lparams(autoSize(38), autoSize(38)) {
+                                    marginEnd = autoSize(10)
+                                }
+                            }.lparams(autoSize(420), autoSize(72)) {
+                                topMargin = autoSize(20)
+                                bottomMargin = autoSize(20)
+                                marginStart = autoSize(36)
+                            }
+
                             verticalLayout {
                                 if (type == "1") {
                                     visibility = View.GONE
@@ -336,9 +336,11 @@ fun AppCompatActivity.CdysScreeningDialog(
                                 ToastUtils.showLong("请选择仓库")
                                 return@onThrottleFirstClick
                             }
-                            if (viewModel.selectGoodsInfoData.value?.id.isNullOrEmpty()) {
-                                ToastUtils.showLong("请选择期货商品")
-                                return@onThrottleFirstClick
+                            if (type == "2") {
+                                if (viewModel.selectGoodsInfoData.value?.id.isNullOrEmpty()) {
+                                    ToastUtils.showLong("请选择期货商品")
+                                    return@onThrottleFirstClick
+                                }
                             }
                             if (viewModel.getSelectWarehouseOrFactoryid("2")
                                     .split(",").size < viewModel.WrStandardFactoryItemDataList.value?.size?.minus(

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

@@ -241,7 +241,7 @@ class YSOnePriceUI(private val fragment : Fragment, private val viewModel: Hnstc
                     }.lparams(wrapContent, wrapContent){
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(100f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
                 onePriceAdapter.setOnContentScrollListener(this@YSOnePriceUI)
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -402,7 +402,7 @@ class YSFloatingPriceUI(private val fragment : Fragment, private val viewModel:
                     }.lparams(wrapContent, wrapContent){
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(100f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
                 floatPriceAdapter.setOnContentScrollListener(this@YSFloatingPriceUI)
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

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

@@ -96,19 +96,24 @@ class HnstcdysViewModel : BaseViewModel(){
      * 针对仓库,要素等的item点击
      */
     fun setOnRightItemClick(
+        dgfactoryitemtypeid : String,
         dgfactoryitemid : String
     ){
         val newWrStandardFactoryItemDataList = arrayListOf<FtDeliveryGoodsDataListData>()
         WrStandardFactoryItemDataList.value?.forEach {
             val sonItemList = arrayListOf<WrStandardFactoryItem>()
-            it.itemlst?.forEach { data ->
-                if (dgfactoryitemid == data.dgfactoryitemid){
-                    sonItemList.add(data.copy(isSelect = 1))
-                }else{
-                    sonItemList.add(data.copy(isSelect = 0))
+            if (it.dgfactoryitemtypeid == dgfactoryitemtypeid){
+                it.itemlst?.forEach { data ->
+                    if (dgfactoryitemid == data.dgfactoryitemid){
+                        sonItemList.add(data.copy(isSelect = 1))
+                    }else{
+                        sonItemList.add(data.copy(isSelect = 0))
+                    }
                 }
+                newWrStandardFactoryItemDataList.add(it.copy(itemlst = sonItemList))
+            }else{
+                newWrStandardFactoryItemDataList.add(it)
             }
-            newWrStandardFactoryItemDataList.add(it.copy(itemlst = sonItemList))
         }
         WrStandardFactoryItemDataList.postValue(newWrStandardFactoryItemDataList)
     }

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

@@ -21,7 +21,7 @@ class CdysSelectViewHolder(private val activity : AppCompatActivity, private val
     override fun _FrameLayout.createContentView() {
         linearLayout {
             onThrottleFirstClick {
-                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "")
+                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "",dgfactoryitemtypeid = dgfactoryitemtypeid)
             }
             gravity = Gravity.CENTER
             textView {

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

@@ -15,14 +15,14 @@ import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import org.jetbrains.anko.*
 
 //要素子item
-class CdysWrStandardFactoryItemSonViewHolder(private val activity : AppCompatActivity, private val viewModel: HnstcdysViewModel) : BaseViewHolder<WrStandardFactoryItem>(activity){
+class CdysWrStandardFactoryItemSonViewHolder(private val activity : AppCompatActivity, private val viewModel: HnstcdysViewModel,private val dgfactoryitemtypeid : String) : BaseViewHolder<WrStandardFactoryItem>(activity){
 
     override val itemSize: IntArray = intArrayOf(autoSize(160), autoSize(72))
 
     override fun _FrameLayout.createContentView() {
         linearLayout {
             onThrottleFirstClick {
-                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "")
+                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "",dgfactoryitemtypeid = dgfactoryitemtypeid)
             }
             gravity = Gravity.CENTER
             data.bindOptional(context){

+ 6 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/viewholder/CdysWrStandardFactoryItemViewHolder.kt

@@ -2,6 +2,7 @@ package cn.muchinfo.rma.view.base.hnstcdys.viewholder
 
 import android.view.Gravity
 import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
 import androidx.recyclerview.widget.StaggeredGridLayoutManager
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.FtDeliveryGoodsDataListData
@@ -23,9 +24,7 @@ import org.jetbrains.anko.*
 class CdysWrStandardFactoryItemViewHolder(private val activity : AppCompatActivity, private val viewModel: HnstcdysViewModel) : BaseViewHolder<FtDeliveryGoodsDataListData>(activity){
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
-    //要素子item
-    private val spotCategoryAdapter: BaseAdapter<WrStandardFactoryItem, CdysWrStandardFactoryItemSonViewHolder> =
-        BaseAdapter { _, _ -> CdysWrStandardFactoryItemSonViewHolder(activity, viewModel) }
+    lateinit var recyclerView: RecyclerView
 
     override fun _FrameLayout.createContentView() {
         verticalLayout {
@@ -46,13 +45,16 @@ class CdysWrStandardFactoryItemViewHolder(private val activity : AppCompatActivi
             }.lparams(matchParent, autoSize(80))
 
             recyclerView {
+                recyclerView = this
                 val staggeredGridLayoutManager = StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)
                 layoutManager = staggeredGridLayoutManager
                 background = resources.getDrawable(R.color.white)
-                adapter = spotCategoryAdapter
             }.lparams(matchParent, wrapContent)
 
             data.bindOptional(context){
+                val spotCategoryAdapter: BaseAdapter<WrStandardFactoryItem, CdysWrStandardFactoryItemSonViewHolder> =
+                    BaseAdapter { _, _ -> CdysWrStandardFactoryItemSonViewHolder(activity, viewModel,it?.dgfactoryitemtypeid ?: "") }
+                recyclerView.adapter = spotCategoryAdapter
                 spotCategoryAdapter.setNewData(it?.itemlst)
             }
 

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

@@ -207,7 +207,7 @@ class OrderSummaryUI(private val activity : AppCompatActivity, private val viewM
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -375,7 +375,7 @@ class BookingAreCancelledUI(private val activity : AppCompatActivity,private val
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -515,7 +515,7 @@ class BookingDealUI(private val activity : AppCompatActivity,private val viewMod
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -557,10 +557,10 @@ class BookingDealUI(private val activity : AppCompatActivity,private val viewMod
                 statusLayout = this
                 swipeToLoadLayout {
                     swipeToLayout = this
-                    setEnableRefresh(false)
+                    setEnableRefresh(true)
                     setEnableLoadMore(true)
                     setOnRefreshListener {
-
+                        viewModel.querydealPosition()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
@@ -657,7 +657,7 @@ class BookingSpecifyDealUI(private val activity : AppCompatActivity,private val
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

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

@@ -126,15 +126,15 @@ class BookingWarehouseViewModel : BaseViewModel(){
             //成交价格
             newRightData.add(it.tradeprice ?: "-")
             //成交数量
-            newRightData.add(it.tradeqty ?: "-")
+            newRightData.add(it.tradeqty+ it.enumdicname)
             //金额
-            newRightData.add(it.amount ?: "-")
+            newRightData.add(NumberUtils.roundNum(it.tradeprice?.toDouble()?.times(it.tradeqty?.toDouble() ?: 0.0).toString(),2) ?: "-")
             //对手方
             newRightData.add(it.matchusername ?: "-")
             //成交时间
             newRightData.add(it.tradetime ?: "-")
             //成交单号
-            newRightData.add("--")
+            newRightData.add(it.wrtradedetailid ?: "-")
             val newData = it.copy(rightData = newRightData)
             newList.add(newData)
         }

+ 5 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/finance/FinanceManagementActivity.kt

@@ -207,17 +207,18 @@ class ApplicationUI(private val activity : AppCompatActivity, private val viewMo
             }
             linearLayout {
                 linearLayout {
+
                     gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
                     textView {//待点价头部左侧数据
                         viewModel.applyTitle.bindOptional(context) {
                             text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
                         }
                         textColorStr = "#AAAAAA"
-                        textSizeAuto = 24
+                        textSizeAuto = 29
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -356,11 +357,11 @@ class ContractUI(private val activity : AppCompatActivity, private val viewModel
                             text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
                         }
                         textColorStr = "#AAAAAA"
-                        textSizeAuto = 24
+                        textSizeAuto = 29
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

+ 11 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/finance/FinanceManagementDetailsActivity.kt

@@ -46,6 +46,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
             nestedScrollView{
                 verticalLayout {
                     linearLayout {
+                        background = resources.getDrawable(R.color.white)
                         gravity = Gravity.CENTER_VERTICAL
                         linearLayout {
                             gravity = Gravity.CENTER_VERTICAL
@@ -68,6 +69,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
                     itemView()
 
                     linearLayout {
+                        background = resources.getDrawable(R.color.white)
                         gravity = Gravity.CENTER_VERTICAL
                         linearLayout {
                             gravity = Gravity.CENTER_VERTICAL
@@ -90,6 +92,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
                     itemView()
 
                     linearLayout {
+                        background = resources.getDrawable(R.color.white)
                         gravity = Gravity.CENTER_VERTICAL
                         linearLayout {
                             gravity = Gravity.CENTER_VERTICAL
@@ -113,6 +116,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
 
                     linearLayout {
                         gravity = Gravity.CENTER_VERTICAL
+                        background = resources.getDrawable(R.color.white)
                         linearLayout {
                             gravity = Gravity.CENTER_VERTICAL
                             textView {
@@ -125,7 +129,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
                         }.lparams(autoSize(250), autoSize(120))
 
                         textView {
-                            text = data.deliverymonth
+                            text = data.deliverymonth?.isBlankString() ?: "-"
                             textSizeAuto = 34
                             textColorInt = R.color.rma_black_33
                         }.lparams(wrapContent, wrapContent)
@@ -134,6 +138,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
                     itemView()
 
                     linearLayout {
+                        background = resources.getDrawable(R.color.white)
                         gravity = Gravity.CENTER_VERTICAL
                         linearLayout {
                             gravity = Gravity.CENTER_VERTICAL
@@ -156,6 +161,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
                     itemView()
 
                     linearLayout {
+                        background = resources.getDrawable(R.color.white)
                         gravity = Gravity.CENTER_VERTICAL
                         linearLayout {
                             gravity = Gravity.CENTER_VERTICAL
@@ -178,6 +184,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
                     itemView()
 
                     linearLayout {
+                        background = resources.getDrawable(R.color.white)
                         gravity = Gravity.CENTER_VERTICAL
                         linearLayout {
                             gravity = Gravity.CENTER_VERTICAL
@@ -191,7 +198,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
                         }.lparams(autoSize(250), autoSize(120))
 
                         textView {
-                            text = data.applydate?.applystatus()
+                            text = data.applystatus?.applystatus()
                             textSizeAuto = 34
                             textColorInt = R.color.rma_black_33
                         }.lparams(wrapContent, wrapContent)
@@ -259,7 +266,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
 
                                     text = data.financingdays + "/" + data.marginratio?.toPercentage() + "/" + cost
                                     textSizeAuto = 29
-                                    textColorInt = R.color.hint_text_color
+                                    textColorInt = R.color.rma_black_33
                                 }.lparams(wrapContent, wrapContent){
                                     marginEnd = autoSize(23)
                                 }
@@ -285,7 +292,7 @@ class FinanceManagementDetailsActivity : BaseActivity<FinanceManagementViewModel
                                 textView {
                                     text = if (data.interestsettlemode == "1") {"每日"} else{"每月"} + data.interestminlen
                                     textSizeAuto = 29
-                                    textColorInt = R.color.hint_text_color
+                                    textColorInt = R.color.rma_black_33
                                 }.lparams(wrapContent, wrapContent){
                                     marginEnd = autoSize(23)
                                 }

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

@@ -114,7 +114,7 @@ class FinanceManagementViewModel : BaseViewModel(){
             //购买商品
             newRightData.add(it.productname ?: "-")
             //商品数量
-            newRightData.add(it.orderqty + it.enumdicname)
+            newRightData.add(it.orderqty ?: "-")
             //借款天数
             newRightData.add(it.financingdays ?: "-")
             //保证金

+ 27 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/finance/adapter/FinanceApplicationContentAdapter.java

@@ -86,10 +86,28 @@ public class FinanceApplicationContentAdapter extends RecyclerView.Adapter<Finan
     public void onBindViewHolder(@NonNull final ItemViewHolder itemViewHolder, int i) {
         this.index = i;
         WrFinanceBuyApplyData data = datas.get(i);
+        //类型 暂时只有一个状态叫融资回购
+        itemViewHolder.tvLeftTitle.setText("融资回购");
+
+        //状态
+        if (data.getApplystatus().equals("1")){
+            itemViewHolder.tv_left_bottom_title.setText("待审核");
+        }else if (data.getApplystatus().equals("2")){
+            itemViewHolder.tv_left_bottom_title.setText("审核中");
+        }else if (data.getApplystatus().equals("3")){
+            itemViewHolder.tv_left_bottom_title.setText("审核通过");
+        }else if (data.getApplystatus().equals("4")){
+            itemViewHolder.tv_left_bottom_title.setText("审核拒绝");
+        }else if (data.getApplystatus().equals("5")){
+            itemViewHolder.tv_left_bottom_title.setText("审核失败");
+        }else if (data.getApplystatus().equals("6")){
+            itemViewHolder.tv_left_bottom_title.setText("已撤销");
+        }else if (data.getApplystatus().equals("7")){
+            itemViewHolder.tv_left_bottom_title.setText("自动审核");
+        }else if (data.getApplystatus().equals("8")){
+            itemViewHolder.tv_left_bottom_title.setText("融资失败");
+        }
 
-        itemViewHolder.tvLeftTitle.setText(data.getDeliverygoodsname());
-
-        itemViewHolder.tv_left_bottom_title.setText(data.getWrtypename());
         //右边滑动部分
         LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
         linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
@@ -120,7 +138,12 @@ public class FinanceApplicationContentAdapter extends RecyclerView.Adapter<Finan
         });
 
         itemViewHolder.details.setVisibility(View.VISIBLE);
-        itemViewHolder.invoice_register.setVisibility(View.VISIBLE);
+        if (data.getApplystatus().equals("1")){
+            itemViewHolder.invoice_register.setVisibility(View.VISIBLE);
+        }else {
+            itemViewHolder.invoice_register.setVisibility(View.GONE);
+        }
+
 
         //撤单
         itemViewHolder.invoice_register.setOnClickListener(view -> {

+ 33 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performance/PerformanceInformationActivity.kt

@@ -13,6 +13,7 @@ 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
@@ -25,6 +26,7 @@ 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.createWarningDialog
 import org.jetbrains.anko.*
 import org.jetbrains.anko.support.v4.viewPager
 
@@ -169,7 +171,8 @@ class BuyInformationUI(private val activity : AppCompatActivity,private val view
     val performanceInformationcontentAdapter by lazy {
         PerformanceInformationContentAdapter(
             activity,
-            "1"
+            "1",
+            viewModel
         )
     }
 
@@ -181,6 +184,31 @@ class BuyInformationUI(private val activity : AppCompatActivity,private val view
     @RequiresApi(Build.VERSION_CODES.N)
     val root = _FrameLayout(activity).apply {
         verticalLayout {
+            viewModel.showsDialog.bindOptional(context){
+                if (it == true){
+                    activity.createWarningDialog {
+                        setTitle("温馨提示")
+                        setMessage("确定激活此履约单吗?")
+                        addAction("取消") { dialog, _ ->
+                            viewModel.showsDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                        addAction("确定") { dialog, _ ->
+                            val data1 = viewModel.selectPickUpgoodsData.value
+                            viewModel.performanceActivateReq(
+                                marketid = data1?.marketid?.toInt() ?: 0,
+                                PerformancePlanID = data1?.performanceplanid?.toLong() ?: 0,
+                                ApplyAccountID = GlobalDataCollection.instance?.accountId ?: 0
+                            ){
+                                viewModel.queryPerformancePlan()
+                            }
+
+                            viewModel.showsDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                    }.show()
+                }
+            }
             viewModel.queryBuyTitle(Constant.table_mobile_hnst_lyxx_buy)
             performanceInformationcontentAdapter.setOnContentScrollListener(this@BuyInformationUI)
             linearLayout {
@@ -195,7 +223,7 @@ class BuyInformationUI(private val activity : AppCompatActivity,private val view
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -310,7 +338,8 @@ class SellInformationUI(private val activity : AppCompatActivity,private val vie
     val performanceInformationcontentAdapter by lazy {
         PerformanceInformationContentAdapter(
             activity,
-            "2"
+            "2",
+            viewModel
         )
     }
 
@@ -336,7 +365,7 @@ class SellInformationUI(private val activity : AppCompatActivity,private val vie
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

+ 43 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performance/PerformanceInformationViewModel.kt

@@ -2,10 +2,7 @@ package cn.muchinfo.rma.view.base.hnstmain.performance
 
 import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.global.GlobalDataCollection
-import cn.muchinfo.rma.global.data.ColumnsData
-import cn.muchinfo.rma.global.data.PerformancePlanData
-import cn.muchinfo.rma.global.data.WrPerformancePlanStepData
-import cn.muchinfo.rma.global.data.WrSpecialMatchOrderData
+import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.global.performancestatus
 import cn.muchinfo.rma.netManage.base.InteractiveException
@@ -341,6 +338,48 @@ class PerformanceInformationViewModel : BaseViewModel(){
         }
     }
 
+    /**
+     * 提货是否确认收货弹窗
+     */
+    val showsDialog : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
+    //提货撤单选择的撤单实体
+    val selectPickUpgoodsData : MutableLiveData<PerformancePlanData> = MutableLiveData()
+
+    /**
+     * 履约激活请求 即是交收功能
+     * @param marketid Int
+     * @param PerformancePlanID Long
+     * @param ApplyAccountID Long
+     * @param isSuccess Function1<[@kotlin.ParameterName] Boolean, Unit>
+     */
+    fun performanceActivateReq(
+        marketid : Int = 0,//市场id
+        PerformancePlanID : Long = 0,//履约计划ID
+        ApplyAccountID : Long = 0,//发起方账号ID
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.performanceManager?.PerformanceActivateReq(
+                marketid = marketid,
+                PerformancePlanID = PerformancePlanID,
+                ApplyAccountID = ApplyAccountID
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
 
 
 

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

@@ -28,6 +28,7 @@ import cn.muchinfo.rma.view.autoWidget.CustomHorizontalScrollView;
 import cn.muchinfo.rma.view.base.hnstmain.performance.PerformanceDefaultActivity;
 import cn.muchinfo.rma.view.base.hnstmain.performance.PerformanceDelayActivity;
 import cn.muchinfo.rma.view.base.hnstmain.performance.PerformanceDetailsActivity;
+import cn.muchinfo.rma.view.base.hnstmain.performance.PerformanceInformationViewModel;
 import cn.muchinfo.rma.view.base.hnstmain.performance.PerformationPayActivity;
 import cn.muchinfo.rma.view.base.procurement.RightScrollAdapter;
 
@@ -43,6 +44,7 @@ public class PerformanceInformationContentAdapter extends RecyclerView.Adapter<P
     private List<ItemViewHolder> mViewHolderList = new ArrayList<>();
     public int offestX = 0;
     private OnContentScrollListener onContentScrollListener;
+    private PerformanceInformationViewModel viewModel;
     //1买履约 2 是卖履约
     private String type;
 
@@ -55,8 +57,9 @@ public class PerformanceInformationContentAdapter extends RecyclerView.Adapter<P
     }
 
 
-    public PerformanceInformationContentAdapter(Context context, String type) {
+    public PerformanceInformationContentAdapter(Context context, String type,PerformanceInformationViewModel viewModel) {
         this.context = context;
+        this.viewModel = viewModel;
         this.type = type;
     }
 
@@ -137,15 +140,24 @@ public class PerformanceInformationContentAdapter extends RecyclerView.Adapter<P
                     itemViewHolder.future_details.setVisibility(View.VISIBLE);
                     itemViewHolder.details.setText("详情");
                     itemViewHolder.details.setVisibility(View.VISIBLE);
+                }else {
+                    itemViewHolder.spot_details.setVisibility(View.GONE);
+                    itemViewHolder.future_details.setVisibility(View.GONE);
+                    itemViewHolder.details.setVisibility(View.GONE);
                 }
                 if (data.getSteptypeid().equals("1")){//付款只有在买方支付时显示
                     itemViewHolder.warehouse_register.setText("付款");
                     itemViewHolder.warehouse_register.setVisibility(View.VISIBLE);
+                }else {
+                    itemViewHolder.warehouse_register.setVisibility(View.GONE);
                 }
                  if (data.getPerformancestatus().equals("1")){//待激活
                      itemViewHolder.payment_registration.setVisibility(View.VISIBLE);
                      itemViewHolder.details.setText("详情");
                      itemViewHolder.details.setVisibility(View.VISIBLE);
+                 }else {
+                     itemViewHolder.payment_registration.setVisibility(View.GONE);
+                     itemViewHolder.details.setVisibility(View.GONE);
                  }
             }else if (type.equals("2")){//卖履约
                 itemViewHolder.warehouse_register.setVisibility(View.GONE);
@@ -156,6 +168,10 @@ public class PerformanceInformationContentAdapter extends RecyclerView.Adapter<P
                     itemViewHolder.future_details.setVisibility(View.VISIBLE);
                     itemViewHolder.details.setText("详情");
                     itemViewHolder.details.setVisibility(View.VISIBLE);
+                }else {
+                    itemViewHolder.spot_details.setVisibility(View.GONE);
+                    itemViewHolder.future_details.setVisibility(View.GONE);
+                    itemViewHolder.details.setVisibility(View.GONE);
                 }
             }
         }else {
@@ -173,9 +189,10 @@ public class PerformanceInformationContentAdapter extends RecyclerView.Adapter<P
             ActivityUtils.startActivity(intent);
         });
 
-        //交
+        //交
         itemViewHolder.payment_registration.setOnClickListener(view -> {
-
+            viewModel.getShowsDialog().postValue(true);
+            viewModel.getSelectPickUpgoodsData().postValue(data);
         });
 
         //延期

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

@@ -20,10 +20,7 @@ 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.spotwarehouse.adapter.AreCancelContentAdapter
-import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.adapter.DetailsWarehouseContentAdapter
-import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.adapter.SpecifyDealContentAdapter
-import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.adapter.SpotWarehouseContentAdapter
+import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.adapter.*
 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
@@ -71,6 +68,9 @@ class SpotWareHouseActivity : BaseActivity<SpotWareHouseViewModel>(){
     //指定成交UI
     private val specifyDealUI by lazy { SpecifyDealUI(this,viewModel) }
 
+    //提货ui
+    private val pickUpUI by lazy { PickUpUI(this,viewModel) }
+
     //viewpager的适配器
     private var newPagerAdapter : PagerAdapter? = null
 
@@ -100,6 +100,8 @@ class SpotWareHouseActivity : BaseActivity<SpotWareHouseViewModel>(){
         newTabsArray.add("指定成交")
         uiList.add(specifyDealUI.root)
 
+        newTabsArray.add("提货")
+        uiList.add(pickUpUI.root)
 
         newPagerAdapter = object : PagerAdapter() {
 
@@ -239,7 +241,7 @@ class SpotSummaryUI(private val activity : AppCompatActivity,private val viewMod
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -384,7 +386,7 @@ class WarehouseSummaryUI(private val activity : AppCompatActivity,private val vi
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -526,7 +528,7 @@ class DetailsWarehouseUI(private val activity : AppCompatActivity,private val vi
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -695,7 +697,7 @@ class AreCancelledUI(private val activity : AppCompatActivity,private val viewMo
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -837,7 +839,7 @@ class DealUI(private val activity : AppCompatActivity,private val viewModel: Spo
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -979,7 +981,7 @@ class SpecifyDealUI(private val activity : AppCompatActivity,private val viewMod
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -1072,3 +1074,189 @@ class SpecifyDealUI(private val activity : AppCompatActivity,private val viewMod
     }
 
 }
+
+/**
+ * 提货UI
+ * @property activity AppCompatActivity
+ * @property viewModel SpotWareHouseViewModel
+ * @constructor
+ */
+class PickUpUI(private val activity : AppCompatActivity,private val viewModel: SpotWareHouseViewModel)  : PickUpContentAdapter.OnContentScrollListener {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
+
+    val topAdapter by lazy {
+        TopTabAdpater(activity)
+    }
+
+    val pickUpContentAdapter by lazy {
+        PickUpContentAdapter(
+            activity,viewModel
+        )
+    }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+    }
+
+    @RequiresApi(Build.VERSION_CODES.N)
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
+            viewModel.showPickUpDialog.bindOptional(context){
+                if (it == true){
+                    activity.createWarningDialog {
+                        setTitle("温馨提示")
+                        setMessage("确定撤销此提货单吗?")
+                        addAction("取消") { dialog, _ ->
+                            viewModel.showPickUpDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                        addAction("确定") { dialog, _ ->
+                            val data1 = viewModel.selectPickUpData.value
+                            viewModel.WROutCancelReq(
+                                applyid = data1?.applyid?.toLong() ?: 0
+                            ){
+                                viewModel.queryPickUpPosition()
+                            }
+
+                            viewModel.showPickUpDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                    }.show()
+                }
+            }
+            viewModel.showPickUpgoodsDialog.bindOptional(context){
+                if (it == true){
+                    activity.createWarningDialog {
+                        setTitle("温馨提示")
+                        setMessage("确定收货吗?")
+                        addAction("取消") { dialog, _ ->
+                            viewModel.showPickUpgoodsDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                        addAction("确定") { dialog, _ ->
+                            val data1 = viewModel.selectPickUpgoodsData.value
+                            viewModel.WROutConfirmReq(
+                                applyid = data1?.applyid?.toLong() ?: 0
+                            ){
+                                viewModel.queryPickUpPosition()
+                            }
+
+                            viewModel.showPickUpgoodsDialog.postValue(false)
+                            dialog.dismiss()
+                        }
+                    }.show()
+                }
+            }
+            viewModel.specifyPickUpTitle(Constant.table_mobile_hnst_xhcd_crk)
+//            viewModel.queryTitle(tableKey = Constant.table_mobile_report_expose, cycletime = tradedate.replace("-", ""),cycletype = "",userid = selectTransactionUser.value?.id ?: "",querytype = "1")
+            pickUpContentAdapter.setOnContentScrollListener(this@PickUpUI)
+            linearLayout {
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//待点价头部左侧数据
+                        viewModel.pickUpTitle.bindOptional(context) {
+                            text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+                        }
+                        textColorStr = "#AAAAAA"
+                        textSizeAuto = 24
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(30)
+                    }
+                }.lparams(autoSize(250), autoSize(100))
+
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    setOnCustomScrollChangeListener { _, scrollX, _, _, _ ->
+                        pickUpContentAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<PickUpContentAdapter.ItemViewHolder> =
+                            pickUpContentAdapter.viewHolderCacheList
+
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
+                    }
+                    relativeLayout {
+                        recyclerView {//待点价头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+                        viewModel.pickUpTitle.bindOptional(context) {
+                            val titleStringList = arrayListOf<String>()
+                            it?.subList(1, it.size)?.forEach { data ->
+                                titleStringList.add(data.columntitle?.replace("\\n", "\n") ?: "")
+                            }
+                            topAdapter.setDatas(titleStringList)
+                        }
+                    }
+                }.lparams(matchParent, matchParent)
+            }.lparams(matchParent, autoSize(100))
+
+            statusLayout(contentBlock = {
+                statusLayout = this
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(true)
+                    setOnRefreshListener {
+                        viewModel.queryPickUpPosition()
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+
+                    recyclerView {//待点价列表
+                        background = resources.getDrawable(R.color.white)
+                        adapter = pickUpContentAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<PickUpContentAdapter.ItemViewHolder> =
+                                    pickUpContentAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].horItemScrollview.scrollTo(
+                                            pickUpContentAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+                    }
+
+
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+
+            viewModel.pickUpDataList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+//                        mHeadHeaderHSView.scrollTo(scrollXView,scrollYView)
+                    }
+                    statusLayout.showSuccess()
+                    pickUpContentAdapter.setDatas(it)
+                }
+            }
+        }
+    }
+
+}

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

@@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.global.isBlankString
+import cn.muchinfo.rma.global.pickupapplystatus
 import cn.muchinfo.rma.global.wrtradeorderstatus
 import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
@@ -94,6 +95,91 @@ class SpotWareHouseViewModel : BaseViewModel(){
     //点击撤单时选择的撤单实体
     val selectCancelData : MutableLiveData<WrOrderDetailData> = MutableLiveData()
 
+    /**
+     * 提货单的头部数据
+     */
+    val pickUpTitle: MutableLiveData<List<ColumnsData>> = MutableLiveData()
+
+    /**
+     * 提货内容数据
+     */
+    val pickUpDataList : MutableLiveData<List<WrOutInApplyData>> = MutableLiveData()
+
+    /**
+     * 提货是否撤单弹窗
+     */
+    val showPickUpDialog : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
+    //提货撤单选择的撤单实体
+    val selectPickUpData : MutableLiveData<WrOutInApplyData> = MutableLiveData()
+
+    /**
+     * 提货是否确认收货弹窗
+     */
+    val showPickUpgoodsDialog : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
+    //提货撤单选择的撤单实体
+    val selectPickUpgoodsData : MutableLiveData<WrOutInApplyData> = MutableLiveData()
+
+
+    //-----------------提货------------------
+    /**
+     * 查询现货仓单-提货头部数据
+     */
+    fun specifyPickUpTitle(tableKey: String){
+        val params = mutableMapOf<String, String>().apply {
+            put("tableKey", tableKey)
+            put("tableType", "3")
+        }
+        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
+                })
+                pickUpTitle.postValue(newlist)
+                queryPickUpPosition()
+            }
+        }
+    }
+
+    /**
+     * 查询提货数据
+     */
+    fun queryPickUpPosition(){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
+        }
+        MyApplication.getInstance()?.warehouseManager?.queryWrOutInApply(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                pickUpDataList.postValue(getPickUpPositionRightData(respData ?: arrayListOf()))
+            }
+        }
+    }
+
+    /**
+     * 提货组装右侧数据
+     */
+    fun getPickUpPositionRightData(respData: List<WrOutInApplyData>) : List<WrOutInApplyData>{
+        val newList = arrayListOf<WrOutInApplyData>()
+        respData.forEach {
+            val newRightData = arrayListOf<String>()
+            //仓库
+            newRightData.add(it.warehousename ?: "-")
+            //类型
+            newRightData.add("提货")
+            //数量
+            newRightData.add(it.qty + it.enumdicname)
+            //时间
+            newRightData.add(it.applytime ?: "-")
+            //物流信息
+            newRightData.add(it.expresscompany + it.expressnum)
+            //状态
+            newRightData.add(it.applystatus?.pickupapplystatus() ?: "-")
+            val newData = it.copy(rightData = newRightData)
+            newList.add(newData)
+        }
+        return newList
+    }
+
     //挂单撤单请求
     fun requeryWRListingCancelOrder(
         marketId: Int,//市场id
@@ -130,6 +216,66 @@ class SpotWareHouseViewModel : BaseViewModel(){
         }
     }
 
+    /**
+     * 仓单出库撤回请求
+     * @param applyid Long
+     * @param isSuccess Function1<[@kotlin.ParameterName] Boolean, Unit>
+     */
+    fun WROutCancelReq(
+        applyid : Long,//申请Id
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.warehouseManager?.WROutCancelReq(
+                applyid = applyid
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
+
+    /**
+     * 仓单出库确认请求
+     * @param applyid Long
+     * @param isSuccess Function1<[@kotlin.ParameterName] Boolean, Unit>
+     */
+    fun WROutConfirmReq(
+        applyid : Long,//申请Id
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.warehouseManager?.WROutConfirmReq(
+                applyid = applyid
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
+
 
     //-----------------指定成交------------------
     /**

+ 221 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/adapter/PickUpContentAdapter.java

@@ -0,0 +1,221 @@
+package cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.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 com.blankj.utilcode.util.ToastUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.muchinfo.rma.R;
+import cn.muchinfo.rma.global.data.WrOutInApplyData;
+import cn.muchinfo.rma.global.data.WrSpecialMatchOrderData;
+import cn.muchinfo.rma.view.autoWidget.CustomHorizontalScrollView;
+import cn.muchinfo.rma.view.base.hnstmain.spotwarehouse.SpotWareHouseViewModel;
+import cn.muchinfo.rma.view.base.procurement.RightScrollAdapter;
+
+/**
+ * 现货仓单-挂单adapter
+ */
+public class PickUpContentAdapter extends RecyclerView.Adapter<PickUpContentAdapter.ItemViewHolder> {
+
+    private Context context;
+    private List<WrOutInApplyData> datas;
+    private int index = -1;
+    private int position = -1;
+    private List<ItemViewHolder> mViewHolderList = new ArrayList<>();
+    public int offestX = 0;
+    private OnContentScrollListener onContentScrollListener;
+    private SpotWareHouseViewModel viewModel;
+
+    //1是现货汇总,2是库存汇总
+    private String type;
+
+    public interface OnContentScrollListener {
+        void onScroll(MotionEvent event);
+    }
+
+    public void setOnContentScrollListener(OnContentScrollListener onContentScrollListener) {
+        this.onContentScrollListener = onContentScrollListener;
+    }
+
+
+    public PickUpContentAdapter(Context context,SpotWareHouseViewModel viewModel) {
+        this.viewModel = viewModel;
+        this.context = context;
+
+    }
+
+    public void setDatas(List<WrOutInApplyData> 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;
+        WrOutInApplyData data = datas.get(i);
+
+        itemViewHolder.tvLeftTitle.setText(data.getDeliverygoodsname());
+        itemViewHolder.tv_left_bottom_title.setText(data.getWrtypename());
+
+//        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);
+        }
+
+        if (data.getApplystatus().equals("4") && data.getApplytype().equals("0")){
+            itemViewHolder.settlement_of_registration.setVisibility(View.VISIBLE);
+        }
+        if (data.getApplystatus().equals("2") && data.getApplytype().equals("1")){
+            itemViewHolder.midpoints_registration.setVisibility(View.VISIBLE);
+        }
+
+        itemViewHolder.all_click_View.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                setPosition(i);
+            }
+        });
+
+        //确认提货
+        itemViewHolder.settlement_of_registration.setOnClickListener(view -> {
+            viewModel.getShowPickUpgoodsDialog().postValue(true);
+            viewModel.getSelectPickUpgoodsData().postValue(data);
+        });
+
+        //撤单
+        itemViewHolder.midpoints_registration.setOnClickListener(view -> {
+            viewModel.getShowPickUpDialog().postValue(true);
+            viewModel.getSelectPickUpData().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);
+        }
+    }
+}

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

@@ -238,9 +238,9 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
 
                             textView {
                                 if (type == "1") {
-                                    text = data.wrstandardname
+                                    text = data.wrfactortypename
                                 } else {
-                                    text = data1.wrstandardname
+                                    text = data1.wrfactortypename
                                 }
 
                                 textSizeAuto = 34
@@ -435,7 +435,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                         2
                                     )
                                 }
-
+                                setTextColor(R.color.buy_hall_color)
                             }.lparams(0, autoSize(72), 1f) {
                                 marginEnd = autoSize(110)
                             }
@@ -554,6 +554,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                                 }
                                             }
                                         }
+                                        setTextColor(R.color.buy_hall_color)
                                     }.lparams(0, autoSize(72), 1f) {
                                         marginEnd = autoSize(36)
                                     }
@@ -652,7 +653,6 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             verticalLayout {
                                 linearLayout {
                                     editText {
-                                        setText(data.minivalue)
                                         startInputNumber = this
                                         hint = "请输入起摘数量"
                                         background = null
@@ -800,6 +800,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             if (type == "1") {//现货仓单挂单
                                 if (listedType.value?.id == "1") {//一口价
                                     viewModel.requeryWRListingOrderReq(
+                                        FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                         LadingBillId = data.ladingbillid?.toLong() ?: 0,
                                         TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                         SubNum = data.subnum?.toLong() ?: 0,
@@ -831,6 +832,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                     }
                                 } else {//浮动价
                                     viewModel.requeryWRListingOrderReq(
+                                        FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                         LadingBillId = data.ladingbillid?.toLong() ?: 0,
                                         TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                         SubNum = data.subnum?.toLong() ?: 0,
@@ -863,6 +865,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             } else {//预售仓单挂单
                                 if (listedType.value?.id == "1") {//一口价
                                     viewModel.requeryWRListingOrderReq(
+                                        FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                         LadingBillId = 0,
                                         TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                         SubNum = 0,
@@ -895,6 +898,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                     }
                                 } else {//浮动价
                                     viewModel.requeryWRListingOrderReq(
+                                        FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                         LadingBillId = 0,
                                         TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                         SubNum = 0,
@@ -929,10 +933,10 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
 
                         }
                         gravity = Gravity.CENTER
-                        backgroundResource = R.mipmap.rma_save_info_bg
+                        backgroundResource = R.mipmap.rma_submit_bg
                         text = "卖出"
                         textSizeAuto = 38
-                        textColorInt = R.color.rma_star_color
+                        textColorInt = R.color.white
                     }.lparams(0, autoSize(119), 1f) {
                         marginStart = autoSize(59)
                         marginEnd = autoSize(59)

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

@@ -225,11 +225,13 @@ class ListedViewModel : BaseViewModel(){
         HasWr: Int = 0,//是否有仓单-0:没有仓单 1:有仓单
         DelistMinQty : Long = 0,//起摘数量
         WRStandardID: Int = 0,//现货品种ID
+        FactoryItems : List<WarehouseTradeMI1.DGFactoryItems>,//要素类型明细集合(没有仓单要素ID填写)
         isSuccess: (isCompleted: Boolean) -> Unit
     ){
         loadingDialogStatus.value = TaskUiModel.inFlight()
         GlobalScope.launch {
             MyApplication.getInstance()?.warehouseManager?.HdWROrderReq(
+                FactoryItems = FactoryItems,
                 LadingBillId = LadingBillId,
                 TradeDate = TradeDate,
                 AccountID = AccountID,

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

@@ -265,7 +265,7 @@ class NewHomeFragment : BaseFragment<HomeViewModel>() {
                                 }
                             }
                             text = "--"
-                            text = GlobalDataCollection.instance?.loginRsp?.userID.toString()
+                            text = GlobalDataCollection.instance?.loginQueryData?.userInfo?.customername
                             textColorInt = R.color.white
                             textSizeAuto = 36
                         }.lparams(wrapContent, wrapContent) {

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

@@ -293,7 +293,7 @@ class UnSubmitUI(
                     }.lparams(wrapContent, wrapContent){
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -440,7 +440,7 @@ class ToAuditUI(
                     }.lparams(wrapContent, wrapContent){
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -584,7 +584,7 @@ class PerformanceUI(
                     }.lparams(wrapContent, wrapContent){
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -728,7 +728,7 @@ class FinishUI(
                     }.lparams(wrapContent, wrapContent){
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

+ 2 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/inventory/inventoryaudit/InventoryAuditActivity.kt

@@ -390,7 +390,7 @@ class InventoryToAuditUI(private val activity : AppCompatActivity,private val vi
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -546,7 +546,7 @@ class InventoryAuditedUI(private val activity : AppCompatActivity,private val vi
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

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

@@ -157,7 +157,7 @@ class InventoryDetailsActivity : BaseActivity<InventoryManagerViewModel>(),
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

+ 2 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/inventory/inventorymanager/InventoryManagerActivity.kt

@@ -195,7 +195,7 @@ class CurrentInventoryUI(
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -347,7 +347,7 @@ class ApplyRecordUI(
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

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

@@ -1854,7 +1854,7 @@ class InvertoryReportUI(
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this
@@ -2267,7 +2267,7 @@ class InvertoryWarehouseReportUI(
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(90f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
 
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

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

@@ -162,7 +162,7 @@ class ReportCommonDetailsActivity : BaseActivity<ReportCommonDetailsViewModel>()
                     }.lparams(wrapContent, wrapContent) {
                         marginStart = autoSize(30)
                     }
-                }.lparams(autoSize(SizeUtils.dp2px(85f)), autoSize(100))
+                }.lparams(autoSize(250), autoSize(100))
                 contentAdapter.setOnContentScrollListener(this@ReportCommonDetailsActivity)
                 inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                     horScrollview = this

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

@@ -129,7 +129,7 @@ class PlatinumTreasureFragment : BaseFragment<PlatinumTreasureViewModel>() , Pla
                         }.lparams(wrapContent, wrapContent){
                             marginStart = autoSize(30)
                         }
-                    }.lparams(autoSize(SizeUtils.dp2px(100f)), autoSize(100))
+                    }.lparams(autoSize(250), autoSize(100))
                     platnumTreasureAdapter.setOnContentScrollListener(this@PlatinumTreasureFragment)
                     inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
                         horScrollview = this

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

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

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

@@ -1848,7 +1848,7 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
                 }.lparams(matchParent, autoSize(143))
 
                 linearLayout {
-                    visibility = if (type == "2") {
+                    visibility = if (pricetype == "2") {
                         View.VISIBLE
                     } else {
                         View.GONE
@@ -2081,6 +2081,7 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
                                 text = NumberUtils.roundNum(float_delisting_amount.text.toString().toDouble().times(it?.marginratio?.toDouble() ?: 0.0),2)
                             }
                         }
+                        text = "--"
                         performance_bond_amount = this
                         textSizeAuto = 29
                         textColorInt = R.color.rma_black_33
@@ -2199,7 +2200,7 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
                         }
                         gravity = Gravity.CENTER
                         backgroundResource = R.drawable.qhj_main_blue_bg
-                        text = "卖出"
+                        text = "买入"
                         textSizeAuto = 38
                         textColorInt = R.color.white
                     }.lparams(autoSize(419), autoSize(119)) {

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

@@ -375,11 +375,13 @@ class BusinessHallViewModel : BaseViewModel(){
         HasWr: Int = 0,//是否有仓单-0:没有仓单 1:有仓单
         DelistMinQty : Long = 0,//起摘数量
         WRStandardID: Int = 0,//现货品种ID
+        FactoryItems : List<WarehouseTradeMI1.DGFactoryItems>,//要素类型明细集合(没有仓单要素ID填写)
         isSuccess: (isCompleted: Boolean) -> Unit
     ){
         loadingDialogStatus.value = TaskUiModel.inFlight()
         GlobalScope.launch {
             MyApplication.getInstance()?.warehouseManager?.HdWROrderReq(
+                FactoryItems = FactoryItems,
                 LadingBillId = LadingBillId,
                 TradeDate = TradeDate,
                 AccountID = AccountID,

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

@@ -45,7 +45,7 @@ import org.jetbrains.anko.support.v4.viewPager
 import org.w3c.dom.Text
 
 /**
- * 浮动价的买卖挂牌
+ * 浮动价的买卖挂牌(此页面是进入买卖大厅有仓单要素id的浮动价挂牌)
  * @receiver AppCompatActivity
  * @param activity AppCompatActivity
  * @param viewModel BusinessHallViewModel
@@ -271,6 +271,40 @@ class FloatSellListedUI(
 
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
+                linearLayout {
+                    textView {
+                        text = "基        差"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                numberEditText3 {
+                    viewModel.quoteDayData.bindOptional(context){
+                        val MarketTradeConfig = GlobalDataCollection.instance?.marketTradeConfigData
+                        max = it?.preclose?.times(MarketTradeConfig?.basisupratio?.toDouble() ?: 0.0) ?: 0.0
+                        min = it?.preclose?.times(-1.0)?.times(MarketTradeConfig?.basisdownratio?.toDouble() ?: 0.0) ?: 0.0
+                    }
+                    basisInputEdittext = this
+                    isdefineByBasis = true
+                    text = "0"
+                    setOnTextChangeListener { view, value ->
+                        if (value.isNotEmpty()){
+                            //行情下发计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
+                            listed_price.postValue(value.toString().toDouble().plus(viewModel.quoteDayData.value?.getPrice() ?: 0.0))
+                        }
+                    }
+                }.lparams(0, autoSize(72),1f){
+                    marginEnd = autoSize(110)
+                }
+            }.lparams(matchParent, autoSize(143))
+
+             itemView()
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
                 onThrottleFirstClick {
                     activity.creatHnstSpotDetailSheetDialog("请选择现货仓单", viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()) {
                         selectSpotDetailsData.postValue(this)
@@ -306,40 +340,6 @@ class FloatSellListedUI(
             itemView()
 
             linearLayout {
-                gravity = Gravity.CENTER_VERTICAL
-                linearLayout {
-                    textView {
-                        text = "基        差"
-                        textSizeAuto = 34
-                        textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent){
-                        marginStart = autoSize(36)
-                    }
-                }.lparams(autoSize(250), wrapContent)
-
-                numberEditText3 {
-                    viewModel.quoteDayData.bindOptional(context){
-                        val MarketTradeConfig = GlobalDataCollection.instance?.marketTradeConfigData
-                        max = it?.preclose?.times(MarketTradeConfig?.basisupratio?.toDouble() ?: 0.0) ?: 0.0
-                        min = it?.preclose?.times(-1.0)?.times(MarketTradeConfig?.basisdownratio?.toDouble() ?: 0.0) ?: 0.0
-                    }
-                    basisInputEdittext = this
-                    isdefineByBasis = true
-                    text = "0"
-                    setOnTextChangeListener { view, value ->
-                        if (value.isNotEmpty()){
-                            //行情下发计算挂牌金额 = (基差价格+期货合约价)* 挂牌数量
-                            listed_price.postValue(value.toString().toDouble().plus(viewModel.quoteDayData.value?.getPrice() ?: 0.0))
-                        }
-                    }
-                }.lparams(0, autoSize(72),1f){
-                    marginEnd = autoSize(110)
-                }
-            }.lparams(matchParent, autoSize(143))
-
-            itemView()
-
-            linearLayout {
                 verticalLayout {
                     textView {
                         text = "挂牌数量"
@@ -584,6 +584,7 @@ class FloatSellListedUI(
 
                         if (type == "1"){
                             viewModel.requeryWRListingOrderReq(
+                                FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                 LadingBillId = selectSpotDetailsData.value?.ladingbillid?.toLong() ?: 0,
                                 TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                 SubNum = selectSpotDetailsData.value?.subnum?.toLong() ?: 0,
@@ -613,6 +614,7 @@ class FloatSellListedUI(
                             }
                         }else{
                             viewModel.requeryWRListingOrderReq(
+                                FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                 LadingBillId = selectSpotDetailsData.value?.ladingbillid?.toLong() ?: 0,
                                 TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                 SubNum = selectSpotDetailsData.value?.subnum?.toLong() ?: 0,
@@ -1049,6 +1051,7 @@ class FloatBuyListedUI(
                         }
                         if (type == "1"){
                             viewModel.requeryWRListingOrderReq(
+                                FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                 TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                 WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 0,
                                 UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
@@ -1075,6 +1078,7 @@ class FloatBuyListedUI(
                             }
                         }else{
                             viewModel.requeryWRListingOrderReq(
+                                FactoryItems =arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                 TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                 WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 0,
                                 UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,

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

@@ -43,7 +43,7 @@ import org.jetbrains.anko.*
 import org.jetbrains.anko.support.v4.viewPager
 
 /**
- * 买卖大厅的一口价挂牌
+ * 买卖大厅的一口价挂牌(此页面是进入买卖大厅有仓单要素id的一口价价挂牌)
  * @receiver AppCompatActivity
  * @return CustomDialogFragment
  */
@@ -158,7 +158,7 @@ fun AppCompatActivity.OneListedDialog(
             }.lparams(matchParent, matchParent)
 
             segment.setupWithViewPager(viewPager)
-            segment.selectTab(1)
+            segment.selectTab(0)
         }.lparams(matchParent, matchParent) {
             topMargin = autoSize(120)
         }
@@ -252,45 +252,6 @@ class OneSellListedUI(
 
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
-                onThrottleFirstClick {
-                    activity.creatHnstSpotDetailSheetDialog(
-                        "请选择现货仓单",
-                        viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()
-                    ) {
-                        selectSpotDetailsData.postValue(this)
-                    }
-                }
-                linearLayout {
-                    textView {
-                        text = "现货仓单"
-                        textSizeAuto = 34
-                        textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent) {
-                        marginStart = autoSize(36)
-                    }
-                }.lparams(autoSize(250), wrapContent)
-
-                textView {
-                    text = "请选择现货仓单"
-                    selectSpotDetailsData.bindOptional(context) {
-                        text = it?.wrfactortypeid + "(" + it?.enableqty + it?.enumdicname + ")"
-                    }
-                    textSizeAuto = 34
-                    textColorInt = R.color.rma_black_33
-                }.lparams(wrapContent, wrapContent)
-
-                emptyView()
-
-                imageView {
-                    imageResource = R.mipmap.rma_more
-                }.lparams(autoSize(36), autoSize(36))
-
-            }.lparams(matchParent, autoSize(143))
-
-            itemView()
-
-            linearLayout {
-                gravity = Gravity.CENTER_VERTICAL
                 linearLayout {
                     textView {
                         text = "挂牌价格"
@@ -307,19 +268,19 @@ class OneSellListedUI(
                     setOnTextChangeListener { view, value ->
                         if (value.isNullOrEmpty().not()) {
                             if (oneNumberInputEdittext.text.toString().isNullOrEmpty().not()) {
-                                var marginValue = value.toString().toDouble()
+                                var marginamount = value.toString().toDouble()
                                     .times(oneNumberInputEdittext.text.toString().toDouble())
-                                if (marginValue == 0.0) {
+                                if (marginamount == 0.0) {
                                     one_delisting_amount.text = NumberUtils.roundNum(
-                                        marginValue.toString(),
+                                        marginamount.toString(),
                                         2
                                     )
                                 } else {
                                     one_delisting_amount.text = NumberUtils.roundNum(
-                                        marginValue.toString(),
+                                        marginamount.toString(),
                                         2
                                     ) + "(需履约保证金" + NumberUtils.roundNum(
-                                        marginValue?.times(
+                                        marginamount?.times(
                                             marginValue
                                         ) ?: 0.0, 2
                                     ) + ")"
@@ -336,6 +297,45 @@ class OneSellListedUI(
             itemView()
 
             linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                onThrottleFirstClick {
+                    activity.creatHnstSpotDetailSheetDialog(
+                        "请选择现货仓单",
+                        viewModel.detailsWarehouseContentDataList.value ?: arrayListOf()
+                    ) {
+                        selectSpotDetailsData.postValue(this)
+                    }
+                }
+                linearLayout {
+                    textView {
+                        text = "现货仓单"
+                        textSizeAuto = 34
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(autoSize(250), wrapContent)
+
+                textView {
+                    text = "请选择现货仓单"
+                    selectSpotDetailsData.bindOptional(context) {
+                        text = it?.wrfactortypeid + "(" + it?.enableqty + it?.enumdicname + ")"
+                    }
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent)
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.rma_more
+                }.lparams(autoSize(36), autoSize(36))
+
+            }.lparams(matchParent, autoSize(143))
+
+            itemView()
+
+            linearLayout {
                 verticalLayout {
                     textView {
                         text = "挂牌数量"
@@ -359,19 +359,19 @@ class OneSellListedUI(
                                     if (onePriceInputEdittext.text.toString().isNullOrEmpty()
                                             .not()
                                     ) {
-                                        var marginValue = value.toString().toDouble()
+                                        var marginamount = value.toString().toDouble()
                                             .times(oneNumberInputEdittext.text.toString().toDouble())
-                                        if (marginValue == 0.0) {
+                                        if (marginamount == 0.0) {
                                             one_delisting_amount.text = NumberUtils.roundNum(
-                                                marginValue.toString(),
+                                                marginamount.toString(),
                                                 2
                                             )
                                         } else {
                                             one_delisting_amount.text = NumberUtils.roundNum(
-                                                marginValue.toString(),
+                                                marginamount.toString(),
                                                 2
                                             ) + "(需履约保证金" + NumberUtils.roundNum(
-                                                marginValue?.times(
+                                                marginamount?.times(
                                                     marginValue
                                                 ) ?: 0.0, 2
                                             ) + ")"
@@ -563,6 +563,7 @@ class OneSellListedUI(
                         val selectDetailsData = selectSpotDetailsData.value
                         if (type == "1") {
                             viewModel.requeryWRListingOrderReq(
+                                FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                 LadingBillId = selectDetailsData?.ladingbillid?.toLong() ?: 0,
                                 SubNum = selectDetailsData?.subnum?.toLong() ?: 0,
                                 TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
@@ -591,6 +592,7 @@ class OneSellListedUI(
                             }
                         } else {
                             viewModel.requeryWRListingOrderReq(
+                                FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                 LadingBillId = selectDetailsData?.ladingbillid?.toLong() ?: 0,
                                 SubNum = selectDetailsData?.subnum?.toLong() ?: 0,
                                 TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
@@ -618,7 +620,6 @@ class OneSellListedUI(
                                 viewModel.controlDialogDisappear.postValue(true)
                             }
                         }
-
                     }
                     gravity = Gravity.CENTER
                     backgroundResource = R.drawable.qhj_main_blue_bg
@@ -671,16 +672,19 @@ class OneBuyListedUI(
     //挂牌金额
     lateinit var one_delisting_amount: TextView
 
+    //履约保证金
+    lateinit var performance_bond_textview : TextView
+
     //SeekBar
     lateinit var seekBar: SeekBar
     //挂牌最大数量
     val maxlistedNumber : MutableLiveData<Int> = MutableLiveData()
 
-    var marginValue = 0.0//履约保证金比例
+    var marginValue1 = 0.0//履约保证金比例
 
     //初始化设置履约保证金比例
     fun setMarginValue() {
-        marginValue =
+        marginValue1 =
             GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
                 ?: 0.0
     }
@@ -749,26 +753,26 @@ class OneBuyListedUI(
                         if (value.isNullOrEmpty().not()) {
                             if (oneNumberInputEdittext.text.toString().isNullOrEmpty().not()) {
                                 //这里计算金额和履约保证金
-                                var marginValue = value.toString().toDouble()
+                                var marginamount = value.toString().toDouble()
                                     .times(oneNumberInputEdittext.text.toString().toDouble())
-                                if (marginValue == 0.0) {
+                                if (marginamount == 0.0) {
                                     one_delisting_amount.text = NumberUtils.roundNum(
-                                        marginValue.toString(),
+                                        marginamount.toString(),
                                         2
                                     )
                                 } else {
                                     one_delisting_amount.text = NumberUtils.roundNum(
-                                        marginValue.toString(),
+                                        marginamount.toString(),
                                         2
                                     ) + "(需履约保证金" + NumberUtils.roundNum(
-                                        marginValue.times(
-                                            marginValue
+                                        marginamount.times(
+                                            marginValue1
                                         ) ?: 0.0, 2
                                     ) + ")"
                                 }
                                 //这里计算最多购买数量 挂牌最大数量=可用资金/(买方履约保证金比例*挂牌价格)
-                                if (value.toDouble() != 0.0 && marginValue != 0.0){
-                                    maxlistedNumber.postValue(viewModel.usedAccountData.value?.canUserAmount?.div(marginValue)?.div(value.toDouble())?.toInt())
+                                if (value.toDouble() != 0.0 && marginamount != 0.0){
+                                    maxlistedNumber.postValue(viewModel.usedAccountData.value?.canUserAmount?.div(marginamount)?.div(value.toDouble())?.toInt())
                                 }
                             }
                         }
@@ -805,7 +809,7 @@ class OneBuyListedUI(
                                             .not()
                                     ) {
                                         var marginValue = value.toString().toDouble()
-                                            .times(oneNumberInputEdittext.text.toString().toDouble())
+                                            .times(onePriceInputEdittext.text.toString().toDouble())
                                         if (marginValue == 0.0) {
                                             one_delisting_amount.text = NumberUtils.roundNum(
                                                 marginValue.toString(),
@@ -816,9 +820,9 @@ class OneBuyListedUI(
                                                 marginValue.toString(),
                                                 2
                                             ) + "(需履约保证金" + NumberUtils.roundNum(
-                                                marginValue?.times(
-                                                    marginValue
-                                                ) ?: 0.0, 2
+                                                NumberUtils.doubleDistortion(marginValue?.times(
+                                                    marginValue1
+                                                ).toString()), 2
                                             ) + ")"
                                         }
                                     }
@@ -829,7 +833,7 @@ class OneBuyListedUI(
                         }
 
                         textView {
-                            text = "吨"
+                            text = data.enumdicname
                             textSizeAuto = 34
                             textColorInt = R.color.rma_hint_text_color_ccc
                         }.lparams(wrapContent, wrapContent) {
@@ -941,7 +945,6 @@ class OneBuyListedUI(
             itemView()
 
             linearLayout {
-                visibility = View.GONE
                 gravity = Gravity.CENTER_VERTICAL
                 textView {
                     text = "挂牌金额"
@@ -959,6 +962,27 @@ class OneBuyListedUI(
                 }.lparams(wrapContent, wrapContent)
             }.lparams(matchParent, autoSize(143))
 
+            itemView()
+
+            linearLayout {
+                visibility = View.GONE
+                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 = "--"
+                    performance_bond_textview = 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)
@@ -1007,6 +1031,7 @@ class OneBuyListedUI(
 
                         if (type == "1") {
                             viewModel.requeryWRListingOrderReq(
+                                FactoryItems =arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                 TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                 WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 0,
                                 UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,
@@ -1033,6 +1058,7 @@ class OneBuyListedUI(
                             }
                         } else {
                             viewModel.requeryWRListingOrderReq(
+                                FactoryItems = arrayListOf<WarehouseTradeMI1.DGFactoryItems>(),
                                 TradeDate = TimeUtils.getNowTime("yyyyMMdd"),
                                 WRFactorTypeId = data.wrfactortypeid?.toLong() ?: 0,
                                 UserID = GlobalDataCollection.instance?.loginRsp?.userID ?: 0,

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

@@ -15,6 +15,8 @@ import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseFragment
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.procurement.TopTabAdpater
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.WarehouseOneListedDialog
 import cn.muchinfo.rma.view.base.warehousereceipt.floata.FloatPriceAdapter
 import cn.muchinfo.rma.view.base.warehousereceipt.one.OnePriceAdapter
 import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
@@ -28,6 +30,8 @@ import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
 import com.qmuiteam.qmui.widget.tab.QMUITabSegment
 import io.reactivex.Flowable
 import io.reactivex.disposables.Disposable
+import mtp.polymer.com.autowidget.dialog.createLoadingDialog
+import mtp.polymer.com.autowidget.utils.bindTaskStatus
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
@@ -141,10 +145,8 @@ class WarehouseReceiptFragment : BaseFragment<WarehouseReceiptViewModel>(){
         // 销毁 mdDisposable.dispose();   这个是销毁
 
         return UI {
+            createLoadingDialog(hintStr = "").bindTaskStatus(context!!, viewModel.loadingDialogStatus)
             viewModel.queryFtDeliveryGoods()
-
-
-
             verticalLayout {
                 viewModel.orderQuoteDataByListed.bindOptional(context){
                     if (it?.deliverygoodsid.isNullOrEmpty().not()){
@@ -157,6 +159,15 @@ class WarehouseReceiptFragment : BaseFragment<WarehouseReceiptViewModel>(){
                         ActivityUtils.startActivity(intent)
                     }
                 }
+                viewModel.noWRFactorTypeIdDataForListed.bindOptional(context){
+                    if (it?.DeliveryGoodsID.isNullOrEmpty().not()){
+                        if (selectedTabIndex == 0){//一口价
+                            getAppCompatActivity().WarehouseOneListedDialog(activity = getAppCompatActivity(),viewModel = viewModel,type = "1",data = it ?: ListedData()).show()
+                        }else{//浮动价
+
+                        }
+                    }
+                }
                 linearLayout {
                     background = resources.getDrawable(R.color.main_title_bg_color)
                     gravity = Gravity.CENTER_VERTICAL

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

@@ -6,18 +6,30 @@ import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsGroups
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.global.database.DataBase
+import cn.muchinfo.rma.netManage.base.InteractiveException
+import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.base.BaseViewModel
 import cn.muchinfo.rma.view.base.main.castsurely.JsonBean
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
 import mtp.polymer.com.autowidget.dialog.SelectData
+import mtp.polymer.com.autowidget.utils.TaskUiModel
 
 /**
  * 仓单贸易页面viewmodel
  */
 class WarehouseReceiptViewModel : BaseViewModel(){
 
+    /**
+     * 加载状态控制
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
+
+    //用于控制挂牌弹窗的消失 当值设置为true时,控制dialog隐藏
+    val controlDialogDisappear : MutableLiveData<Boolean> = MutableLiveData<Boolean>().apply { value = false }
+
     //一口价报价牌数据
     val onePrcieDataList : MutableLiveData<List<OrderQuoteData>> = MutableLiveData()
 
@@ -43,19 +55,184 @@ class WarehouseReceiptViewModel : BaseViewModel(){
     val goodsInfoList : MutableLiveData<List<SelectData>> = MutableLiveData()
     //选择的期货合约实体
     val selectGoodsInfoData : MutableLiveData<SelectData> = MutableLiveData()
+    /**
+     * 当前选择的资金账户
+     */
+    val usedAccountData : MutableLiveData<AccountData> = MutableLiveData()
+
+    /**
+     * 库存明细
+     */
+    val detailsWarehouseContentDataList: MutableLiveData<List<HoldLBData>> = MutableLiveData()
+
+    //重新赋值资金账户
+    fun resetAccountData(){
+        val accountDataList = GlobalDataCollection.instance?.accountDataList
+        if (accountDataList.isNullOrEmpty().not()) {
+            val accountData = GlobalDataCollection.instance?.accountData
+            accountData?.clearData()
+            accountData?.setNormalData()
+            usedAccountData.postValue(accountData)
+        }
+    }
+
+    //重新赋值资金账户
+    fun resetAccountDataBySelect(data : AccountData){
+        data.clearData()
+        data.setNormalData()
+        usedAccountData.postValue(data)
+    }
+
+
+    /**
+     * 持仓挂牌
+     * @param LadingBillId Long
+     * @param TradeDate String
+     * @param SubNum Long
+     * @param WRFactorTypeId Long
+     * @param UserID Int
+     * @param AccountID Long
+     * @param IsSpecified Int
+     * @param MatchAccIDs List<Long>
+     * @param OrderQty Long
+     * @param DeliveryGoodsID Int
+     * @param WRPriceType Int
+     * @param FixedPrice Double
+     * @param WRTradeGoods WRGoodsInfo
+     * @param PriceFactor Double
+     * @param PriceMove Double
+     * @param TimevalidType Int
+     * @param FirstRatio Double
+     * @param PerformanceTemplateID Long
+     * @param BuyOrSell Int
+     * @param PriceDisplayMode Int
+     * @param CanBargain Int
+     * @param Attachment1 String
+     * @param Attachment2 String
+     * @param Remark String
+     * @param ApplyID Long
+     * @param CanPart Int
+     * @param HasWr Int
+     * @param WRStandardID Int
+     * @param isSuccess Function1<[@kotlin.ParameterName] Boolean, Unit>
+     */
+    fun requeryWRListingOrderReq(
+        LadingBillId: Long = 0,//提单id(wrholdlb的LadingBillId字段),卖的时候填写
+        TradeDate: String = "",//交易日
+        SubNum: Long = 0,// 提单子单号(wrholdlb的SubNum字段),卖的时候填写
+        WRFactorTypeId: Long = 0,//仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写
+        UserID: Int = 0,//用户ID
+        AccountID: Long = 0,//资金账号
+        IsSpecified: Int = 0,//是否指定对手 0 不指定 1 指定
+        MatchAccIDs: List<Long> = arrayListOf(),//仓单贸易对手用户ID集合(指定对手时填写)
+        OrderQty: Long = 0,//委托数量(可挂部分数据量)
+        DeliveryGoodsID: Int = 0,//交割商品商品ID
+        WRPriceType: Int = 0,//价格方式
+        FixedPrice: Double = 0.0,//固定价格
+        WRTradeGoods: WarehouseTradeMI1.WRGoodsInfo,//仓单贸易商品配置集合(浮动价时填写)
+        PriceFactor: Double = 0.0,//价格系数(浮动价时填写)    -   [挂牌]
+        PriceMove: Double = 0.0,//升贴水(浮动价时填写)
+        TimevalidType: Int = 0,//时间有效类型
+        FirstRatio: Double = 0.0,//首付比例
+        PerformanceTemplateID: Long = 0,//履约计划模板ID
+        BuyOrSell: Int = 0,// 买卖方向
+        PriceDisplayMode: Int = 0,//浮动价显示方式
+        CanBargain: Int = 0,//挂牌是否可议价0:不可1:可-摘牌是否议价
+        Attachment1: String = "",//附件1
+        Attachment2: String = "",//附件2
+        Remark: String = "",//备注
+        ApplyID: Long = 0,//申请ID
+        CanPart: Int = 0,//是否允许部份摘牌0:不允许;1:允许
+//        MatchAccIDsString : List<String> = arrayListOf(),//仓单贸易对手用户ID集合(指定对手时填写)
+        DeliveryMonth : String = "",//交收月
+        HasWr: Int = 0,//是否有仓单-0:没有仓单 1:有仓单
+        DelistMinQty : Long = 0,//起摘数量
+        WRStandardID: Int = 0,//现货品种ID
+        FactoryItems : List<WarehouseTradeMI1.DGFactoryItems>,//要素类型明细集合(没有仓单要素ID填写)
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.warehouseManager?.HdWROrderReq(
+                LadingBillId = LadingBillId,
+                TradeDate = TradeDate,
+                AccountID = AccountID,
+                OrderQty = OrderQty,
+                IsSpecified = IsSpecified,
+                SubNum = SubNum,
+                DeliveryMonth = DeliveryMonth,
+                DeliveryGoodsID = DeliveryGoodsID,
+                WRFactorTypeId = WRFactorTypeId,
+                UserID = UserID,
+                MatchAccIDs = MatchAccIDs,
+                WRPriceType = WRPriceType,
+                FixedPrice = FixedPrice,
+                WRTradeGoods = WRTradeGoods,
+                PriceFactor = PriceFactor,
+                PriceMove = PriceMove,
+                DelistMinQty = DelistMinQty,
+                TimevalidType = TimevalidType,
+                FirstRatio = FirstRatio,
+                PerformanceTemplateID = PerformanceTemplateID,
+                BuyOrSell = BuyOrSell,
+                CanPart = CanPart,
+                HasWr = HasWr,
+                WRStandardID = WRStandardID,
+                PriceDisplayMode = PriceDisplayMode,
+                CanBargain = CanBargain,
+                Attachment1 = Attachment1,
+                Attachment2 = Attachment2,
+                Remark = Remark,
+                ApplyID = ApplyID,
+                FactoryItems = FactoryItems
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
+
+    /**
+     * 查询现货明细
+     */
+    fun querydetailsWarehouseWrPosition(data : 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){
+                detailsWarehouseContentDataList.postValue(respData)
+            }
+        }
+    }
 
     //获取选择的仓库ID和选择的要素类型
     //type 为1是仓库 type 为2是其他要素
     fun getSelectWarehouseOrFactoryid(type : String) : String{
         var returnString = ""
         WrStandardFactoryItemDataList.value?.forEach {
-            if (type == it.dgfactoryitemtypeid){
-                it.itemlst?.forEach { data ->
-                    if (data.isSelect == 1){
-                        returnString = data.warehouseid ?: ""
+            if (type == "1"){
+                if ("1" == it.dgfactoryitemtypeid){
+                    it.itemlst?.forEach { data ->
+                        if (data.isSelect == 1){
+                            returnString = data.warehouseid ?: ""
+                        }
                     }
                 }
-            }else {
+            }else{
                 it.itemlst?.forEach { data ->
                     if (data.isSelect == 1){
                         returnString = returnString + "," + data.dgfactoryitemid
@@ -99,19 +276,24 @@ class WarehouseReceiptViewModel : BaseViewModel(){
      * 针对仓库,要素等的item点击
      */
     fun setOnRightItemClick(
+        dgfactoryitemtypeid : String,
         dgfactoryitemid : String
     ){
         val newWrStandardFactoryItemDataList = arrayListOf<FtDeliveryGoodsDataListData>()
         WrStandardFactoryItemDataList.value?.forEach {
             val sonItemList = arrayListOf<WrStandardFactoryItem>()
-            it.itemlst?.forEach { data ->
-                if (dgfactoryitemid == data.dgfactoryitemid){
-                    sonItemList.add(data.copy(isSelect = 1))
-                }else{
-                    sonItemList.add(data.copy(isSelect = 0))
+            if (it.dgfactoryitemtypeid == dgfactoryitemtypeid){
+                it.itemlst?.forEach { data ->
+                    if (dgfactoryitemid == data.dgfactoryitemid){
+                        sonItemList.add(data.copy(isSelect = 1))
+                    }else{
+                        sonItemList.add(data.copy(isSelect = 0))
+                    }
                 }
+                newWrStandardFactoryItemDataList.add(it.copy(itemlst = sonItemList))
+            }else{
+                newWrStandardFactoryItemDataList.add(it)
             }
-            newWrStandardFactoryItemDataList.add(it.copy(itemlst = sonItemList))
         }
         WrStandardFactoryItemDataList.postValue(newWrStandardFactoryItemDataList)
     }
@@ -184,6 +366,22 @@ class WarehouseReceiptViewModel : BaseViewModel(){
     //左侧菜单所有的挂牌信息
     val orderQuoteDataByListed : MutableLiveData<OrderQuoteData> = MutableLiveData()
 
+    //点击挂牌后若找不到相应的信息则组装无仓单要素id的挂牌信息
+    val noWRFactorTypeIdDataForListed : MutableLiveData<ListedData> = MutableLiveData()
+
+    //通过选择的wrstandardid查找相对应的DeliveryGoodsID
+    fun getDeliveryGoodsIDByWRStandardID(wrstandardid : String = "") : String{
+        var deliverygoodsid = ""
+        ftDeliveryGoodsDataList.value?.forEach {
+            it.wdlst?.forEach { data ->
+                if (data.wrstandardid == wrstandardid){
+                    deliverygoodsid = it.deliverygoodsid ?: ""
+                }
+            }
+        }
+        return deliverygoodsid
+    }
+
     /**
      * 查询一口价报价牌用余挂牌时的筛选
      * wrstandardid 品类id
@@ -205,15 +403,16 @@ class WarehouseReceiptViewModel : BaseViewModel(){
                 put("dgitemname",dgitemname)
             }
         }
-        if (wrstandardid.isNotEmpty()){
-            resetSelectContent()
-        }
 
         MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){isSuccess, respData, error ->
             if (isSuccess){
-                 if (respData.isNullOrEmpty().not()){
-                     orderQuoteDataByListed.postValue(respData?.get(0))
-                 }
+                if (respData.isNullOrEmpty().not()){
+                    orderQuoteDataByListed.postValue(respData?.get(0))
+                    resetSelectContent()
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WRStandardID = wrstandardid,FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                    resetSelectContent()
+                }
             }
         }
     }
@@ -268,14 +467,15 @@ class WarehouseReceiptViewModel : BaseViewModel(){
                 put("dgitemname",dgitemname)
             }
         }
-        if (wrstandardid.isNotEmpty()){
-            resetSelectContent()
-        }
 
         MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){isSuccess, respData, error ->
             if (isSuccess){
                 if (respData.isNullOrEmpty().not()){
                     orderQuoteDataByListed.postValue(respData?.get(0))
+                    resetSelectContent()
+                }else{
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryMonth = getDeliveryGoodsIDByWRStandardID(wrstandardid),WRStandardID = warehouseid,FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                    resetSelectContent()
                 }
             }
         }

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

@@ -42,7 +42,7 @@ fun AppCompatActivity.WarehouseScreeningDialog(
 
     lateinit var warehouseRecycview: RecyclerView
 
-    return createCustomDialog(cancelable = false) { dialog ->
+    return createCustomDialog(cancelable = true) { dialog ->
         backgroundColor = Color.parseColor("#5f000000")
 
         verticalLayout {
@@ -224,6 +224,8 @@ fun AppCompatActivity.WarehouseScreeningDialog(
                 linearLayout {
                     background = resources.getDrawable(R.color.white)
                     gravity = Gravity.CENTER_VERTICAL
+
+
                     textView {
                         onThrottleFirstClick {
                             dialog.dismiss()
@@ -271,16 +273,18 @@ fun AppCompatActivity.WarehouseScreeningDialog(
                                 ToastUtils.showLong("请选择仓库")
                                 return@onThrottleFirstClick
                             }
-                            if (viewModel.selectGoodsInfoData.value?.id.isNullOrEmpty()){
-                                ToastUtils.showLong("请选择期货商品")
-                                return@onThrottleFirstClick
+                            if (type == "2"){
+                                if (viewModel.selectGoodsInfoData.value?.id.isNullOrEmpty()){
+                                    ToastUtils.showLong("请选择期货商品")
+                                    return@onThrottleFirstClick
+                                }
                             }
                             if (viewModel.getSelectWarehouseOrFactoryid("2").split(",").size < viewModel.WrStandardFactoryItemDataList.value?.size?.minus(1) ?: 0){
                                 ToastUtils.showLong("请选择必要要素")
                                 return@onThrottleFirstClick
                             }
                             if (type == "1"){
-                                viewModel.queryFloatOrderQuoteByListed(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid ?: "",warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
+                                viewModel.queryOneOrderQuoteByListed(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid ?: "",warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
                             }else{
                                 viewModel.queryFloatOrderQuoteByListed(wrstandardid = viewModel.selectWrFtWrstandardData.value?.wrstandardid ?: "",warehouseid = viewModel.getSelectWarehouseOrFactoryid("1"),dgitemname = viewModel.getSelectWarehouseOrFactoryid("2"))
                             }

+ 31 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/dialog/ListedData.kt

@@ -0,0 +1,31 @@
+package cn.muchinfo.rma.view.base.warehousereceipt.dialog
+
+import cn.muchinfo.rma.global.data.FtDeliveryGoodsDataListData
+import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
+
+//无仓单要素id时的挂单需要传的参数
+data class ListedData(
+    var DeliveryGoodsID : String = "",
+    var WRStandardID : String = "",
+    var DeliveryMonth : String = "",//预售时填入的值,交收月
+    var FactoryItemsList : List<FtDeliveryGoodsDataListData> = arrayListOf()//要素类型明细集合(没有仓单要素ID填写)
+){
+
+    fun getFactoryItems(): List<WarehouseTradeMI1.DGFactoryItems>{
+        val factoryItemsList = arrayListOf<WarehouseTradeMI1.DGFactoryItems>()
+        FactoryItemsList.forEach {
+            val FactoryItems = WarehouseTradeMI1.DGFactoryItems.newBuilder()
+            FactoryItems.setDGFactoryItemTypeID(it.dgfactoryitemtypeid?.toLong() ?: 0)
+            it.itemlst?.forEach {data ->
+                if (data.isSelect == 1){
+                    FactoryItems.setDGFactoryItemID(data.dgfactoryitemid?.toLong() ?: 0)
+                }
+
+            }
+            FactoryItems.setItemTypeMode(1)
+            factoryItemsList.add(FactoryItems.build())
+        }
+
+        return factoryItemsList
+    }
+}

+ 1098 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/dialog/WarehouseOneListedDialog.kt

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

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

@@ -38,6 +38,7 @@ import cn.muchinfo.rma.view.base.platinumtreasure.adapter.QHjRightData;
 import cn.muchinfo.rma.view.base.platinumtreasure.adapter.QhjRightScrollAdapter;
 import cn.muchinfo.rma.view.base.platinumtreasure.trade.PlatinumTradeActivity;
 import cn.muchinfo.rma.view.base.warehousereceipt.BusinessHallActivity;
+import cn.muchinfo.rma.view.base.warehousereceipt.BusinessHallDetailsActivity;
 
 /**
  * 用于千海金铂金宝页面额adapter
@@ -169,7 +170,7 @@ public class FloatPriceAdapter extends RecyclerView.Adapter<FloatPriceAdapter.It
             itemViewHolder.allView.setVisibility(View.GONE);
         }
         itemViewHolder.platnum_buy.setVisibility(View.VISIBLE);
-
+        itemViewHolder.platnum_details.setVisibility(View.VISIBLE);
         itemViewHolder.all_click_View.setOnClickListener(view -> setPosition(i));
 //        itemViewHolder.horItemScrollview.setOnClickListener(new View.OnClickListener() {
 //            @Override
@@ -177,6 +178,13 @@ public class FloatPriceAdapter extends RecyclerView.Adapter<FloatPriceAdapter.It
 //                setPosition(i);
 //            }
 //        });
+        itemViewHolder.platnum_details.setOnClickListener(view -> {
+            Intent intent = new Intent();
+            intent.putExtra("data",data);
+            intent.putExtra("type",type);
+            intent.setClass(context, BusinessHallDetailsActivity.class);
+            ActivityUtils.startActivity(intent);
+        });
         //点击进入买卖大厅
         itemViewHolder.platnum_buy.setOnClickListener(new View.OnClickListener() {
             @Override

+ 16 - 10
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/one/OnePriceAdapter.java

@@ -38,6 +38,7 @@ import cn.muchinfo.rma.view.base.platinumtreasure.adapter.QHjRightData;
 import cn.muchinfo.rma.view.base.platinumtreasure.adapter.QhjRightScrollAdapter;
 import cn.muchinfo.rma.view.base.platinumtreasure.trade.PlatinumTradeActivity;
 import cn.muchinfo.rma.view.base.warehousereceipt.BusinessHallActivity;
+import cn.muchinfo.rma.view.base.warehousereceipt.BusinessHallDetailsActivity;
 
 /**
  * 用于千海金铂金宝页面额adapter
@@ -178,6 +179,7 @@ public class OnePriceAdapter extends RecyclerView.Adapter<OnePriceAdapter.ItemVi
             itemViewHolder.allView.setVisibility(View.GONE);
         }
 
+        itemViewHolder.platnum_details.setVisibility(View.VISIBLE);
         itemViewHolder.all_click_View.setOnClickListener(view -> setPosition(i));//没有点击展开
 //        itemViewHolder.horItemScrollview.setOnClickListener(new View.OnClickListener() {
 //            @Override
@@ -185,17 +187,21 @@ public class OnePriceAdapter extends RecyclerView.Adapter<OnePriceAdapter.ItemVi
 //                setPosition(i);
 //            }
 //        });
+        itemViewHolder.platnum_details.setOnClickListener(view -> {
+            Intent intent = new Intent();
+            intent.putExtra("data",data);
+            intent.putExtra("type",type);
+            intent.setClass(context, BusinessHallDetailsActivity.class);
+            ActivityUtils.startActivity(intent);
+        });
         //点击进入买卖大厅
-        itemViewHolder.platnum_buy.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent();
-                intent.putExtra("data",data);
-                intent.putExtra("type",type);
-                intent.putExtra("pricetype","1");
-                intent.setClass(context, BusinessHallActivity.class);
-                ActivityUtils.startActivity(intent);
-            }
+        itemViewHolder.platnum_buy.setOnClickListener(view -> {
+            Intent intent = new Intent();
+            intent.putExtra("data",data);
+            intent.putExtra("type",type);
+            intent.putExtra("pricetype","1");
+            intent.setClass(context, BusinessHallActivity.class);
+            ActivityUtils.startActivity(intent);
         });
 
 

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

@@ -19,8 +19,9 @@ class WarehouseSelectViewHolder(private val activity : AppCompatActivity,private
     override fun _FrameLayout.createContentView() {
         linearLayout {
             onThrottleFirstClick {
-                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "")
+                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "",dgfactoryitemtypeid = dgfactoryitemtypeid)
             }
+
             gravity = Gravity.CENTER
             textView {
                 gravity = Gravity.CENTER

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

@@ -14,14 +14,14 @@ import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import org.jetbrains.anko.*
 
 //要素子item
-class WrStandardFactoryItemSonViewHolder(private val activity : AppCompatActivity,private val viewModel: WarehouseReceiptViewModel) : BaseViewHolder<WrStandardFactoryItem>(activity){
+class WrStandardFactoryItemSonViewHolder(private val activity : AppCompatActivity,private val viewModel: WarehouseReceiptViewModel,private val dgfactoryitemtypeid : String) : BaseViewHolder<WrStandardFactoryItem>(activity){
 
     override val itemSize: IntArray = intArrayOf(autoSize(160), autoSize(72))
 
     override fun _FrameLayout.createContentView() {
         linearLayout {
             onThrottleFirstClick {
-                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "")
+                viewModel.setOnRightItemClick(dgfactoryitemid = data.value?.dgfactoryitemid ?: "",dgfactoryitemtypeid = dgfactoryitemtypeid)
             }
             gravity = Gravity.CENTER
             data.bindOptional(context){

+ 8 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/viewholder/WrStandardFactoryItemViewHolder.kt

@@ -2,6 +2,7 @@ package cn.muchinfo.rma.view.base.warehousereceipt.viewholder
 
 import android.view.Gravity
 import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
 import androidx.recyclerview.widget.StaggeredGridLayoutManager
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.FtDeliveryGoodsDataListData
@@ -21,9 +22,8 @@ import org.jetbrains.anko.*
 class WrStandardFactoryItemViewHolder(private val activity : AppCompatActivity,private val viewModel: WarehouseReceiptViewModel) : BaseViewHolder<FtDeliveryGoodsDataListData>(activity){
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
-    //要素子item
-    private val spotCategoryAdapter: BaseAdapter<WrStandardFactoryItem, WrStandardFactoryItemSonViewHolder> =
-        BaseAdapter { _, _ -> WrStandardFactoryItemSonViewHolder(activity, viewModel) }
+    //列表
+    lateinit var recyclerview : RecyclerView
 
     override fun _FrameLayout.createContentView() {
         verticalLayout {
@@ -44,13 +44,17 @@ class WrStandardFactoryItemViewHolder(private val activity : AppCompatActivity,p
             }.lparams(matchParent, autoSize(80))
 
             recyclerView {
+                recyclerview = this
                 val staggeredGridLayoutManager = StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)
                 layoutManager = staggeredGridLayoutManager
                 background = resources.getDrawable(R.color.white)
-                adapter = spotCategoryAdapter
             }.lparams(matchParent, wrapContent)
 
             data.bindOptional(context){
+                //要素子item
+               val spotCategoryAdapter: BaseAdapter<WrStandardFactoryItem, WrStandardFactoryItemSonViewHolder> =
+                    BaseAdapter { _, _ -> WrStandardFactoryItemSonViewHolder(activity, viewModel,it?.dgfactoryitemtypeid ?: "") }
+                recyclerview.adapter = spotCategoryAdapter
                 spotCategoryAdapter.setNewData(it?.itemlst)
             }
 

+ 1 - 1
RMA/app/src/main/res/drawable/hnxt_cancel_bg.xml

@@ -2,6 +2,6 @@
 <shape
     xmlns:android="http://schemas.android.com/apk/res/android">
     <solid android:color="#637078"/>
-    <corners android:radius="25dp"
+    <corners android:radius="5dp"
        />
 </shape>

+ 1 - 1
RMA/app/src/main/res/drawable/qhj_main_blue_bg.xml

@@ -2,6 +2,6 @@
 <shape
     xmlns:android="http://schemas.android.com/apk/res/android">
     <solid android:color="@color/rma_blue_color"/>
-    <corners android:radius="25dp"
+    <corners android:radius="5dp"
        />
 </shape>

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

@@ -83,7 +83,7 @@
             android:textSize="12sp"
             android:layout_width="90dp"
             android:layout_height="25dp"
-            android:text="参数调整明细"
+            android:text="撤销"
             android:textColor="@color/rma_blue_color"
             android:background="@drawable/rma_item_click_bg"/>
 
@@ -95,7 +95,7 @@
             android:textSize="12sp"
             android:layout_width="70dp"
             android:layout_height="25dp"
-            android:text="期货明细"
+            android:text="确认提货"
             android:textColor="@color/rma_blue_color"
             android:background="@drawable/rma_item_click_bg"/>
 

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff