فهرست منبع

风险管理9月23日提交代码-liu.bolan-天津掉期

Liu.bolan 4 سال پیش
والد
کامیت
ae689bd043
46فایلهای تغییر یافته به همراه1571 افزوده شده و 784 حذف شده
  1. 6 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/account/AccountManager.kt
  2. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/commodity/CommodityManager.kt
  3. 4 2
      RMA/app/src/main/java/cn/muchinfo/rma/business/commodity/adapter/CommodityAdapter.kt
  4. 3 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/contract/SpotContractInfo.kt
  5. 4 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/contract/adapter/ContractAdapter.kt
  6. 4 4
      RMA/app/src/main/java/cn/muchinfo/rma/global/GlobalDataCollection.kt
  7. 8 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/ContractData.kt
  8. 192 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/DeliveryGoodsDetailData.kt
  9. 199 11
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/MiddleGoodsDetail.kt
  10. 111 112
      RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI2.java
  11. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  12. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  13. 14 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/adapter/ContractPositionContentAdapter.java
  14. 7 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedActivity.kt
  15. 4 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeMenuUtils.kt
  16. 12 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/NewHomeFragment.kt
  17. 8 9
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/AddHedgeGoodsActivity.kt
  18. 2 31
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/HedgeSpeciesDetailsActivity.kt
  19. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/BrandViewHolder.kt
  20. 18 83
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/DemoViewHolder.kt
  21. 49 20
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/NewCommodityInformationViewModel.kt
  22. 119 38
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/SpotCategoryViewHolder.kt
  23. 5 69
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/SpotHedgeViewHolder.kt
  24. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/newhedge/HedgeFutureContractViewHolder.kt
  25. 3 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/newhedge/HedgeFutureViewHolder.kt
  26. 4 67
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/newhedge/HedgeSpotViewHolder.kt
  27. 13 15
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/newhedge/NewHedgeSpeciesViewHolder.kt
  28. 73 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newspot/NewAddSpotCategoryViewHolder.kt
  29. 93 142
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newspot/NewAddSpotGoodsActivity.kt
  30. 228 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newspot/NewAddSpotGoodsViewModel.kt
  31. 21 18
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newspot/NewInsuredVarietyViewHolder.kt
  32. 197 114
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/AddContractActivity.kt
  33. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractPublicView.kt
  34. 43 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractViewModel.kt
  35. 2 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgePlanActivity.kt
  36. 8 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgePlanViewHolder.kt
  37. 11 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/trademain/TradeMainActivity.kt
  38. 13 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/trademain/TradeMainViewModel.kt
  39. 37 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/trademain/TradeNormalViewHolder.kt
  40. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContractDetailActivity.kt
  41. 26 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ProcurementFragment.kt
  42. 6 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/purchasesale/PurchaseSaleFragment.kt
  43. 8 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/sale/SaleFragment.kt
  44. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/tradecircle/TradeCircleDelistedActivity.kt
  45. BIN
      RMA/app/src/main/res/mipmap-xhdpi/rma_review_settings.png
  46. BIN
      RMA/app/src/main/res/mipmap-xhdpi/rma_trading_main_body.png

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

@@ -471,7 +471,9 @@ class AccountManager {
                 it.code == "client_mobile_hnstcztx" ||
                 it.code == "client_mobile_hnstckhq" ||
                 it.code == "client_mobile_hnstwymh" ||
-                it.code == "client_mobile_hnstwyys"
+                it.code == "client_mobile_hnstwyys" ||
+                it.code == "client_trademain" ||
+                it.code == "client_aduitsetting"
             ) {
                 newList.add(it)
             }
@@ -481,6 +483,9 @@ class AccountManager {
             (t1.sort?.toInt()?.minus(t2.sort?.toInt() ?: 0) ?: 0)
         })
 
+        newList.add(ClientMenuData(code = "client_trademain",title = "交易主体",isshow = true))
+        newList.add(ClientMenuData(code = "client_aduitsetting",title = "审核设置",isshow = true))
+
         GlobalDataCollection.instance?.homeMenuTabName = newList
     }
 

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

@@ -612,7 +612,7 @@ class CommodityManager {
 
         tradeSocketManager.send(
             reqPacket,
-            FunCode.ErmsMiddelGoodsStopRsp,
+            FunCode.FID_DeliveryGoodsApplyCloudRsp,
             object : Callback<Packet50> {
                 override fun onSuccess(rsp: Packet50?) {
                     val rst = CommodityAdapter.analysisDeliveryGoodsApplyCloudRsp(rsp!!)

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

@@ -46,12 +46,14 @@ object CommodityAdapter {
         builder.version = version
         builder.userid = loginInfo.userID.toLong()
         builder.loginid = loginInfo.loginID
-        builder.deliverygoodscode = deliverygoodscode
+        //品种代码code新版本页面没有可选页面,不填了
+//        builder.deliverygoodscode = deliverygoodscode
         builder.deliverygoodsname = deliverygoodsname
         if (type == 2){
             builder.deliverygoodsid = deliverygoodsid
         }
-        builder.unitid = unitid
+        //单位新版本页面没有可选页面,不填了
+//        builder.unitid = unitid
         builder.remark = remark
         builder.type = type
         builder.addAllGldwrstandards(gldwrstandards)

+ 3 - 1
RMA/app/src/main/java/cn/muchinfo/rma/business/contract/SpotContractInfo.kt

@@ -71,5 +71,7 @@ data class SpotContractInfo(
     var BizType : Int = 0,//业务类型
     var SaleUserID : Long = 0,//业务员
     var AccountID : Long = 0,//期货账户ID
-    var CurrencyID : Int = 0//结算币种ID
+    var CurrencyID : Int = 0,//结算币种ID
+    var SubjectID : Long = 0,//交易主体ID
+    var BizSubjectID : Long = 0//归属业务部门ID
 )

+ 4 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/contract/adapter/ContractAdapter.kt

@@ -79,6 +79,7 @@ object ContractAdapter {
             if (it.ConvertFactor != 0.0) {
                 contractInfobuilder.convertFactor = it.ConvertFactor
             }
+
 //            if (it.BizType.toString() != "0"){
 //                contractInfobuilder.bizType = it.BizType
 //            }
@@ -260,6 +261,9 @@ object ContractAdapter {
             if (it.DeliveryDesc.isNotEmpty()) {
                 contractInfobuilder.deliveryDesc = it.DeliveryDesc
             }
+            if (it.SubjectID != 0L){
+                contractInfobuilder.subjectID = it.SubjectID
+            }
             if (it.DeliveryEndDate.isNotEmpty()) {
                 contractInfobuilder.deliveryEndDate = it.DeliveryEndDate + " 00:00:00"
             }

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

@@ -36,10 +36,10 @@ class GlobalDataCollection : BaseGlobalData() {
      * 获取三级菜单权限
      */
     fun getThreeLevelMenu(firstCode : String,secondCode : String,threeCode : String) : Boolean{
-//        return true
-        val secondChildList = ermcpRoleFuncMenuDataArrayList.find { firstCode == it.code }?.children
-        val threeChildList = secondChildList?.find { secondCode == it.code }?.children
-        return threeChildList?.find { threeCode == it.code }?.isshow ?: false
+        return true
+//        val secondChildList = ermcpRoleFuncMenuDataArrayList.find { firstCode == it.code }?.children
+//        val threeChildList = secondChildList?.find { secondCode == it.code }?.children
+//        return threeChildList?.find { threeCode == it.code }?.isshow ?: false
     }
 
     /**

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

@@ -51,6 +51,10 @@ import com.google.gson.annotations.SerializedName
  * @constructor
  */
 data class ContractData(
+    @SerializedName("subjectid")
+    val subjectid : String? = "",//交易主体id
+    @SerializedName("subjectname")
+    val subjectname : String? = "",//交易主体名称
     @SerializedName("accountid")
     val accountid: String? = "",
     @SerializedName("accountname")
@@ -253,6 +257,8 @@ data class ContractData(
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
         parcel.readInt(),
         parcel.readString(),
         parcel.readString(),
@@ -295,6 +301,8 @@ data class ContractData(
     }
 
     override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(subjectid)
+        parcel.writeString(subjectname)
         parcel.writeString(accountid)
         parcel.writeString(accountname)
         parcel.writeString(contracctstatus)

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

@@ -14,6 +14,27 @@ data class DeliveryGoodsDetailData(
     var categoryIsSelect : Int = 1,//品类是否展开
     @SerializedName("brandIsSelect")
     var brandIsSelect : Int = 1,//品牌是否展开
+    @SerializedName("areauserid")
+    val areauserid : String? = "",//所属机构
+    @SerializedName("deliverygoodscode")
+    val deliverygoodscode : String? = "",//现货品种代码
+    @SerializedName("deliverygoodsid")
+    val deliverygoodsid : String? = "",//现货品种ID(SEQ_DELIVERYGOODS)
+    @SerializedName("deliverygoodsname")
+    val deliverygoodsname : String? = "",//现货品种名称
+    @SerializedName("dgstatus")
+    val dgstatus : String? = "",////品种状态 - 作废 - 0:未激活 1:正常
+    @SerializedName("isvalid")
+    val isvalid : String? = "",//是否有效 - 0:无效 1:有效
+    @SerializedName("remark")
+    val remark : String? = "",//备注
+    @SerializedName("unitid")
+    val unitid : String? = "",//单位id(目前看,数据库中是空值)
+    @SerializedName("bdlst")
+    val bdlst : List<Xhnrand>? = arrayListOf(),//品牌列表
+    @SerializedName("wdlst")
+    val wdlst : List<XhWrstandard>? = arrayListOf(),//品类(现货商品)列表
+
     @SerializedName("data")
     val data : ErmcpDeliveryGoods? = ErmcpDeliveryGoods(),
     @SerializedName("gblist")
@@ -29,6 +50,16 @@ data class DeliveryGoodsDetailData(
         parcel.readInt(),
         parcel.readInt(),
         parcel.readInt(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.createTypedArrayList(Xhnrand),
+        parcel.createTypedArrayList(XhWrstandard),
         parcel.readParcelable(ErmcpDeliveryGoods::class.java.classLoader),
         parcel.createTypedArrayList(Ermcp3Brand),
         parcel.createTypedArrayList(Ermcp3Wrstandard),
@@ -41,6 +72,16 @@ data class DeliveryGoodsDetailData(
         parcel.writeInt(isSelectAll)
         parcel.writeInt(categoryIsSelect)
         parcel.writeInt(brandIsSelect)
+        parcel.writeString(areauserid)
+        parcel.writeString(deliverygoodscode)
+        parcel.writeString(deliverygoodsid)
+        parcel.writeString(deliverygoodsname)
+        parcel.writeString(dgstatus)
+        parcel.writeString(isvalid)
+        parcel.writeString(remark)
+        parcel.writeString(unitid)
+        parcel.writeTypedList(bdlst)
+        parcel.writeTypedList(wdlst)
         parcel.writeParcelable(data, flags)
         parcel.writeTypedList(gblist)
         parcel.writeTypedList(gmlist)
@@ -62,8 +103,159 @@ data class DeliveryGoodsDetailData(
         }
     }
 
+
+}
+
+
+//现货商品
+data class XhWrstandard(
+    @SerializedName("deliverygoodsid")
+    val deliverygoodsid : String? = "",//品种ID
+    @SerializedName("enumdicname")
+    val enumdicname : String? = "",//单位名称
+    @SerializedName("unitid")
+    val unitid : String? = "",//单位id
+    @SerializedName("vatrate")
+    val vatrate : String? = "",//增值税率
+    @SerializedName("wrstandardcode")
+    val wrstandardcode : String? = "",//现货商品代码
+    @SerializedName("wrstandardid")
+    val wrstandardid : String? = "",//现货商品ID(SEQ_WRSTANDARD)
+    @SerializedName("wrstandardname")
+    val wrstandardname : String? = "",//现货商品名称
+    @SerializedName("mglst")
+    val mglst : List<XhMiddlergoods>? = arrayListOf(),//套保品种列表
+    var isClickMiddle : Int = 0//是否展开套保品种
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.createTypedArrayList(XhMiddlergoods),
+        parcel.readInt()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(deliverygoodsid)
+        parcel.writeString(enumdicname)
+        parcel.writeString(unitid)
+        parcel.writeString(vatrate)
+        parcel.writeString(wrstandardcode)
+        parcel.writeString(wrstandardid)
+        parcel.writeString(wrstandardname)
+        parcel.writeTypedList(mglst)
+        parcel.writeInt(isClickMiddle)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<XhWrstandard> {
+        override fun createFromParcel(parcel: Parcel): XhWrstandard {
+            return XhWrstandard(parcel)
+        }
+
+        override fun newArray(size: Int): Array<XhWrstandard?> {
+            return arrayOfNulls(size)
+        }
+    }
+
 }
 
+//套保品种列表
+data class XhMiddlergoods(
+    @SerializedName("convertratio")
+    val convertratio : String? = "",//拆算系数
+    @SerializedName("enumdicname")
+    val enumdicname : String? = "",//单位名称
+    @SerializedName("middlegoodscode")
+    val middlegoodscode : String? = "",//套保品种代码
+    @SerializedName("middlegoodsid")
+    val middlegoodsid : String? = "",//套保品种id
+    @SerializedName("middlegoodsname")
+    val middlegoodsname : String? = "",//套保品种名称
+    @SerializedName("unitid")
+    val unitid : String? = ""//单位id
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(convertratio)
+        parcel.writeString(enumdicname)
+        parcel.writeString(middlegoodscode)
+        parcel.writeString(middlegoodsid)
+        parcel.writeString(middlegoodsname)
+        parcel.writeString(unitid)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<XhMiddlergoods> {
+        override fun createFromParcel(parcel: Parcel): XhMiddlergoods {
+            return XhMiddlergoods(parcel)
+        }
+
+        override fun newArray(size: Int): Array<XhMiddlergoods?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}
+
+
+
+
+//品牌列表
+data class Xhnrand(
+    @SerializedName("brandid")
+    val brandid : String? = "",//品牌id
+    @SerializedName("brandname")
+    val brandname : String? = ""//品牌名称
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(brandid)
+        parcel.writeString(brandname)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<Xhnrand> {
+        override fun createFromParcel(parcel: Parcel): Xhnrand {
+            return Xhnrand(parcel)
+        }
+
+        override fun newArray(size: Int): Array<Xhnrand?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}
+
+
 data class ErmcpDeliveryGoods(
     @SerializedName("agreeunit")
     val agreeunit : String? = "",//合约单位[散货时默认为1, 整装时默认为标准数量]

+ 199 - 11
RMA/app/src/main/java/cn/muchinfo/rma/global/data/MiddleGoodsDetail.kt

@@ -4,6 +4,114 @@ import android.os.Parcel
 import android.os.Parcelable
 import com.google.gson.annotations.SerializedName
 
+data class TBGoodsGroup(
+    @SerializedName("isFutureSelect")
+    var isFutureSelect : Int = 0,//期货合约是否展开
+    @SerializedName("convertratio")
+    val convertratio : String? = "",
+    @SerializedName("enumdicname")
+    val enumdicname:  String? = "",
+    @SerializedName("exexchangecode")
+    val exexchangecode:  String? = "",
+    @SerializedName("exexchangename")
+    val exexchangename : String? = "",
+    @SerializedName("goodsgroupid")
+    val goodsgroupid:  String? = "",
+    @SerializedName("goodsgroupname")
+    val goodsgroupname:  String? = "",
+    @SerializedName("goodunitid")
+    val goodunitid : String? = "",
+    @SerializedName("GDLST")
+    val glist : List<TBGoods>? = arrayListOf()
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readInt(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.createTypedArrayList(TBGoods)
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeInt(isFutureSelect)
+        parcel.writeString(convertratio)
+        parcel.writeString(enumdicname)
+        parcel.writeString(exexchangecode)
+        parcel.writeString(exexchangename)
+        parcel.writeString(goodsgroupid)
+        parcel.writeString(goodsgroupname)
+        parcel.writeString(goodunitid)
+        parcel.writeTypedList(glist)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<TBGoodsGroup> {
+        override fun createFromParcel(parcel: Parcel): TBGoodsGroup {
+            return TBGoodsGroup(parcel)
+        }
+
+        override fun newArray(size: Int): Array<TBGoodsGroup?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+
+}
+
+data class TBGoods(
+    @SerializedName("agreeunit")
+    val agreeunit : String? = "",
+    @SerializedName("enumdicname")
+    val enumdicname : String? = "",
+    @SerializedName("goodscode")
+    val goodscode : String? = "",
+    @SerializedName("goodsid")
+    val goodsid : String? = "",
+    @SerializedName("goodsname")
+    val goodsname : String? = ""
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(agreeunit)
+        parcel.writeString(enumdicname)
+        parcel.writeString(goodscode)
+        parcel.writeString(goodsid)
+        parcel.writeString(goodsname)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<TBGoods> {
+        override fun createFromParcel(parcel: Parcel): TBGoods {
+            return TBGoods(parcel)
+        }
+
+        override fun newArray(size: Int): Array<TBGoods?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}
+
+
 data class MiddleGoodsDetail(
     @SerializedName("isAllSelect")
     var isAllSelect : Int = 0,//是否全部展开
@@ -11,20 +119,38 @@ data class MiddleGoodsDetail(
     var isFutureTypeSelect : Int = 1,//期货品种是否展开
     @SerializedName("isSpotTypeSelect")
     var isSpotTypeSelect : Int = 1,//现货品种是否展开
-    @SerializedName("gplist")
-    val gplist : List<Ermcp3GoodsGroupEx>? = arrayListOf(),//关联商品组列表 期货
-    @SerializedName("mg")
-    val mg : ErmcpMiddleGoodsModel? = ErmcpMiddleGoodsModel(),
-    @SerializedName("dglist")
-    val dglist : List<ErmcpDeliveryGoodsDetail>? = arrayListOf()//关联的现货品种列表 现货
+    @SerializedName("GPLST")
+    val gplist : List<TBGoodsGroup>? = arrayListOf(),//关联商品组列表 期货
+    @SerializedName("areauserid")
+    val areauserid : String? = "",//机构用户ID
+    @SerializedName("enumdicname")
+    val enumdicname : String? = "",//单位名称
+    @SerializedName("middlegoodscode")
+    val middlegoodscode : String? = "",//套保品种代码
+    @SerializedName("middlegoodsid")
+    val middlegoodsid : String? = "",//套保品种ID(SEQ_ERMS_MIDDLEGOODS)
+    @SerializedName("middlegoodsname")
+    val middlegoodsname : String? = "",//套保品种名称
+    @SerializedName("needarbitrageratio")
+    val needarbitrageratio :String? = "",//套利比率
+    @SerializedName("needhedgeratio")
+    val needhedgeratio : String? = "",//套保比率
+    @SerializedName("WDLST")
+    val wdlst : List<TBWrstandard>? = arrayListOf()//关联的现货品种列表 现货
 ) : Parcelable{
     constructor(parcel: Parcel) : this(
         parcel.readInt(),
         parcel.readInt(),
         parcel.readInt(),
-        parcel.createTypedArrayList(Ermcp3GoodsGroupEx),
-        parcel.readParcelable(ErmcpMiddleGoodsModel::class.java.classLoader),
-        parcel.createTypedArrayList(ErmcpDeliveryGoodsDetail)
+        parcel.createTypedArrayList(TBGoodsGroup),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.createTypedArrayList(TBWrstandard)
     ) {
     }
 
@@ -33,8 +159,14 @@ data class MiddleGoodsDetail(
         parcel.writeInt(isFutureTypeSelect)
         parcel.writeInt(isSpotTypeSelect)
         parcel.writeTypedList(gplist)
-        parcel.writeParcelable(mg, flags)
-        parcel.writeTypedList(dglist)
+        parcel.writeString(areauserid)
+        parcel.writeString(enumdicname)
+        parcel.writeString(middlegoodscode)
+        parcel.writeString(middlegoodsid)
+        parcel.writeString(middlegoodsname)
+        parcel.writeString(needarbitrageratio)
+        parcel.writeString(needhedgeratio)
+        parcel.writeTypedList(wdlst)
     }
 
     override fun describeContents(): Int {
@@ -51,8 +183,64 @@ data class MiddleGoodsDetail(
         }
     }
 
+
+}
+
+//商品信息列表(现货品类)
+data class TBWrstandard(
+    @SerializedName("convertratio")
+    val convertratio : String? = "",//折算系数
+    @SerializedName("deliverygoodsname")
+    val deliverygoodsname : String? = "",//品种名称
+    @SerializedName("enumdicname")
+    val enumdicname : String? = "",//单位名称
+    @SerializedName("vatrate")
+    val vatrate : String? = "",//增值税率
+    @SerializedName("wrstandardcode")
+    val wrstandardcode : String? = "",//现货商品代码
+    @SerializedName("wrstandardid")
+    val wrstandardid : String? = "",//现货商品ID(SEQ_WRSTANDARD)
+    @SerializedName("wrstandardname")
+    val wrstandardname : String? = ""//现货商品名称
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(convertratio)
+        parcel.writeString(deliverygoodsname)
+        parcel.writeString(enumdicname)
+        parcel.writeString(vatrate)
+        parcel.writeString(wrstandardcode)
+        parcel.writeString(wrstandardid)
+        parcel.writeString(wrstandardname)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<TBWrstandard> {
+        override fun createFromParcel(parcel: Parcel): TBWrstandard {
+            return TBWrstandard(parcel)
+        }
+
+        override fun newArray(size: Int): Array<TBWrstandard?> {
+            return arrayOfNulls(size)
+        }
+    }
+
 }
 
+
 //关联的现货品种列表
 data class ErmcpDeliveryGoodsDetail(
     @SerializedName("data")

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 111 - 112
RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/ManageServiceMI2.java


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

@@ -169,12 +169,12 @@ class MainActivity : BaseActivity<MainViewModel>() {
         newNormalIcon.add(R.mipmap.main_tab_1)
         newSelectIcon.add(R.mipmap.rma_select_main_tab_1)
 
-        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_spots") == true) {
+//        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_spots") == true) {
             newFragments.add(spotFragment)
             newTabText.add("现货")
             newNormalIcon.add(R.mipmap.main_tab_2)
             newSelectIcon.add(R.mipmap.rma_select_main_tab_2)
-        }
+//        }
 
 //        if (GlobalDataCollection.instance?.getFirstLevelMenu("client_po") == true) {
 //            newFragments.add(procurementFragment)

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

@@ -16,7 +16,7 @@ object Constant {
 //    const val baseurl = "http://192.168.31.93:8080/cfg?key=test_93"//李倩企业风管 18611112222
 //    const val baseurl = "http://192.168.31.104:8080/cfg?key=test_104"//李倩云融 18611112222
 //
-//    const val baseurl = "http://192.168.31.135:8080/cfg?key=test_135"// 瑶姐 云融 130000000001 123456
+    const val baseurl = "http://192.168.31.135:8080/cfg?key=test_135"// 瑶姐 云融 190000000001 123456
 
 //    const val baseurl = "http://192.168.31.175:8080/cfg?key=test_175" // 8888  123123
 //    const val baseurl = "http://192.168.31.223:8080/cfg?key=test_223"
@@ -30,7 +30,7 @@ object Constant {
 //    const val baseurl = "http://192.168.31.136:8080/cfg?key=test_136"//黄老板 华南顺通
 
 //    const val baseurl = "http://192.168.31.176:8080/cfg?key=test_176"//黄老板 天津麦顿调试
-    const val baseurl = "http://192.168.31.167:8080/cfg?key=test_167"//黄老板 平安云平台(企业风管)
+//    const val baseurl = "http://192.168.31.167:8080/cfg?key=test_167"//黄老板 平安云平台(企业风管)
 
     /**
      * 用sp存储基础url的key

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

@@ -155,7 +155,7 @@ public class ContractPositionContentAdapter extends RecyclerView.Adapter<Contrac
                 if (closePrice == 0.0){
                     Profit = "--";
                 }else {
-                    Profit = NumberUtils.roundNum(((differencePrice / closePrice) * 100),2) + "%";
+                    Profit = NumberUtils.roundNum(differencePrice * Double.parseDouble(data.getCurpositionqty()),2) ;
                 }
             }
             //浮动盈亏
@@ -249,8 +249,20 @@ public class ContractPositionContentAdapter extends RecyclerView.Adapter<Contrac
         //交收
         itemViewHolder.fanacel_register.setOnClickListener(view -> {
             Intent intent = new Intent();
+            DeliveryRelationData newdeliveryData = null;
+            List<DeliveryRelationData> newdataList = GlobalDataCollection.Companion.getInstance().getDeliveryRelationDataArrayList();
+
+            for (int j = 0; j < dataList.size(); j++) {
+                if (data.getGoodsid().equals(dataList.get(j).getGoodsid())){
+                    newdeliveryData = dataList.get(j);
+                    if (dataList.get(j).getDeliverytype().equals("1") || dataList.get(j).getDeliverytype().equals("3")){//云融大宗的挂牌转让
+                        intent.putExtra("type","1");
+                    }else {//云融大宗的基差点价
+                        intent.putExtra("type","2");
+                    }
+                }
+            }
 
-            intent.putExtra("type",type);
             intent.putExtra("data", data);
             intent.setClass(context, DeliveryActivity.class);
             ActivityUtils.startActivity(intent);

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

@@ -563,8 +563,13 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             }.lparams(autoSize(250), wrapContent)
 
                             numberEditText3 {
-                                viewModel.quoteDayData.bindOptional(context){
-
+                                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
                                 text = "0"

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

@@ -56,6 +56,10 @@ fun String.getMenuIcon() : Int{
         returnString = R.mipmap.yrdz_home_wymh_icon
     }else if (this == "client_mobile_hnstwyys"){//我要预售
         returnString = R.mipmap.yrdz_home_wyys_icon
+    }else if (this == "client_trademain"){//交易主体
+        returnString = R.mipmap.rma_trading_main_body
+    }else if (this == "client_aduitsetting"){//审核设置
+        returnString = R.mipmap.rma_review_settings
     }
 
     return returnString

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

@@ -46,8 +46,10 @@ import cn.muchinfo.rma.view.base.home.inventory.inventoryaudit.InventoryAuditAct
 import cn.muchinfo.rma.view.base.home.inventory.inventorymanager.InventoryManagerActivity
 import cn.muchinfo.rma.view.base.home.reference.ReferenceActivity
 import cn.muchinfo.rma.view.base.home.reportquery.ReportQueryActivity
+import cn.muchinfo.rma.view.base.home.reviewset.ReviewSettingActivity
 import cn.muchinfo.rma.view.base.home.set.SettingActivity
 import cn.muchinfo.rma.view.base.home.spotmarket.SpotMarketPriceActivity
+import cn.muchinfo.rma.view.base.home.trademain.TradeMainActivity
 import cn.muchinfo.rma.view.base.home.tradingquery.TradingQueryActivity
 import cn.muchinfo.rma.view.base.home.warehouse.WarehouseInformationActivity
 import cn.muchinfo.rma.view.base.main.castsurely.MyCastSurelyActivity
@@ -794,6 +796,16 @@ fun jumpActivity(context : Context,code : String){
             context,
             BookingWarehouseActivity::class.java// 黄老板说的要跳去预售仓单
         )
+    }else if (code == "client_trademain"){//交易主体
+        intent.setClass(
+            context,
+            TradeMainActivity::class.java//
+        )
+    }else if (code == "client_aduitsetting"){//审核设置
+        intent.setClass(
+            context,
+            ReviewSettingActivity::class.java//
+        )
     }
     ActivityUtils.startActivity(intent)
 }

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

@@ -53,15 +53,15 @@ class AddHedgeGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
     /**
      * 选择的套保品种
      */
-    val selectAvalidGoodsData: MutableLiveData<ErmcpMiddleGoodsModel> = MutableLiveData()
+    val selectAvalidGoodsData: MutableLiveData<MiddleGoodsDetail> = MutableLiveData()
 
     val dialog by lazy { createLoadingDialog(hintStr = "请求中...") }
 
     //用于修改,停用,恢复,详情的初始化数据
     fun init() {
         if (type == "2" || type == "3" || type == "5") {
-            selectAvalidGoodsData.postValue(data.mg ?: ErmcpMiddleGoodsModel())
-            viewModel.queryMiddleGoodsDetail(data.mg?.middlegoodsid ?: "") {
+            selectAvalidGoodsData.postValue(data ?: MiddleGoodsDetail())
+            viewModel.queryMiddleGoodsDetail(data?.middlegoodsid ?: "") {
 //                selectAvalidGoodsData.postValue(this)
                 viewModel.queryGGConvertConfig(this.srcgoodsgroupid ?: "")
             }
@@ -138,7 +138,7 @@ class AddHedgeGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
                             }
 
                             textView {
-                                text = data.mg?.middlegoodsname
+                                text = data.middlegoodsname
 //                                selectAvalidGoodsData.bindOptional(context) {
 //                                    if (type == "2" || type == "3" || type == "5") {
 //                                        text = data.mg?.middlegoodsname
@@ -183,7 +183,7 @@ class AddHedgeGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
                             }
 
                             textView {
-                                text = data.mg?.middlegoodscode
+                                text = data.middlegoodscode
 //                                selectAvalidGoodsData.bindOptional(context) {
 //                                    if (type == "2" || type == "3" || type == "5") {
 //                                        text = data.mg?.middlegoodscode
@@ -218,7 +218,7 @@ class AddHedgeGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
                             }
 
                             textView {
-                                text = data.mg?.enumdicname
+                                text = data.enumdicname
 //                                viewModel.ggConvertConfigDataList.bindOptional(context) {
 //                                    text = it?.get(0)?.dstunitidname
 //                                }
@@ -248,7 +248,7 @@ class AddHedgeGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
                             }
 
                             textView {
-                                setText(NumberUtils.doubleDistortion(data.mg?.needhedgeratio?.toDouble()?.times(100).toString()))
+                                setText(NumberUtils.doubleDistortion(data.needhedgeratio?.toDouble()?.times(100).toString()))
 //                                viewModel.ggConvertConfigDataList.bindOptional(context) {
 //                                    text = it?.get(0)?.dstunitidname
 //                                }
@@ -382,10 +382,9 @@ class AddHedgeGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
 //                                }
                             } else if (type == "2") {
                                 viewModel.requestErmsMiddelGoodsEditReq(
-                                    middlegoodsid = data.mg?.middlegoodsid?.toLong() ?: 0,
+                                    middlegoodsid = data.middlegoodsid?.toLong() ?: 0,
                                     needhedgeratio = hedge_ratio_edtittext.text.toString()
                                         .toDouble().div(100),
-                                    goodsgroupid = data.mg?.goodsgroupid?.toLong() ?: 0,
                                     modifierid = GlobalDataCollection.instance?.loginRsp?.userID?.toLong()
                                         ?: 0,
                                     areauserid = GlobalDataCollection.instance?.loginRsp?.userID?.toLong()

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

@@ -101,35 +101,6 @@ class HedgeSpeciesDetailsActivity : BaseActivity<CommodityInformationViewModel>(
                 }
             }
 
-            linearLayout {
-                gravity = Gravity.CENTER_VERTICAL
-//                        rma_yellow_text_color
-                background = resources.getDrawable(R.color.rma_pass_status)//rma_pass_status已通过背景色
-
-                imageView {
-                    if (data.mg?.isvalid == "1") {
-                        imageResource = R.mipmap.rma_pass_status
-                    } else {
-                        imageResource = R.mipmap.rma_wait_status
-                    }
-                }.lparams(autoSize(38), autoSize(38)) {
-                    marginStart = autoSize(37)
-                }
-                textView {
-                    if (data.mg?.isvalid == "1") {
-                        textColorInt = R.color.rma_green_color
-                        text = "正常"
-                    } else {
-                        textColorInt = R.color.rma_yellow_text_color
-                        text = "停用"
-                    }
-                    textSizeAuto = 31
-
-                }.lparams(wrapContent, wrapContent) {
-                    marginStart = autoSize(20)
-                }
-            }.lparams(matchParent, autoSize(60))
-
             tabSegment {
                 visibility = View.GONE
                 segment = this
@@ -245,7 +216,7 @@ class ChangeRecordUI(
         BaseAdapter { _, _ -> ChangeLogViewHolder(activity) }
 
     init {
-        viewModel.queryMiddleGoodsChangeLog(middlegoodsid = data.mg?.middlegoodsid ?: "")
+        viewModel.queryMiddleGoodsChangeLog(middlegoodsid = data.middlegoodsid ?: "")
     }
 
     val root = _FrameLayout(activity).apply {
@@ -300,7 +271,7 @@ class ChangeRecordUI(
                     setEnableLoadMore(false)
                     setOnRefreshListener {
                         viewModel.queryMiddleGoodsChangeLog(
-                            middlegoodsid = data.mg?.middlegoodsid ?: ""
+                            middlegoodsid = data.middlegoodsid ?: ""
                         )
                     }
                     setEnableScrollContentWhenLoaded(false)

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

@@ -4,6 +4,7 @@ import android.view.Gravity
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.Ermcp3Brand
+import cn.muchinfo.rma.global.data.Xhnrand
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.autoSize
 import cn.muchinfo.rma.view.autoWidget.textColorInt
@@ -12,7 +13,7 @@ import cn.muchinfo.rma.view.base.home.contract.emptyView
 import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import org.jetbrains.anko.*
 
-class BrandViewHolder(private val activity : AppCompatActivity,private val viewModel: NewCommodityInformationViewModel): BaseViewHolder<Ermcp3Brand>(activity){
+class BrandViewHolder(private val activity : AppCompatActivity,private val viewModel: NewCommodityInformationViewModel): BaseViewHolder<Xhnrand>(activity){
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
     override fun _FrameLayout.createContentView() {

+ 18 - 83
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/DemoViewHolder.kt

@@ -26,18 +26,14 @@ class DemoViewHolder(
 
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
-    //品类adapter
-    private val spotCategoryAdapter: BaseAdapter<Ermcp3Wrstandard, SpotCategoryViewHolder> =
-        BaseAdapter { _, _ -> SpotCategoryViewHolder(activity, viewModel) }
+    //品类adapter(商品--第一版就是叫商品,后来改为品类,现在又改回商品,,,,,甚是无语)
+    private val spotCategoryAdapter: BaseAdapter<XhWrstandard, SpotCategoryViewHolder> =
+        BaseAdapter { _, _ -> SpotCategoryViewHolder(activity, viewModel,dataIndex) }
 
     //品牌adapter
-    private val brandAdapter: BaseAdapter<Ermcp3Brand, BrandViewHolder> =
+    private val brandAdapter: BaseAdapter<Xhnrand, BrandViewHolder> =
         BaseAdapter { _, _ -> BrandViewHolder(activity, viewModel) }
 
-    //套保品种adapter
-    private val hedgeAdapter: BaseAdapter<Ermcp3MiddleGoodsDetail, SpotHedgeViewHolder> =
-        BaseAdapter { _, _ -> SpotHedgeViewHolder(activity, viewModel, dataIndex) }
-
     override fun _FrameLayout.createContentView() {
         verticalLayout {
             linearLayout {
@@ -54,7 +50,7 @@ class DemoViewHolder(
 
                 textView {
                     data.bindOptional(context){
-                        text = it?.data?.deliverygoodsname + "(" + it?.data?.enumdicname + ")"
+                        text = it?.deliverygoodsname
                     }
                     textSizeAuto = 36
                     textColorInt = R.color.rma_black_33
@@ -206,71 +202,7 @@ class DemoViewHolder(
                         visibility = View.VISIBLE
                     }
                 }
-                linearLayout {
-                    gravity = Gravity.CENTER_VERTICAL
-                    linearLayout {
-                        gravity = Gravity.CENTER_VERTICAL
-                        imageView {
-                            data.bindOptional(context) {
-                                if (it?.categoryIsSelect == 0) {
-                                    imageResource = R.mipmap.second_list_can_floding
-                                } else {
-                                    imageResource = R.mipmap.second_list_floding
-                                }
-                            }
-                            onThrottleFirstClick {
-                                viewModel.setOnCategoryClick(dataIndex)
-                            }
-
-                        }.lparams(autoSize(43), autoSize(43)) {
-                            marginStart = autoSize(44)
-                        }
-
-                        textView {
-                            text = "品类"
-                            textSizeAuto = autoSize(31)
-                            textColorInt = R.color.rma_black_33
-                        }.lparams(wrapContent, wrapContent) {
-                            marginStart = autoSize(20)
-                        }
-                    }.lparams(autoSize(350), autoSize(108))
-                    linearLayout {
-                        gravity = Gravity.CENTER
-                        textView {
-                            text = "单位"
-                            textSizeAuto = 31
-                            textColorInt = R.color.rma_hint_text_color_ccc
-                        }.lparams(wrapContent, wrapContent)
-                    }.lparams(autoSize(200), autoSize(108))
-                    linearLayout {
-                        gravity = Gravity.CENTER_VERTICAL
-                        emptyView()
-                        textView {
-                            text = "标仓系数"
-                            textSizeAuto = 31
-                            textColorInt = R.color.rma_hint_text_color_ccc
-                        }.lparams(wrapContent, wrapContent) {
-                            marginEnd = autoSize(79)
-                        }
-                    }.lparams(autoSize(350), autoSize(108))
-                }.lparams(matchParent, autoSize(108))
-
-                //品类
-                recyclerView {
-                    data.bindOptional(context) {
-                        if (it?.categoryIsSelect == 0) {
-                            visibility = View.GONE
-                        } else {
-                            visibility = View.VISIBLE
-                        }
-                    }
-                    background = resources.getDrawable(R.color.white)
-                    adapter = spotCategoryAdapter
-                }.lparams(matchParent, wrapContent)
 
-                data.bindOptional(context) {
-                    spotCategoryAdapter.setNewData(it?.gmlist)
-                }
 
                 linearLayout {
                     gravity = Gravity.CENTER_VERTICAL
@@ -313,7 +245,7 @@ class DemoViewHolder(
                 }.lparams(matchParent, wrapContent)
 
                 data.bindOptional(context) {
-                    brandAdapter.setNewData(it?.gblist)
+                    brandAdapter.setNewData(it?.bdlst)
                 }
 
                 linearLayout {
@@ -322,14 +254,14 @@ class DemoViewHolder(
                         gravity = Gravity.CENTER_VERTICAL
                         imageView {
                             data.bindOptional(context) {
-                                if (it?.hedgeIsSelect == 0) {
+                                if (it?.categoryIsSelect == 0) {
                                     imageResource = R.mipmap.second_list_can_floding
                                 } else {
                                     imageResource = R.mipmap.second_list_floding
                                 }
                             }
                             onThrottleFirstClick {
-                                viewModel.setOnHedgeClick(dataIndex)
+                                viewModel.setOnCategoryClick(dataIndex)
                             }
 
                         }.lparams(autoSize(43), autoSize(43)) {
@@ -337,12 +269,13 @@ class DemoViewHolder(
                         }
 
                         textView {
-                            text = "套保品种"
+                            text = "商品"
                             textSizeAuto = autoSize(31)
                             textColorInt = R.color.rma_black_33
                         }.lparams(wrapContent, wrapContent) {
                             marginStart = autoSize(20)
                         }
+
                     }.lparams(autoSize(350), autoSize(108))
                     linearLayout {
                         gravity = Gravity.CENTER
@@ -356,7 +289,7 @@ class DemoViewHolder(
                         gravity = Gravity.CENTER_VERTICAL
                         emptyView()
                         textView {
-                            text = "套保系数"
+                            text = "增值税税率%"
                             textSizeAuto = 31
                             textColorInt = R.color.rma_hint_text_color_ccc
                         }.lparams(wrapContent, wrapContent) {
@@ -365,22 +298,24 @@ class DemoViewHolder(
                     }.lparams(autoSize(350), autoSize(108))
                 }.lparams(matchParent, autoSize(108))
 
-                //套保系数
+                //品类
                 recyclerView {
                     data.bindOptional(context) {
-                        if (it?.hedgeIsSelect == 0) {
+                        if (it?.categoryIsSelect == 0) {
                             visibility = View.GONE
                         } else {
                             visibility = View.VISIBLE
                         }
                     }
                     background = resources.getDrawable(R.color.white)
-                    adapter = hedgeAdapter
+                    adapter = spotCategoryAdapter
                 }.lparams(matchParent, wrapContent)
+
                 data.bindOptional(context) {
-                    hedgeAdapter.setNewData(it?.mgList)
-                }
 
+
+                    spotCategoryAdapter.setNewData(it?.wdlst)
+                }
             }.lparams(matchParent, wrapContent)
 
         }.lparams(matchParent, wrapContent) {

+ 49 - 20
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/NewCommodityInformationViewModel.kt

@@ -98,6 +98,35 @@ class NewCommodityInformationViewModel : BaseViewModel() {
     }
 
     /**
+     * 云平台版本的商品下的套保品种点击展开事件
+     */
+     fun setOnWrstandMiddleGoodsOnClick(index: Int, sonIndex: Int){
+        val datanewlist = arrayListOf<DeliveryGoodsDetailData>()
+        val oldList = deliveryGoodsDetailList.value
+        deliveryGoodsDetailList.value?.forEach {
+            if (index == oldList?.indexOf(it)) {
+                val newHedgeList = arrayListOf<XhWrstandard>()
+                oldList.get(index).wdlst?.forEach { data ->
+                    if (sonIndex == oldList.get(index).wdlst?.indexOf(data)) {
+                        if (data.isClickMiddle == 0) {
+                            newHedgeList.add(data.copy(isClickMiddle = 1))
+                        } else {
+                            newHedgeList.add(data.copy(isClickMiddle = 0))
+                        }
+                    } else {
+                        newHedgeList.add(data)
+                    }
+                }
+                datanewlist.add(it.copy(wdlst = newHedgeList))
+            } else {
+                datanewlist.add(it)
+            }
+        }
+        deliveryGoodsDetailList.postValue(datanewlist)
+    }
+
+
+    /**
      * 套保品种-期货品种的展开隐藏点击事件
      * @param index Int
      */
@@ -143,7 +172,7 @@ class NewCommodityInformationViewModel : BaseViewModel() {
         val oldList = middleGoodsDetailsList.value
         middleGoodsDetailsList.value?.forEach {
             if (index == oldList?.indexOf(it)) {
-                val newHedgeList = arrayListOf<Ermcp3GoodsGroupEx>()
+                val newHedgeList = arrayListOf<TBGoodsGroup>()
                 oldList.get(index).gplist?.forEach { data ->
                     if (sonIndex == oldList.get(index).gplist?.indexOf(data)) {
                         if (data.isFutureSelect == 0) {
@@ -167,25 +196,25 @@ class NewCommodityInformationViewModel : BaseViewModel() {
     fun setOnHedgeSpotClick(index: Int, sonIndex: Int){
         val datanewlist = arrayListOf<MiddleGoodsDetail>()
         val oldList = middleGoodsDetailsList.value
-        middleGoodsDetailsList.value?.forEach {
-            if (index == oldList?.indexOf(it)) {
-                val newHedgeList = arrayListOf<ErmcpDeliveryGoodsDetail>()
-                oldList.get(index).dglist?.forEach { data ->
-                    if (sonIndex == oldList.get(index).dglist?.indexOf(data)) {
-                        if (data.isSpotSelect == 0) {
-                            newHedgeList.add(data.copy(isSpotSelect = 1))
-                        } else {
-                            newHedgeList.add(data.copy(isSpotSelect = 0))
-                        }
-                    } else {
-                        newHedgeList.add(data)
-                    }
-                }
-                datanewlist.add(it.copy(dglist = newHedgeList))
-            } else {
-                datanewlist.add(it)
-            }
-        }
+//        middleGoodsDetailsList.value?.forEach {
+//            if (index == oldList?.indexOf(it)) {
+//                val newHedgeList = arrayListOf<ErmcpDeliveryGoodsDetail>()
+//                oldList.get(index).dglist?.forEach { data ->
+//                    if (sonIndex == oldList.get(index).dglist?.indexOf(data)) {
+//                        if (data.isSpotSelect == 0) {
+//                            newHedgeList.add(data.copy(isSpotSelect = 1))
+//                        } else {
+//                            newHedgeList.add(data.copy(isSpotSelect = 0))
+//                        }
+//                    } else {
+//                        newHedgeList.add(data)
+//                    }
+//                }
+//                datanewlist.add(it.copy(dglist = newHedgeList))
+//            } else {
+//                datanewlist.add(it)
+//            }
+//        }
         middleGoodsDetailsList.postValue(datanewlist)
     }
 

+ 119 - 38
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/SpotCategoryViewHolder.kt

@@ -1,61 +1,142 @@
 package cn.muchinfo.rma.view.base.home.commodity.newcommodity
 
 import android.view.Gravity
+import android.view.View
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.Ermcp3MiddleGoodsDetail
 import cn.muchinfo.rma.global.data.Ermcp3Wrstandard
+import cn.muchinfo.rma.global.data.XhMiddlergoods
+import cn.muchinfo.rma.global.data.XhWrstandard
 import cn.muchinfo.rma.lifecycle.bindOptional
-import cn.muchinfo.rma.view.autoWidget.autoSize
-import cn.muchinfo.rma.view.autoWidget.textColorInt
-import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.home.contract.emptyView
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
 import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import org.jetbrains.anko.*
 
-class SpotCategoryViewHolder(private val activity : AppCompatActivity,private val viewModel: NewCommodityInformationViewModel) : BaseViewHolder<Ermcp3Wrstandard>(activity){
+//第N版的商品viewholder
+class SpotCategoryViewHolder(private val activity : AppCompatActivity,private val viewModel: NewCommodityInformationViewModel,private val index : Int) : BaseViewHolder<XhWrstandard>(activity){
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
+    //套保品种adapter
+    private val hedgeAdapter: BaseAdapter<XhMiddlergoods, SpotHedgeViewHolder> =
+        BaseAdapter { _, _ -> SpotHedgeViewHolder(activity, viewModel, dataIndex) }
+
     override fun _FrameLayout.createContentView() {
-        linearLayout {
-            backgroundResource = R.drawable.rma_list_item_bg
-            gravity = Gravity.CENTER_VERTICAL
-            //品类
-            textView {
-                data.bindOptional(context){
-                    text = it?.wrstandardname
+
+        verticalLayout {
+            linearLayout {
+                backgroundResource = R.drawable.rma_list_item_bg
+                gravity = Gravity.CENTER_VERTICAL
+                //品类
+                textView {
+                    data.bindOptional(context){
+                        text = it?.wrstandardname
+                    }
+                    textSizeAuto = 31
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(20)
                 }
-                textSizeAuto = 31
-                textColorInt = R.color.rma_black_33
-            }.lparams(wrapContent, wrapContent){
-                marginStart = autoSize(20)
-            }
 
-            emptyView()
+                emptyView()
+
+                //单位
+                textView {
+                    data.bindOptional(context){
+                        text = it?.enumdicname
+                    }
+                    textColorInt = R.color.rma_black_33
+                    textSizeAuto = 31
+                }.lparams(wrapContent, wrapContent)
 
-            //单位
-            textView {
-                data.bindOptional(context){
-                    text = it?.enumdicname
+                emptyView()
+                //增值税税率
+                textView {
+                    data.bindOptional(context){
+                        text = it?.vatrate
+                    }
+                    textSizeAuto = 31
+                    textColorInt = R.color.rma_black_33
+                }.lparams(wrapContent, wrapContent){
+                    marginEnd = autoSize(20)
                 }
-                textColorInt = R.color.rma_black_33
-                textSizeAuto = 31
-            }.lparams(wrapContent, wrapContent)
-            emptyView()
-            //标仓系数
-            textView {
-                data.bindOptional(context){
-                    text = it?.convertfactor
+            }.lparams(matchParent, autoSize(96)){
+                marginStart = autoSize(102)
+                marginEnd = autoSize(78)
+                bottomMargin = autoSize(10)
+            }
+
+
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    imageView {
+                        data.bindOptional(context) {
+                            if (it?.isClickMiddle == 0) {
+                                imageResource = R.mipmap.second_list_can_floding
+                            } else {
+                                imageResource = R.mipmap.second_list_floding
+                            }
+                        }
+                        onThrottleFirstClick {
+                            viewModel.setOnWrstandMiddleGoodsOnClick(index,dataIndex)
+                        }
+
+                    }.lparams(autoSize(43), autoSize(43)) {
+                        marginStart = autoSize(102)
+                    }
+
+                    textView {
+                        text = "套保品种"
+                        textSizeAuto = autoSize(31)
+                        textColorInt = R.color.rma_black_33
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(20)
+                    }
+                }.lparams(autoSize(350), autoSize(108))
+                linearLayout {
+                    gravity = Gravity.CENTER
+                    textView {
+                        text = "单位"
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent)
+                }.lparams(autoSize(200), autoSize(108))
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    emptyView()
+                    textView {
+                        text = "套保系数"
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_hint_text_color_ccc
+                    }.lparams(wrapContent, wrapContent) {
+                        marginEnd = autoSize(79)
+                    }
+                }.lparams(autoSize(350), autoSize(108))
+            }.lparams(matchParent, autoSize(108))
+
+            //套保系数
+            recyclerView {
+                data.bindOptional(context) {
+                    if (it?.isClickMiddle == 0) {
+                        visibility = View.GONE
+                    } else {
+                        visibility = View.VISIBLE
+                    }
                 }
-                textSizeAuto = 31
-                textColorInt = R.color.rma_black_33
-            }.lparams(wrapContent, wrapContent){
-                marginEnd = autoSize(20)
+                background = resources.getDrawable(R.color.white)
+                adapter = hedgeAdapter
+            }.lparams(matchParent, wrapContent)
+            data.bindOptional(context) {
+                hedgeAdapter.setNewData(it?.mglst)
             }
-        }.lparams(matchParent, autoSize(96)){
-            marginStart = autoSize(102)
-            marginEnd = autoSize(78)
-            bottomMargin = autoSize(10)
-        }
+        }.lparams(matchParent, wrapContent)
+
     }
 
 }

+ 5 - 69
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/SpotHedgeViewHolder.kt

@@ -6,6 +6,7 @@ import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.Ermcp3GoodsGroupEx
 import cn.muchinfo.rma.global.data.Ermcp3MiddleGoodsDetail
+import cn.muchinfo.rma.global.data.XhMiddlergoods
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.home.contract.emptyView
@@ -13,12 +14,9 @@ import mtp.polymer.com.autowidget.adapter.BaseAdapter
 import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import org.jetbrains.anko.*
 
-class SpotHedgeViewHolder(private val activity : AppCompatActivity,private val viewModel: NewCommodityInformationViewModel,private val index : Int) : BaseViewHolder<Ermcp3MiddleGoodsDetail>(activity){
+class SpotHedgeViewHolder(private val activity : AppCompatActivity,private val viewModel: NewCommodityInformationViewModel,private val index : Int) : BaseViewHolder<XhMiddlergoods>(activity){
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
-    //期货品种
-    private val spotFutureAdapter: BaseAdapter<Ermcp3GoodsGroupEx, SpotFutureViewHolder> =
-        BaseAdapter { _, _ -> SpotFutureViewHolder(activity, viewModel) }
 
     override fun _FrameLayout.createContentView() {
         verticalLayout {
@@ -28,7 +26,7 @@ class SpotHedgeViewHolder(private val activity : AppCompatActivity,private val v
                 //套保品种名称
                 textView {
                     data.bindOptional(context){
-                        text = it?.mg?.middlegoodsname
+                        text = it?.middlegoodsname
                     }
                     textSizeAuto = 31
                     textColorInt = R.color.rma_black_33
@@ -41,7 +39,7 @@ class SpotHedgeViewHolder(private val activity : AppCompatActivity,private val v
                 //单位
                 textView {
                     data.bindOptional(context){
-                        text = it?.mg?.enumdicname
+                        text = it?.enumdicname
                     }
                     textColorInt = R.color.rma_black_33
                     textSizeAuto = 31
@@ -58,71 +56,9 @@ class SpotHedgeViewHolder(private val activity : AppCompatActivity,private val v
                     marginEnd = autoSize(20)
                 }
             }.lparams(matchParent, autoSize(96)){
-                marginStart = autoSize(102)
+                marginStart = autoSize(146)
                 marginEnd = autoSize(78)
             }
-            linearLayout {
-                gravity = Gravity.CENTER_VERTICAL
-                linearLayout {
-
-                    gravity = Gravity.CENTER_VERTICAL
-                    imageView {
-                        data.bindOptional(context){
-                            if (it?.isSelect == 0){
-                                imageResource = R.mipmap.second_list_can_floding
-                            }else{
-                                imageResource = R.mipmap.second_list_floding
-                            }
-                        }
-                        onThrottleFirstClick {
-                            viewModel.setOnFutureClick(index,dataIndex)
-                        }
-                    }.lparams(autoSize(43), autoSize(43))
-
-                    textView {
-                        text = "期货品种"
-                        textSizeAuto = 31
-                        textColorInt = R.color.rma_black_33
-                    }.lparams(wrapContent, wrapContent) {
-                        marginStart = autoSize(20)
-                    }
-                }.lparams(autoSize(290), autoSize(108))
-                linearLayout {
-                    gravity = Gravity.CENTER
-                    textView {
-                        text = "单位"
-                        textSizeAuto = 31
-                        textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent)
-                }.lparams(autoSize(140), autoSize(108))
-                linearLayout {
-                    gravity = Gravity.CENTER_VERTICAL
-                    emptyView()
-                    textView {
-                        text = "品种系数"
-                        textSizeAuto = 31
-                        textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent)
-                }.lparams(autoSize(290), autoSize(108))
-            }.lparams(matchParent, autoSize(108)){
-                marginStart = autoSize(102)
-            }
-
-            recyclerView {
-                data.bindOptional(context){
-                    if (it?.isSelect == 0){
-                        visibility = View.GONE
-                    }else{
-                        visibility = View.VISIBLE
-                    }
-                }
-                background = resources.getDrawable(R.color.white)
-                adapter = spotFutureAdapter
-            }.lparams(matchParent, wrapContent)
-
-            data.bindOptional(context){
-                spotFutureAdapter.setNewData(it?.gplist)
-            }
         }.lparams(matchParent, wrapContent)
     }
 

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

@@ -4,6 +4,7 @@ import android.view.Gravity
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.Ermcp3Goods
+import cn.muchinfo.rma.global.data.TBGoods
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.autoSize
 import cn.muchinfo.rma.view.autoWidget.textColorInt
@@ -20,7 +21,7 @@ import org.jetbrains.anko.*
  * @property itemSize IntArray
  * @constructor
  */
-class HedgeFutureContractViewHolder(private val activity : AppCompatActivity, private val viewModel: NewCommodityInformationViewModel): BaseViewHolder<Ermcp3Goods>(activity){
+class HedgeFutureContractViewHolder(private val activity : AppCompatActivity, private val viewModel: NewCommodityInformationViewModel): BaseViewHolder<TBGoods>(activity){
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
     override fun _FrameLayout.createContentView() {

+ 3 - 5
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/newhedge/HedgeFutureViewHolder.kt

@@ -4,9 +4,7 @@ import android.view.Gravity
 import android.view.View
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
-import cn.muchinfo.rma.global.data.Ermcp3Goods
-import cn.muchinfo.rma.global.data.Ermcp3GoodsGroupEx
-import cn.muchinfo.rma.global.data.ErmcpDeliveryGoodsDetail
+import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.home.commodity.newcommodity.NewCommodityInformationViewModel
@@ -26,11 +24,11 @@ class HedgeFutureViewHolder(
     private val activity: AppCompatActivity,
     private val viewModel: NewCommodityInformationViewModel,
     private val index : Int//选择item的下标
-) : BaseViewHolder<Ermcp3GoodsGroupEx>(activity) {
+) : BaseViewHolder<TBGoodsGroup>(activity) {
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
     //期货合约
-    private val hedgeFutureContractAdapter: BaseAdapter<Ermcp3Goods, HedgeFutureContractViewHolder> =
+    private val hedgeFutureContractAdapter: BaseAdapter<TBGoods, HedgeFutureContractViewHolder> =
         BaseAdapter { _, _ -> HedgeFutureContractViewHolder(activity, viewModel) }
 
     override fun _FrameLayout.createContentView() {

+ 4 - 67
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/newhedge/HedgeSpotViewHolder.kt

@@ -7,6 +7,7 @@ import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.Ermcp3Goods
 import cn.muchinfo.rma.global.data.Ermcp3Wrstandard
 import cn.muchinfo.rma.global.data.ErmcpDeliveryGoodsDetail
+import cn.muchinfo.rma.global.data.TBWrstandard
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.home.commodity.newcommodity.NewCommodityInformationViewModel
@@ -26,7 +27,7 @@ class HedgeSpotViewHolder(
     private val activity: AppCompatActivity,
     private val viewModel: NewCommodityInformationViewModel,
     private val index : Int//选择item的下标
-) : BaseViewHolder<ErmcpDeliveryGoodsDetail>(activity) {
+) : BaseViewHolder<TBWrstandard>(activity) {
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
     //期货合约
@@ -40,7 +41,7 @@ class HedgeSpotViewHolder(
                 gravity = Gravity.CENTER_VERTICAL
                 textView {
                     data.bindOptional(context){
-                        text = it?.data?.deliverygoodsname
+                        text = it?.deliverygoodsname
                     }
                     textSizeAuto = 31
                     textColorInt = R.color.rma_black_33
@@ -52,7 +53,7 @@ class HedgeSpotViewHolder(
 
                 textView {
                     data.bindOptional(context){
-                        text = it?.data?.enumdicname
+                        text = it?.enumdicname
                     }
                     textColorInt = R.color.rma_black_33
                     textSizeAuto = 31
@@ -71,70 +72,6 @@ class HedgeSpotViewHolder(
                 marginStart = autoSize(102)
                 marginEnd = autoSize(78)
             }
-
-            linearLayout {
-                gravity = Gravity.CENTER_VERTICAL
-                linearLayout {
-
-                    gravity = Gravity.CENTER_VERTICAL
-                    imageView {
-                        data.bindOptional(context){
-                            if (it?.isSpotSelect == 0){
-                                imageResource = R.mipmap.second_list_can_floding
-                            }else{
-                                imageResource = R.mipmap.second_list_floding
-                            }
-                        }
-                        onThrottleFirstClick {
-                            viewModel.setOnHedgeSpotClick(index,dataIndex)
-                        }
-
-                    }.lparams(autoSize(43), autoSize(43))
-
-                    textView {
-                        text = "品类"
-                        textSizeAuto = 31
-                        textColorInt = R.color.rma_black_33
-                    }.lparams(wrapContent, wrapContent) {
-                        marginStart = autoSize(20)
-                    }
-                }.lparams(autoSize(290), autoSize(108))
-                linearLayout {
-                    gravity = Gravity.CENTER
-                    textView {
-                        text = "单位"
-                        textSizeAuto = 31
-                        textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent)
-                }.lparams(autoSize(140), autoSize(108))
-                linearLayout {
-                    gravity = Gravity.CENTER_VERTICAL
-                    emptyView()
-                    textView {
-                        text = "标仓系数"
-                        textSizeAuto = 31
-                        textColorInt = R.color.rma_hint_text_color_ccc
-                    }.lparams(wrapContent, wrapContent)
-                }.lparams(autoSize(290), autoSize(108))
-            }.lparams(matchParent, autoSize(108)) {
-                marginStart = autoSize(102)
-            }
-
-            recyclerView {
-                data.bindOptional(context){
-                    if (it?.isSpotSelect == 0){
-                        visibility = View.GONE
-                    }else{
-                        visibility = View.VISIBLE
-                    }
-                }
-                background = resources.getDrawable(R.color.white)
-                adapter = hedgeSpotCategoryAdapter
-            }.lparams(matchParent, wrapContent)
-
-            data.bindOptional(context){
-                hedgeSpotCategoryAdapter.setNewData(it?.gmlist)
-            }
         }
     }
 

+ 13 - 15
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newcommodity/newhedge/NewHedgeSpeciesViewHolder.kt

@@ -6,9 +6,7 @@ import android.view.View
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.GlobalDataCollection
-import cn.muchinfo.rma.global.data.Ermcp3GoodsGroupEx
-import cn.muchinfo.rma.global.data.ErmcpDeliveryGoodsDetail
-import cn.muchinfo.rma.global.data.MiddleGoodsDetail
+import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.global.toPercentage
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
@@ -35,11 +33,11 @@ class NewHedgeSpeciesViewHolder(
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
     //期货品种adapter
-    private val hedgeFutureAdapter: BaseAdapter<Ermcp3GoodsGroupEx, HedgeFutureViewHolder> =
+    private val hedgeFutureAdapter: BaseAdapter<TBGoodsGroup, HedgeFutureViewHolder> =
         BaseAdapter { _, _ -> HedgeFutureViewHolder(activity, viewModel, dataIndex) }
 
     //现货品种adapter
-    private val hedgeSpotAdapter: BaseAdapter<ErmcpDeliveryGoodsDetail, HedgeSpotViewHolder> =
+    private val hedgeSpotAdapter: BaseAdapter<TBWrstandard, HedgeSpotViewHolder> =
         BaseAdapter { _, _ -> HedgeSpotViewHolder(activity, viewModel, dataIndex) }
 
     override fun _FrameLayout.createContentView() {
@@ -58,7 +56,7 @@ class NewHedgeSpeciesViewHolder(
 
                 textView {
                     data.bindOptional(context){
-                        text = it?.mg?.middlegoodsname + "(" + it?.mg?.enumdicname + ")"
+                        text = it?.middlegoodsname + "(" + it?.enumdicname + ")"
                     }
                     textSizeAuto = 36
                     textColorInt = R.color.rma_black_33
@@ -68,13 +66,13 @@ class NewHedgeSpeciesViewHolder(
 
                 textView {
                     data.bindOptional(context){
-                        if (it?.mg?.isvalid == "1"){
-                            text = "正常"
-                            textColorInt = R.color.rma_green_color
-                        }else{
-                            text = "停用"
-                            textColorInt = R.color.rma_blue_color
-                        }
+//                        if (it.isvalid == "1"){
+//                            text = "正常"
+//                            textColorInt = R.color.rma_green_color
+//                        }else{
+//                            text = "停用"
+//                            textColorInt = R.color.rma_blue_color
+//                        }
                     }
                     textSizeAuto = 36
 
@@ -86,7 +84,7 @@ class NewHedgeSpeciesViewHolder(
 
                     textView {
                         data.bindOptional(context){
-                            text = "套保比例" + it?.mg?.needhedgeratio?.toPercentage()
+                            text = "套保比例" + it?.needhedgeratio?.toPercentage()
                         }
                         textSizeAuto = 25
                         textColorInt = R.color.rma_green_color
@@ -297,7 +295,7 @@ class NewHedgeSpeciesViewHolder(
                 }.lparams(matchParent, wrapContent)
 
                 data.bindOptional(context){
-                    hedgeSpotAdapter.setNewData(it?.dglist)
+                    hedgeSpotAdapter.setNewData(it?.wdlst)
                 }
 
             }.lparams(matchParent, wrapContent)

+ 73 - 3
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newspot/NewAddSpotCategoryViewHolder.kt

@@ -9,7 +9,9 @@ import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.home.commodity.CommodityInformationViewModel
+import cn.muchinfo.rma.view.base.home.commodity.viewholder.InsuredVarietyViewHolder
 import cn.muchinfo.rma.view.base.home.commodity.viewholder.SpotInfoData
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.contract.viewItemUI
@@ -52,9 +54,10 @@ class NewAddSpotCategoryViewHolder(
     private val middleGoodsAdapter: BaseAdapter<NewSpotInfoData, NewInsuredVarietyViewHolder> =
         BaseAdapter { _, _ ->
             NewInsuredVarietyViewHolder(
-                activity,
-                viewModel,
-                operationType = operationType
+                activity = activity,
+                viewModel = viewModel,
+                operationType = operationType,
+                wrstandId = dataIndex.plus(1).toString()
             )
         }
 
@@ -291,6 +294,73 @@ class NewAddSpotCategoryViewHolder(
             data.bindOptional(context){
                 middleGoodsAdapter.setNewData(it?.middleGoodsList)
             }
+
+            itemView()
+
+            linearLayout {
+                if (operationType == "4"){
+                    visibility = View.GONE
+                }else{
+                    visibility = View.VISIBLE
+                }
+
+                background = resources.getDrawable(R.color.main_hit_bg_color)
+                gravity = Gravity.CENTER_VERTICAL
+                emptyView()
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    onThrottleFirstClick {
+                        if (operationType == "4" || operationType == "3" || operationType == "5") {
+                            return@onThrottleFirstClick
+                        }
+                        viewModel.changeSpotModelList(
+                            "1",
+                            viewModel.spotModelList.value?.size?.plus(1).toString(),
+                            value = ""
+                        )
+                    }
+                    imageView {
+                        imageResource = R.mipmap.rma_add
+                    }.lparams(autoSize(36), autoSize(36))
+
+                    textView {
+                        text = "添加商品"
+                        textColorInt = R.color.rma_blue_color
+                        textSizeAuto = 31
+                    }.lparams(wrapContent, wrapContent) {
+                        marginEnd = autoSize(35)
+                    }
+                }.lparams(wrapContent, autoSize(80))
+
+
+                linearLayout {
+                    onThrottleFirstClick {
+                        if (operationType == "4" || operationType == "3" || operationType == "5") {
+                            return@onThrottleFirstClick
+                        }
+                        viewModel.changeMiddleGoodsList(
+                            wrstandId = dataIndex.plus(1).toString(),
+                            type = "1",
+                            id = viewModel.spotModelList.value?.find {
+                                it.id == dataIndex.plus(1).toString()
+                            }?.middleGoodsList?.size?.plus(1).toString()
+                        )
+                    }
+
+                    gravity = Gravity.CENTER_VERTICAL
+                    imageView {
+                        imageResource = R.mipmap.rma_add
+                    }.lparams(autoSize(36), autoSize(36))
+
+                    textView {
+                        text = "添加套保品种"
+                        textColorInt = R.color.rma_blue_color
+                        textSizeAuto = 31
+                    }.lparams(wrapContent, wrapContent) {
+                        marginEnd = autoSize(35)
+                    }
+                }.lparams(wrapContent, autoSize(80))
+            }.lparams(matchParent, autoSize(80))
         }
     }
 

+ 93 - 142
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newspot/NewAddSpotGoodsActivity.kt

@@ -14,6 +14,7 @@ import cn.muchinfo.rma.global.data.MiddleGoodsData
 import cn.muchinfo.rma.global.data.WrStandardData
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI2
+import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI3
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseActivity
 import cn.muchinfo.rma.view.base.home.commodity.newcommodity.SpotCategoryViewHolder
@@ -65,7 +66,7 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
         intent.getParcelableExtra<DeliveryGoodsDetailData>("data") as DeliveryGoodsDetailData
     }
 
-    //型号适配/////第三期修改为品类
+    //型号适配/////第三期修改为品类,第四期改为商品,nice(20210922)
     private val spotModelAdapter: BaseAdapter<NewSpotInfoData, NewAddSpotCategoryViewHolder> =
         BaseAdapter { _, _ ->
             NewAddSpotCategoryViewHolder(
@@ -102,7 +103,9 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
     //初始化数据
     fun init() {
         if (type == "1") {
-            val spotModelList = arrayListOf(NewSpotInfoData(id = "1", value = ""))
+            val spotModelList = arrayListOf(NewSpotInfoData(id = "1", value = "",middleGoodsList = arrayListOf(
+                NewSpotInfoData(id = "1",value = "")))
+            )
             viewModel.spotModelList.postValue(spotModelList)
             viewModel.spotModelcacheList.postValue(spotModelList)
             val beandModelList = arrayListOf(NewSpotInfoData(id = "1", value = ""))
@@ -191,8 +194,9 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
 
                         viewItemUI()
 
-
+                        //品种代码,原型去掉了
                         linearLayout {
+                            visibility = View.GONE
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
 
@@ -226,7 +230,9 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
 
                         viewItemUI()
 
+                        //品种单位,原型去掉了
                         linearLayout {
+                            visibility = View.GONE
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
 
@@ -312,54 +318,8 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
                             }
                         }.lparams(matchParent, autoSize(132))
 
-                        baseInformationView("品类信息")
-
-                        //添加型号信息
-                        recyclerView {
-                            background = resources.getDrawable(R.color.white)
-                            adapter = spotModelAdapter
-                            isNestedScrollingEnabled = false
-                        }.lparams(matchParent, wrapContent)
-
-                        viewModel.spotModelList.bindOptional(context) {
-                            spotModelAdapter.setNewData(it)
-                        }
-
-                        viewItemUI()
-
-                        linearLayout {
-                            if (type == "4"){
-                                visibility = View.GONE
-                            }else{
-                                visibility = View.VISIBLE
-                            }
-                            onThrottleFirstClick {
-                                if (type == "4" || type == "3" || type == "5") {
-                                    return@onThrottleFirstClick
-                                }
-                                viewModel.changeSpotModelList(
-                                    "1",
-                                    viewModel.spotModelList.value?.size?.plus(1).toString(),
-                                    value = ""
-                                )
-                            }
-                            background = resources.getDrawable(R.color.main_hit_bg_color)
-                            gravity = Gravity.CENTER_VERTICAL
-                            emptyView()
-                            imageView {
-                                imageResource = R.mipmap.rma_add
-                            }.lparams(autoSize(36), autoSize(36))
-
-                            textView {
-                                text = "添加品类"
-                                textColorInt = R.color.rma_blue_color
-                                textSizeAuto = 31
-                            }.lparams(wrapContent, wrapContent) {
-                                marginEnd = autoSize(35)
-                            }
-                        }.lparams(matchParent, autoSize(80))
-
-                        //添加型号信息
+                        baseInformationView("品牌信息")
+                           //添加品牌
                         recyclerView {
                             background = resources.getDrawable(R.color.white)
                             adapter = brandModelAdapter
@@ -405,38 +365,20 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
                             }
                         }.lparams(matchParent, autoSize(80))
 
+                        baseInformationView("商品信息")
 
+                        //添加商品信息
+                        recyclerView {
+                            background = resources.getDrawable(R.color.white)
+                            adapter = spotModelAdapter
+                            isNestedScrollingEnabled = false
+                        }.lparams(matchParent, wrapContent)
 
-//                        linearLayout {
-//                            if (type == "4"){//页面类型为详情时则需要屏蔽相关操作
-//                                visibility = View.GONE
-//                            }else{
-//                                visibility = View.VISIBLE
-//                            }
-//                            background = resources.getDrawable(R.color.white)
-//                            gravity = Gravity.CENTER_VERTICAL
-//                            emptyView()
-//                            imageView {
-//                                imageResource = R.mipmap.rma_add
-//                            }.lparams(autoSize(36), autoSize(36))
-//
-//                            textView {
-//                                onThrottleFirstClick {
-//                                    if (type == "4" || type == "3" || type == "5") {
-//                                        return@onThrottleFirstClick
-//                                    }
-//                                    viewModel.changeMiddleGoodsList(
-//                                        "1",
-//                                        viewModel.middlegoodList.value?.size?.plus(1).toString()
-//                                    )
-//                                }
-//                                text = "添加套保品种"
-//                                textColorInt = R.color.rma_blue_color
-//                                textSizeAuto = 31
-//                            }.lparams(wrapContent, wrapContent) {
-//                                marginEnd = autoSize(35)
-//                            }
-//                        }.lparams(matchParent, autoSize(80))
+                        viewModel.spotModelList.bindOptional(context) {
+                            spotModelAdapter.setNewData(it)
+                        }
+
+                        viewItemUI()
 
                         baseInformationView("其他信息")
 
@@ -488,48 +430,25 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
                             if (checkUpdate().not()) {
                                 return@onThrottleFirstClick
                             }
-//                            if (type == "1") {
-//                                viewModel.requestGoodsApply(
-//                                    deliverygoodscode = spot_variety_code_edittext.text.toString(),
-//                                    deliverygoodsname = spot_variety_name_edittext.text.toString(),
-//                                    unitid = selectUnitType.value?.id?.toLong()!!,
-//                                    type = 1,
-//                                    remark = remask_edittext.text.toString(),
-//                                    spotgoodsmodels = getSpotModelList(),
-//                                    spotgoodsbrands = getBrandModelList(),
-//                                    wrsconvertdetails = getMiddleModelList()
-//                                ) {
-//                                    finish()
-//                                }
-//                            } else if (type == "2") {//修改
-//                                viewModel.requestGoodsApply(
-//                                    deliverygoodscode = spot_variety_code_edittext.text.toString(),
-//                                    deliverygoodsname = spot_variety_name_edittext.text.toString(),
+                            if (type == "1") {
+                                viewModel.deliveryGoodsApplyCloudReq(
+                                    version = "3.2",
+                                    deliverygoodsname = spot_variety_name_edittext.text.toString(),
 //                                    unitid = selectUnitType.value?.id?.toLong()!!,
-//                                    wrstandardid = data.data?.deliverygoodsid?.toLong() ?: 0,
-//                                    type = 2,
-//                                    remark = remask_edittext.text.toString(),
-//                                    spotgoodsmodels = getSpotModelList(isAdd = false),
-//                                    spotgoodsbrands = getBrandModelList(isAdd = false),
-//                                    wrsconvertdetails = getMiddleModelList()
-//                                ) {
-//                                    finish()
-//                                }
-//                            } else if (type == "3") {//停用
-//                                viewModel.requestGoodsCancelReq(
-//                                    wrstandardid = data.data?.deliverygoodsid?.toLong() ?: 0,
-//                                    isvalid = 0
-//                                ) {
-//                                    finish()
-//                                }
-//                            } else if (type == "5") {//恢复
-//                                viewModel.requestGoodsCancelReq(
-//                                    wrstandardid = data.data?.deliverygoodsid?.toLong() ?: 0,
-//                                    isvalid = 1
-//                                ) {
-//                                    finish()
-//                                }
-//                            }
+                                    type = 1,
+                                    remark = remask_edittext.text.toString(),
+                                    gldwrstandards = getWrstandGoodsList(),
+                                    glddgfactoryItems = getBrandModelList()
+                                ) {
+                                    finish()
+                                }
+                            } else if (type == "2") {//修改
+
+                            } else if (type == "3") {//停用
+
+                            } else if (type == "5") {//恢复
+
+                            }
                         }
                         gravity = Gravity.CENTER
                         backgroundResource = R.mipmap.rma_submit_bg
@@ -558,6 +477,38 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
     }
 
     /**
+     * 最新版本的商品信息
+     */
+    private fun getWrstandGoodsList(isAdd: Boolean = true) : List<ManageServiceMI3.GLDWRStandardCloudEx>{
+        val wrstandGoodsList = arrayListOf<ManageServiceMI3.GLDWRStandardCloudEx>()
+        viewModel.spotModelcacheList.value?.forEach {
+            val spotGoodsData = ManageServiceMI3.GLDWRStandardCloudEx.newBuilder()
+            spotGoodsData.wrstandardname = it.value
+            if (it.middleGoodsId.isNullOrEmpty()){
+                spotGoodsData.wrstandardid = 0//修改时才加
+            }else{
+                spotGoodsData.wrstandardid = it.middleGoodsId.toLong()//修改时才加
+            }
+            spotGoodsData.unitid = it.enumdicnameid.toLong()
+            spotGoodsData.vatrate = it.coefficientwarehouse.toDouble()
+//            LogUtils.eTag("asdhahsdkjahdjka",spotGoodsData.modelid)
+            val wrsconverdetailsList = arrayListOf<ManageServiceMI3.WRSConvertDetailEx>()
+            it.middleGoodsList.forEach {
+                val wrsconverdetails = ManageServiceMI3.WRSConvertDetailEx.newBuilder()
+                wrsconverdetails.middlegoodsid = it.middleGoodsId.toLong()
+                wrsconverdetails.unitid = it.enumdicnameid.toLong()
+                wrsconverdetails.convertratio = it.value.toDouble()
+                wrsconverdetailsList.add(wrsconverdetails.build())
+            }
+            spotGoodsData.addAllWrsconvertdetails(wrsconverdetailsList)
+
+            wrstandGoodsList.add(spotGoodsData.build())
+        }
+
+        return wrstandGoodsList
+    }
+
+    /**
      * 型号列表//三期修改为品类
      * isAdd 是否是新增
      * @return List<ManageServiceMI2.SpotGoodsModelEx>
@@ -584,10 +535,10 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
      * 品牌列表
      * @return List<ManageServiceMI2.SpotGoodsModelEx>
      */
-    private fun getBrandModelList(isAdd: Boolean = true): List<ManageServiceMI2.GLDDGFactoryItemEx> {
-        val brandgoodsmodels = arrayListOf<ManageServiceMI2.GLDDGFactoryItemEx>()
+    private fun getBrandModelList(isAdd: Boolean = true): List<ManageServiceMI3.GLDDGFactoryItemEx> {
+        val brandgoodsmodels = arrayListOf<ManageServiceMI3.GLDDGFactoryItemEx>()
         viewModel.brandModelcacheList.value?.forEach {
-            val spotGoodsData = ManageServiceMI2.GLDDGFactoryItemEx.newBuilder()
+            val spotGoodsData = ManageServiceMI3.GLDDGFactoryItemEx.newBuilder()
             spotGoodsData.dgfactoryitemvalue = it.value
             if (it.middleGoodsId.isNullOrEmpty()){
                 spotGoodsData.dgfactoryitemid = 0
@@ -632,24 +583,24 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
         }
 
 
-        if (selectUnitType.value?.id.isNullOrEmpty()) {
-            ToastUtils.showLong("请选择单位")
-            return false
-        }
-
-        viewModel.spotModelcacheList.value?.forEach {
-            if (it.value.isNullOrEmpty()) {
-                ToastUtils.showLong("请输入完整品类信息")
-                return false
-            }
-        }
+//        if (selectUnitType.value?.id.isNullOrEmpty()) {
+//            ToastUtils.showLong("请选择单位")
+//            return false
+//        }
 
-        viewModel.brandModelcacheList.value?.forEach {
-            if (it.value.isNullOrEmpty()) {
-                ToastUtils.showLong("请输入品牌")
-                return false
-            }
-        }
+//        viewModel.spotModelcacheList.value?.forEach {
+//            if (it.value.isNullOrEmpty()) {
+//                ToastUtils.showLong("请输入完整品类信息")
+//                return false
+//            }
+//        }
+//
+//        viewModel.brandModelcacheList.value?.forEach {
+//            if (it.value.isNullOrEmpty()) {
+//                ToastUtils.showLong("请输入品牌")
+//                return false
+//            }
+//        }
 
 //        viewModel.middlegoodCacheList.value?.forEach {
 //            if (it.middleGoodsName.isNullOrEmpty()) {

+ 228 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newspot/NewAddSpotGoodsViewModel.kt

@@ -4,10 +4,15 @@ import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.DeliveryGoodsDetailData
 import cn.muchinfo.rma.global.data.GoodsGroupData
+import cn.muchinfo.rma.netManage.base.InteractiveException
+import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI3
 import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.autoWidget.remove
 import cn.muchinfo.rma.view.autoWidget.toArrayList
 import cn.muchinfo.rma.view.base.BaseViewModel
 import cn.muchinfo.rma.view.base.home.commodity.viewholder.SpotInfoData
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
 import mtp.polymer.com.autowidget.utils.TaskUiModel
 
 /**
@@ -47,6 +52,48 @@ class NewAddSpotGoodsViewModel : BaseViewModel(){
     val middleGoodsNormalList: MutableLiveData<List<GoodsGroupData>> = MutableLiveData()
 
 
+    fun deliveryGoodsApplyCloudReq(
+        version : String = "",//接口版本号(目前支持2.0 3.1 3.2)
+        deliverygoodscode : String = "",//交割商品代码
+        deliverygoodsname : String = "",//交割商品名称
+        deliverygoodsid : Long = 0,//交割商品id(修改时有值)
+        unitid : Long = 0,//单位ID
+        type : Int = 0,//类型 1 新增 2 修改
+        remark : String = "",//备注
+        gldwrstandards : List<ManageServiceMI3.GLDWRStandardCloudEx> = arrayListOf(),//GLDWRStandardCloudEx 现货商品型号数据
+        glddgfactoryItems : List<ManageServiceMI3.GLDDGFactoryItemEx> = arrayListOf(),//GLDDGFactoryItemEx 现货商品品牌数据
+        isSuccess: (isCompleted: Boolean) -> Unit
+    ){
+        loadingDialogStatus.value = TaskUiModel.inFlight()
+        GlobalScope.launch {
+            MyApplication.getInstance()?.commodityManager?.deliveryGoodsApplyCloudReq(
+                version = version,
+                deliverygoodscode = deliverygoodscode,
+                deliverygoodsname = deliverygoodsname,
+                deliverygoodsid = deliverygoodsid,
+                unitid = unitid,
+                type = type,
+                remark = remark,
+                gldwrstandards = gldwrstandards,
+                glddgfactoryItems = glddgfactoryItems
+            ) { isCompleted, err ->
+                if (isCompleted) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
+                    isSuccess(true)
+                } else {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = err?.message!!
+                            )
+                        )
+                    )
+                }
+            }
+        }
+    }
+
+
     /**
      * 用来在现货品种信息的修改,恢复,停用,详情时的页面数据回填
      */
@@ -113,6 +160,184 @@ class NewAddSpotGoodsViewModel : BaseViewModel(){
         }
     }
 
+    /**
+     * 获取剩下可选择的套保品种
+     * @return List<MiddleGoodsData>
+     */
+    fun getRemainingMiddleGoodsList(): List<GoodsGroupData> {
+        val allSelectDataList = middleGoodsNormalList.value//所有可选择套保品种
+//        val middlegoodList = middlegoodList.value//列表数据已显示的套保品种
+//        val newSelectDataList = arrayListOf<GoodsGroupData>()//剩下的可选择套保品种
+//        allSelectDataList?.forEach { data ->
+//
+//        }
+//        middlegoodList?.forEach { data ->
+//            allSelectDataList?.remove { it.goodsgroupid == data.middleGoodsId }
+//        }
+
+        return allSelectDataList ?: arrayListOf()
+    }
+
+    /**
+     * 现货套保品种列表
+     * type 1为添加,2为删除 ,3为更换资料
+     */
+    fun changeMiddleGoodsList(
+        wrstandId : String,//所属新增商品的id
+        type: String,//类型
+        id: String,//列表的下标id
+        middlegoodsId: String = "",//套保id
+        ano: String = "",
+        enumdicname: String = "",
+        enumdicnameid: String = "",
+        middleGoodsName: String = ""
+    ) {
+        //暂储存的商品下的套保品种
+        val oldDataCacheList = spotModelcacheList.value?.toArrayList()?.find { data ->
+            data.id == wrstandId
+        }?.middleGoodsList
+        val oldDataList = spotModelList.value?.toArrayList()?.find { data ->
+            data.id == wrstandId
+        }?.middleGoodsList
+        //相应套保品种的列表
+        val newDataList = arrayListOf<NewSpotInfoData>()
+        if (type == "1") {//增加一个套保品种
+            oldDataCacheList?.forEach {
+                newDataList.add(it)
+            }
+            newDataList.add(NewSpotInfoData(id = id, value = ano, middleGoodsId = middlegoodsId))
+            val newSpotList = arrayListOf<NewSpotInfoData>()
+            spotModelcacheList.value?.forEach {
+                if (it.id == wrstandId){
+                    newSpotList.add(it.copy(middleGoodsList = newDataList))
+                }else{
+                    newSpotList.add(it)
+                }
+            }
+            spotModelcacheList.postValue(newSpotList)
+            spotModelList.postValue(newSpotList)
+        } else if (type == "2") {//删除相应的套保品种
+            oldDataCacheList?.forEach {
+
+                if (id != it.id) {
+                    newDataList.add(it.copy(id = oldDataCacheList.indexOf(it).toString()))
+                }
+            }
+            val newSpotList = arrayListOf<NewSpotInfoData>()
+            spotModelcacheList.value?.forEach {
+                if (it.id == wrstandId){
+                    newSpotList.add(it.copy(middleGoodsList = newDataList))
+                }else{
+                    newSpotList.add(it)
+                }
+            }
+            spotModelcacheList.postValue(newSpotList)
+            spotModelList.postValue(newSpotList)
+        } else if (type == "3") {//更换资料
+            oldDataCacheList?.forEach {
+                var newMiddlegoodsId = ""
+                var newEnumdicname = ""
+                var newMiddleGoodsName = ""
+                var newEnumdicnameid = ""
+                var newData: NewSpotInfoData
+                if (it.id == id) {
+                    newMiddlegoodsId = if (middlegoodsId.isNullOrEmpty()) {
+                        it.middleGoodsId
+                    } else {
+                        middlegoodsId
+                    }
+                    newMiddleGoodsName = if (middleGoodsName.isNullOrEmpty()) {
+                        it.middleGoodsName
+                    } else {
+                        middleGoodsName
+                    }
+                    newEnumdicname = if (enumdicname.isNullOrEmpty()) {
+                        it.enumdicname
+                    } else {
+                        enumdicname
+                    }
+                    newEnumdicnameid = if (enumdicnameid.isNullOrEmpty()) {
+                        it.enumdicnameid
+                    } else {
+                        enumdicnameid
+                    }
+                    newData = it.copy(
+                        id = id,
+                        value = ano,
+                        middleGoodsId = newMiddlegoodsId,
+                        enumdicname = newEnumdicname,
+                        enumdicnameid = newEnumdicnameid,
+                        middleGoodsName = newMiddleGoodsName
+                    )
+                    newDataList.add(newData)
+                } else {
+                    newDataList.add(it)
+                }
+            }
+            val newSpotList = arrayListOf<NewSpotInfoData>()
+            spotModelcacheList.value?.forEach {
+                if (it.id == wrstandId){
+                    newSpotList.add(it.copy(middleGoodsList = newDataList))
+                }else{
+                    newSpotList.add(it)
+                }
+            }
+            spotModelcacheList.postValue(newSpotList)
+        } else if (type == "4") {//用于选择套保品种
+            oldDataCacheList?.forEach {
+                var newMiddlegoodsId = ""
+                var newEnumdicname = ""
+                var newMiddleGoodsName = ""
+                var newEnumdicnameid = ""
+                var newData: NewSpotInfoData
+                if (it.id == id) {
+                    newEnumdicnameid = if (enumdicnameid.isNullOrEmpty()) {
+                        it.enumdicname
+                    } else {
+                        enumdicnameid
+                    }
+                    newMiddlegoodsId = if (middlegoodsId.isNullOrEmpty()) {
+                        it.middleGoodsId
+                    } else {
+                        middlegoodsId
+                    }
+                    newMiddleGoodsName = if (middleGoodsName.isNullOrEmpty()) {
+                        it.middleGoodsName
+                    } else {
+                        middleGoodsName
+                    }
+                    newEnumdicname = if (enumdicname.isNullOrEmpty()) {
+                        it.enumdicname
+                    } else {
+                        enumdicname
+                    }
+                    newData = it.copy(
+                        id = id,
+                        value = ano,
+                        enumdicnameid = newEnumdicnameid,
+                        middleGoodsId = newMiddlegoodsId,
+                        enumdicname = newEnumdicname,
+                        middleGoodsName = newMiddleGoodsName
+                    )
+                    newDataList.add(newData)
+                } else {
+                    newDataList.add(it)
+                }
+            }
+            val newSpotList = arrayListOf<NewSpotInfoData>()
+            spotModelcacheList.value?.forEach {
+                if (it.id == wrstandId){
+                    newSpotList.add(it.copy(middleGoodsList = newDataList))
+                }else{
+                    newSpotList.add(it)
+                }
+            }
+            spotModelList.postValue(newSpotList)
+            spotModelcacheList.postValue(newSpotList)
+        }
+
+    }
+
 
     /**
      * 品类列表
@@ -124,7 +349,7 @@ class NewAddSpotGoodsViewModel : BaseViewModel(){
         value: String = "",//品类名称
         enumdicname: String = "",//单位名称
         enumdicnameid: String = "",//单位id
-        coefficientwarehouse: String = ""//标仓系数
+        coefficientwarehouse: String = ""//增值税税率
     ) {
         val oldDatacacheList = spotModelcacheList.value?.toArrayList()
         val oldDataList = spotModelList.value?.toArrayList()
@@ -133,7 +358,7 @@ class NewAddSpotGoodsViewModel : BaseViewModel(){
             oldDatacacheList?.forEach {
                 newDataList.add(it)
             }
-            newDataList.add(NewSpotInfoData(id = id))
+            newDataList.add(NewSpotInfoData(id = id,middleGoodsList = arrayListOf(NewSpotInfoData(id = "1"))))
             spotModelList.postValue(newDataList)
             spotModelcacheList.postValue(newDataList)
         } else if (type == "2") {//删除
@@ -152,6 +377,7 @@ class NewAddSpotGoodsViewModel : BaseViewModel(){
                 var newEnumdicnameid = ""
                 var newEnumdicname = ""
                 var newCoefficientwarehouse = ""
+
                 var newData: NewSpotInfoData
                 if (it.id == id) {
                     newValue = if (value.isNullOrEmpty()) {

+ 21 - 18
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/newspot/NewInsuredVarietyViewHolder.kt

@@ -33,7 +33,8 @@ import org.jetbrains.anko.sdk25.coroutines.textChangedListener
 class NewInsuredVarietyViewHolder(
     private val activity: AppCompatActivity,
     private val viewModel: NewAddSpotGoodsViewModel,
-    private val operationType : String = ""
+    private val operationType : String = "",
+    private val wrstandId : String
 ) : BaseViewHolder<NewSpotInfoData>(activity) {
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
@@ -50,10 +51,10 @@ class NewInsuredVarietyViewHolder(
                         return@onThrottleFirstClick
                     }
 
-//                    activity.creatGoodsHedgeBottomSheetDialog("请选择套保品种", viewModel.getRemainingMiddleGoodsList()) {
-//                        viewModel.changeMiddleGoodsList(type = "4",id = data.value?.id.toString(),ano = "",middlegoodsId = this.goodsgroupid ?: "",enumdicnameid = this.goodunitid ?: "",enumdicname = this.enumdicname ?: "" ?: "",middleGoodsName = this.goodsgroupname ?: "")
-//                        hedge_coefficient.setText("")
-//                    }
+                    activity.creatGoodsHedgeBottomSheetDialog("请选择套保品种", viewModel.getRemainingMiddleGoodsList()) {
+                        viewModel.changeMiddleGoodsList(wrstandId = wrstandId,type = "4",id = data.value?.id.toString(),ano = "",middlegoodsId = this.goodsgroupid ?: "",enumdicnameid = this.goodunitid ?: "",enumdicname = this.enumdicname ?: "" ?: "",middleGoodsName = this.goodsgroupname ?: "")
+                        hedge_coefficient.setText("")
+                    }
                 }
                 textView {
                     text = "*"
@@ -65,7 +66,7 @@ class NewInsuredVarietyViewHolder(
 
                 textView {
                     data.bindOptional(context) {
-                        text = "套保品种"  + data.value?.id.toString()
+                        text = "套保品种"  + + dataIndex.plus(1)
                     }
                     textSizeAuto = 31
                     textColorInt = R.color.rma_black_33
@@ -163,7 +164,7 @@ class NewInsuredVarietyViewHolder(
 
                 textView {
                     data.bindOptional(context) {
-                        text = "折算系数" + dataIndex.plus(1)
+                        text = "折算系数"
                     }
                     textSizeAuto = 31
                     textColorInt = R.color.rma_black_33
@@ -184,11 +185,12 @@ class NewInsuredVarietyViewHolder(
                     textChangedListener {
                         afterTextChanged {
                             if (it.toString().isNotEmpty()) {
-//                                viewModel.changeMiddleGoodsList(
-//                                    "3",
-//                                    data.value?.id.toString(),
-//                                    ano = it.toString()
-//                                )
+                                viewModel.changeMiddleGoodsList(
+                                    wrstandId = wrstandId,
+                                    type = "3",
+                                    id =  data.value?.id.toString(),
+                                    ano = it.toString()
+                                )
                             }
                         }
                     }
@@ -211,15 +213,16 @@ class NewInsuredVarietyViewHolder(
                     }
                     isEnabled = !(operationType == "4" || operationType == "3" || operationType == "5")
                     onThrottleFirstClick {
-//                        if (viewModel.middlegoodList.value?.size.toString() == "1") {
+//                        if (viewModel.spotModelList.value?.size.toString() == "1") {
 //                            ToastUtils.showLong("最少选择一个套保品种")
 //                            return@onThrottleFirstClick
 //                        }
-//                        viewModel.changeMiddleGoodsList(
-//                            "2",
-//                            dataIndex.plus(1).toString(),
-//                            middlegoodsId = ""
-//                        )
+                        viewModel.changeMiddleGoodsList(
+                            wrstandId = wrstandId,
+                            type = "2",
+                            id =  dataIndex.plus(1).toString(),
+                            middlegoodsId = ""
+                        )
 
                     }
                     imageResource = R.mipmap.rma_delete

+ 197 - 114
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/AddContractActivity.kt

@@ -101,7 +101,7 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
     /**
      * 选择的业务类型
      */
-    val businessTypes : MutableLiveData<SelectData> = MutableLiveData()
+    val businessTypes: MutableLiveData<SelectData> = MutableLiveData()
 
     /** 选择的客户 */
     val selectCustomer: MutableLiveData<SelectData> = MutableLiveData()
@@ -119,23 +119,26 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
     val selectGoodsList: MutableLiveData<SelectData> = MutableLiveData()
 
     /** 选择的跟单员 **/
-    val selectMerchandiser : MutableLiveData<SelectData> = MutableLiveData()
+    val selectMerchandiser: MutableLiveData<SelectData> = MutableLiveData()
+
+    /** 选择的交易主体 ***/
+    val selectTradeMain: MutableLiveData<SelectData> = MutableLiveData()
 
     /**
      * 选择的业务员
      */
-    val selectSalesman : MutableLiveData<SelectData> = MutableLiveData()
+    val selectSalesman: MutableLiveData<SelectData> = MutableLiveData()
 
     /**
      * 选择的交易用户
      */
-    val selectTradingData : MutableLiveData<SelectData> = MutableLiveData()
+    val selectTradingData: MutableLiveData<SelectData> = MutableLiveData()
 
 //    /** 选择的期货账户 **/
 //    val selectFuturesAccount : MutableLiveData<SelectData> = MutableLiveData()//暂时不用了
 
     /** 选择的币种 ***/
-    val selelctCurreryId : MutableLiveData<SelectData> = MutableLiveData()
+    val selelctCurreryId: MutableLiveData<SelectData> = MutableLiveData()
 
     /**
      * 点价类型列表
@@ -156,7 +159,12 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
 
     fun initData() {
         if (operationtype == "1") {//新增合同市需要初始化的数据
-            businessTypes.postValue(SelectData(id = MTPEnums.BUSINESS_TYPE_HEDGE.toString(),value = "套保"))
+            businessTypes.postValue(
+                SelectData(
+                    id = MTPEnums.BUSINESS_TYPE_HEDGE.toString(),
+                    value = "套保"
+                )
+            )
             contractType.postValue(
                 SelectData(
                     id = MTPEnums.CONTRACT_TYPE_BUY.toString(),
@@ -165,20 +173,28 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
             )//初始化一个合同类型
             viewModel.pricingType.postValue(SelectData(id = "1", value = "一口价"))//初始化一个价格类型
         } else {//修改或者重新提交时需要初始化的数据
-            selectCustomer.postValue(SelectData(id = if (data.contracttype == "1"){
-                data.selluserid.toString()
-            }else{
-                data.buyuserid.toString()
-            },value = if (data.contracttype == "1"){
-                data.sellusername.toString()
-            }else{
-                data.buyusername.toString()
-            }))
-            businessTypes.postValue(SelectData(id = data.biztype.toString(),value = if (data.biztype == "1"){
-                "套保"
-            }else{
-                "套利"
-            }))
+            selectCustomer.postValue(
+                SelectData(
+                    id = if (data.contracttype == "1") {
+                        data.selluserid.toString()
+                    } else {
+                        data.buyuserid.toString()
+                    }, value = if (data.contracttype == "1") {
+                        data.sellusername.toString()
+                    } else {
+                        data.buyusername.toString()
+                    }
+                )
+            )
+            businessTypes.postValue(
+                SelectData(
+                    id = data.biztype.toString(), value = if (data.biztype == "1") {
+                        "套保"
+                    } else {
+                        "套利"
+                    }
+                )
+            )
             contractType.postValue(
                 SelectData(
                     id = data.contracttype.toString(), value = if (data.contracttype == "1") {
@@ -201,24 +217,67 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                     deliverygoodsid = data.deliverygoodsid.toString()
                 )
             )
+            selectTradeMain.postValue(
+                SelectData(
+                    id = data.subjectid ?: "",
+                    value = data.subjectname ?: ""
+                )
+            )
+
             viewModel.queryWrStandardDetail(data.wrstandardid ?: "")
             viewModel.queryDeliveryGoodsDetail(data.deliverygoodsid ?: "")
-            selectWrStandModel.postValue(SelectData(id = data.wrstandardid.toString(),value = data.wrstandardname.toString(),convertfactor = data.convertfactor.toString()))
-            selectWrStandBrand.postValue(SelectData(id = data.spotgoodsbrandid.toString(),value = data.brandname.toString()))
-            selelctCurreryId.postValue(SelectData(id = data.currencyid.toString(),value = data.currencyname.toString()))
-            if (data.startdate.isNullOrEmpty().not()){
+            selectWrStandModel.postValue(
+                SelectData(
+                    id = data.wrstandardid.toString(),
+                    value = data.wrstandardname.toString(),
+                    convertfactor = data.convertfactor.toString()
+                )
+            )
+            selectWrStandBrand.postValue(
+                SelectData(
+                    id = data.spotgoodsbrandid.toString(),
+                    value = data.brandname.toString()
+                )
+            )
+            selelctCurreryId.postValue(
+                SelectData(
+                    id = data.currencyid.toString(),
+                    value = data.currencyname.toString()
+                )
+            )
+            if (data.startdate.isNullOrEmpty().not()) {
                 midpointsPeriodTime.postValue(data.startdate + "~" + data.enddate)
             }
-            if (data.saleuserid != "0"){
-                selectSalesman.postValue(SelectData(id = data.saleuserid.toString(),value = data.saleusername.toString()))
+            if (data.saleuserid != "0") {
+                selectSalesman.postValue(
+                    SelectData(
+                        id = data.saleuserid.toString(),
+                        value = data.saleusername.toString()
+                    )
+                )
             }
-            if (data.tradeuserid != "0"){
-                selectTradingData.postValue(SelectData(id = data.tradeuserid.toString(),value = data.tradeusername.toString()))
+            if (data.tradeuserid != "0") {
+                selectTradingData.postValue(
+                    SelectData(
+                        id = data.tradeuserid.toString(),
+                        value = data.tradeusername.toString()
+                    )
+                )
             }
-            if (data.meruserid != "0"){
-                selectMerchandiser.postValue(SelectData(id = data.meruserid.toString(),value = data.merusername.toString()))
+            if (data.meruserid != "0") {
+                selectMerchandiser.postValue(
+                    SelectData(
+                        id = data.meruserid.toString(),
+                        value = data.merusername.toString()
+                    )
+                )
             }
-            selectGoodsList.postValue(SelectData(id = data.goodsid.toString(),value = data.goodsname.toString()))
+            selectGoodsList.postValue(
+                SelectData(
+                    id = data.goodsid.toString(),
+                    value = data.goodsname.toString()
+                )
+            )
 
 
         }
@@ -231,6 +290,7 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
             background = resources.getDrawable(R.color.segtabment_bg_color)
             viewModel.queryUserInfo()
             viewModel.queryRootUserAccount()
+            viewModel.getNormalDataList()//查询正常状态下的交易主体
             viewModel.queryDeliveryGoods()//进入页面查询现货品种
             viewModel.queryAccMgrLoginUser()//查询登录账号
 //            viewModel.queryAccMgrTaaccount()//查询期货账户
@@ -239,9 +299,9 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
             topBar {
                 commonLeftButton()
                 commonTitle {
-                    if (operationtype == "1"){
+                    if (operationtype == "1") {
                         text = "新增合同"
-                    }else{
+                    } else {
                         text = "修改"
                     }
                 }
@@ -273,7 +333,7 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                             }
 
                             editText {
-                                if (operationtype == "2"){
+                                if (operationtype == "2") {
                                     setText(data.contractno)
                                 }
                                 contractNo = this
@@ -345,7 +405,7 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                             }
                         }.lparams(matchParent, autoSize(132))
 
-                         viewItemUI()
+                        viewItemUI()
 
                         linearLayout {
                             background = resources.getDrawable(R.color.white)
@@ -451,8 +511,8 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                                         "请选择客户"
                                     }
                                 }
-                                viewModel.rootUserAccountData.bindOptional(context){
-                                    if (contractType.value?.id == "1"){
+                                viewModel.rootUserAccountData.bindOptional(context) {
+                                    if (contractType.value?.id == "1") {
                                         text = it?.accountname
                                     }
                                 }
@@ -528,16 +588,16 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                                     text = if (it?.id == "-1") {
                                         viewModel.rootUserAccountData.value?.accountname
                                     } else {
-                                        if (operationtype == "2"){
+                                        if (operationtype == "2") {
                                             data.sellusername
-                                        }else{
+                                        } else {
                                             "请选择客户"
                                         }
 
                                     }
                                 }
-                                viewModel.rootUserAccountData.bindOptional(context){
-                                    if (contractType.value?.id == "-1"){
+                                viewModel.rootUserAccountData.bindOptional(context) {
+                                    if (contractType.value?.id == "-1") {
                                         text = it?.accountname
                                     }
                                 }
@@ -574,6 +634,58 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                         linearLayout {
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
+                            onThrottleFirstClick {
+                                creatBottomSheetDialog(
+                                    "请选择交易主体",
+                                    viewModel.selectTradeMainList(
+                                        viewModel.normalTradeDataList.value ?: arrayListOf()
+                                    )
+                                ) {
+                                    selectTradeMain.postValue(this)
+                                }
+                            }
+                            textView {
+                                text = "*"
+                                textColorInt = R.color.rma_star_color
+                                textSizeAuto = 31
+                            }.lparams(wrapContent, wrapContent) {
+                                marginStart = autoSize(37)
+                            }
+
+                            textView {
+                                text = "交易主体"
+                                textSizeAuto = 31
+                                textColorInt = R.color.rma_black_33
+                            }.lparams(wrapContent, wrapContent) {
+                                marginStart = autoSize(10)
+                            }
+
+                            textView {
+                                selectTradeMain.bindOptional(context) {
+                                    text = it?.value
+                                    textColorInt = R.color.rma_black_33
+                                }
+                                text = "请选择交易主体"
+                                textSizeAuto = 31
+                                textColorInt = R.color.rma_hint_text_color_ccc
+                            }.lparams(wrapContent, wrapContent) {
+                                marginStart = autoSize(80)
+                            }
+
+                            emptyView()
+
+                            imageView {
+                                imageResource = R.mipmap.rma_more
+                            }.lparams(autoSize(36), autoSize(36)) {
+                                marginEnd = autoSize(25)
+                            }
+                        }.lparams(matchParent, autoSize(132))
+
+                        viewItemUI()
+
+                        linearLayout {
+                            background = resources.getDrawable(R.color.white)
+                            gravity = Gravity.CENTER_VERTICAL
 
                             textView {
                                 text = "合同附件"
@@ -780,48 +892,6 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                             }
                         }.lparams(matchParent, autoSize(132))
 
-                         viewItemUI()
-
-                        linearLayout {
-                            background = resources.getDrawable(R.color.white)
-                            gravity = Gravity.CENTER_VERTICAL
-                            textView {
-                                text = "*"
-                                textColorInt = R.color.rma_star_color
-                                textSizeAuto = 31
-                            }.lparams(wrapContent, wrapContent) {
-                                marginStart = autoSize(37)
-                            }
-
-                            textView {
-                                text = "标仓系数"
-                                textSizeAuto = 31
-                                textColorInt = R.color.rma_black_33
-                            }.lparams(wrapContent, wrapContent) {
-                                marginStart = autoSize(10)
-                            }
-
-                            editText {
-                                isEnabled = false
-                                coefficientWarehouse = this
-                                if (data.convertfactor?.isNotEmpty() == true) {
-                                    coefficientWarehouse.setText(data.convertfactor.toString())
-                                }
-                                selectWrStandModel.bindOptional(context) {
-                                    setText(it?.convertfactor)
-                                }
-                                hint = "选择品类后自动填入"
-                                background = null
-                                inputType = EditorInfo.TYPE_CLASS_NUMBER
-                                setDecimalInputType()
-                                hintColorStr = "#CCCCCC"
-                                textSizeAuto = 31
-                                textColorStr = "#333333"
-                            }.lparams(matchParent, autoSize(132)) {
-                                marginStart = autoSize(80)
-                            }
-                        }.lparams(matchParent, autoSize(132))
-
                         viewItemUI()
 
                         linearLayout {
@@ -898,8 +968,8 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
 
                             editText {
                                 productSpecifications = this
-                                selectWrStandardData.bindOptional(context){
-                                    if (it?.id?.isNotEmpty() == true){
+                                selectWrStandardData.bindOptional(context) {
+                                    if (it?.id?.isNotEmpty() == true) {
                                         setText("默认")
                                     }
                                 }
@@ -965,7 +1035,10 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
                             onThrottleFirstClick {
-                                creatBottomSheetDialog("请选择结算币种", viewModel.getSelectCurreryIdData()) {
+                                creatBottomSheetDialog(
+                                    "请选择结算币种",
+                                    viewModel.getSelectCurreryIdData()
+                                ) {
                                     selelctCurreryId.postValue(this)
                                 }
                             }
@@ -1131,8 +1204,8 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
 //                                        text = it?.value + "/" +  selectWrStandModel.value?.enumdicname
 //                                    }
 //                                }
-                                selectWrStandModel.bindOptional(context){
-                                    text = "元/" +  it?.enumdicname
+                                selectWrStandModel.bindOptional(context) {
+                                    text = "元/" + it?.enumdicname
                                 }
                                 text = "元"
                                 textSizeAuto = 31
@@ -1317,7 +1390,7 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                             }
 
                             editText {
-                                if (operationtype == "2"){
+                                if (operationtype == "2") {
                                     setText(data.pricemove)
                                 }
                                 liter_discount_edittext = this
@@ -1457,7 +1530,7 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                                 hintColorStr = "#CCCCCC"
                                 textSizeAuto = 31
                                 textColorStr = "#333333"
-                            }.lparams(0, autoSize(132),1f) {
+                            }.lparams(0, autoSize(132), 1f) {
                                 marginStart = autoSize(80)
                             }
 
@@ -1683,23 +1756,23 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                             if (checkUpdate().not()) {
                                 return@onThrottleFirstClick
                             }
-                            if (data.spotcontractid.isNullOrEmpty()){
+                            if (data.spotcontractid.isNullOrEmpty()) {
                                 viewModel.orderContract(
-                                contractInfo = getContractInfo(),
-                                OperateType = "2",
-                                Remark = remask_edittext.text.toString()
-                            ) {
-                                finish()
-                            }
-                            }else{
+                                    contractInfo = getContractInfo(),
+                                    OperateType = "2",
+                                    Remark = remask_edittext.text.toString()
+                                ) {
+                                    finish()
+                                }
+                            } else {
                                 viewModel.orderContract(
-                                contractInfo = getContractInfo(),
-                                OperateType = "2",
-                                Remark = remask_edittext.text.toString(),
-                                SpotContractID = data.spotcontractid ?: ""
-                            ) {
-                                finish()
-                            }
+                                    contractInfo = getContractInfo(),
+                                    OperateType = "2",
+                                    Remark = remask_edittext.text.toString(),
+                                    SpotContractID = data.spotcontractid ?: ""
+                                ) {
+                                    finish()
+                                }
                             }
 
                         }
@@ -1740,16 +1813,19 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
         if (margin_edittext.text.toString().isNotEmpty()) {
             contractInfo.ContractMargin = margin_edittext.text.toString().toDouble()
         }
-        if (selectMerchandiser.value?.id?.isNotEmpty() == true){
+        if (selectMerchandiser.value?.id?.isNotEmpty() == true) {
             contractInfo.MerUserID = selectMerchandiser.value?.id?.toLong() ?: 0
         }
-        if (selectSalesman.value?.id?.isNotEmpty() == true){
+        if (selectSalesman.value?.id?.isNotEmpty() == true) {
             contractInfo.SaleUserID = selectSalesman.value?.id?.toLong() ?: 0
         }
+        if (selectTradeMain.value?.id?.isNotEmpty() == true) {
+            contractInfo.SubjectID = selectTradeMain.value?.id?.toLong() ?: 0
+        }
 //        if (selectFuturesAccount.value?.id?.isNotEmpty() == true){
 //            contractInfo.AccountID = selectFuturesAccount.value?.id?.toLong() ?: 0
 //        }
-        if (selectTradingData.value?.id.isNullOrEmpty().not()){
+        if (selectTradingData.value?.id.isNullOrEmpty().not()) {
             contractInfo.TradeUserID = selectTradingData.value?.id?.toLong() ?: 0
         }
         contractInfo.BizType = businessTypes.value?.id?.toInt() ?: 0//业务类型
@@ -1757,7 +1833,8 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
         contractInfo.WrStandardID = selectWrStandModel.value?.id?.toLong()!!//品类
         contractInfo.SpotGoodsBrandID = selectWrStandBrand.value?.id?.toLong()!!//品牌
         contractInfo.ProductType = 1//三期版本写死为1:标准仓单
-        contractInfo.ConvertFactor = coefficientWarehouse.text.toString().toDouble()
+        //2021年9月改版去掉了标仓系数
+//        contractInfo.ConvertFactor = coefficientWarehouse.text.toString().toDouble()
         contractInfo.SpotGoodsModelID = selectWrStandModel.value?.id?.toInt()!!
         contractInfo.PriceType = viewModel.pricingType.value?.id?.toInt()!!//定价类型
         contractInfo.Qty = number_Edittext.text.toString().toDouble()
@@ -1769,7 +1846,8 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
                 .times(number_Edittext.text.toString().toDouble())
         } else if (viewModel.pricingType.value?.id == "3") {//暂定价时price为暂定价
             contractInfo.Price = temperary_edittext.text.toString().toDouble()
-            contractInfo.Amount = temperary_edittext.text.toString().toDouble().times(number_Edittext.text.toString().toDouble())
+            contractInfo.Amount = temperary_edittext.text.toString().toDouble()
+                .times(number_Edittext.text.toString().toDouble())
             contractInfo.GoodsID = selectGoodsList.value?.id?.toLong() ?: 0//点价合约在点价和暂定价是需要传值
         } else {
             contractInfo.GoodsID = selectGoodsList.value?.id?.toLong() ?: 0//暂时写死一个
@@ -1807,15 +1885,20 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
             return false
         }
 
-        if (businessTypes.value?.id.isNullOrEmpty()){
+        if (businessTypes.value?.id.isNullOrEmpty()) {
             ToastUtils.showLong("请选择业务类型")
             return false
         }
 
-        if (coefficientWarehouse.text.toString().isNullOrEmpty()) {
-            ToastUtils.showLong("请输入标仓系数")
+        if (selectTradeMain.value?.id.isNullOrEmpty()) {
+            ToastUtils.showLong("请选择交易主体")
             return false
         }
+
+//        if (coefficientWarehouse.text.toString().isNullOrEmpty()) {
+//            ToastUtils.showLong("请输入标仓系数")
+//            return false
+//        }
         if (selectWrStandModel.value?.id.isNullOrEmpty()) {
             ToastUtils.showLong("请选择型号")
             return false
@@ -1867,7 +1950,7 @@ class AddContractActivity : BaseActivity<ContractViewModel>() {
             }
         }
 
-        if (selelctCurreryId.value?.id.isNullOrEmpty()){
+        if (selelctCurreryId.value?.id.isNullOrEmpty()) {
             ToastUtils.showLong("请选择结算币种")
             return false
         }

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

@@ -265,7 +265,7 @@ fun _LinearLayout.contractDetailTwoView(data: ContractData) {
             }
         }.lparams(matchParent, autoSize(132))
 
-        // FIXME 移除标仓系数 需要新增交易主体
+
         viewItemUI()
 
         linearLayout {
@@ -279,7 +279,7 @@ fun _LinearLayout.contractDetailTwoView(data: ContractData) {
             }
 
             textView {
-                text = "交易主体"
+                text = data.subjectname
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {

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

@@ -97,6 +97,46 @@ class ContractViewModel : BaseViewModel() {
      */
     val rootUserAccountData : MutableLiveData<RootUserAccountData> = MutableLiveData()
 
+    //交易主体正常的列表
+    val normalTradeDataList : MutableLiveData<List<PaAreaSubjectData>> = MutableLiveData()
+
+    //获取交易主体正常的列表
+    fun getNormalDataList(){
+        val params = mutableMapOf<String,String>().apply {
+            put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("subjectstatus","1")
+        }
+        MyApplication.getInstance()?.spotManager?.queryPaAreaSubject(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                val newDataList = respData?.toArrayList()
+                newDataList?.sortWith(Comparator { t1, t2 ->
+                    (t1.subjectid?.toInt() ?: 0 - t2.subjectid?.toInt()!! ?: 0).toInt()
+                })
+                normalTradeDataList.postValue(newDataList)
+            }
+        }
+    }
+
+    /**
+     * 根据选择控件进行数据重新组装(交易主体列表)
+     * @param dataList List<UserInfoData>
+     * @return ArrayList<SelectData>
+     */
+    fun selectTradeMainList(dataList: List<PaAreaSubjectData>): ArrayList<SelectData> {
+        val newSpotVarietiesList = arrayListOf<SelectData>()
+        dataList.forEach {
+            newSpotVarietiesList.add(
+                SelectData(
+                    id = it.subjectid ?: "",
+                    value = it.subjectname ?: ""
+                )
+            )
+        }
+        return newSpotVarietiesList
+    }
+
+
+
     /**
      * 查询顶级用户信息
      */
@@ -296,12 +336,11 @@ class ContractViewModel : BaseViewModel() {
      */
     fun getSelectWrsandData(): List<SelectData> {
         val newSelectData = arrayListOf<SelectData>()
-        deliveryGoodsDetailsData.value?.gmlist?.forEach {
+        deliveryGoodsDetailsData.value?.wdlst?.forEach {
             newSelectData.add(
                 SelectData(
                     id = it.wrstandardid ?: "",
                     value = it.wrstandardname ?: "",
-                    convertfactor = it.convertfactor ?: "",
                     enumdicname = it.enumdicname ?: ""
                 )
             )
@@ -444,7 +483,7 @@ class ContractViewModel : BaseViewModel() {
                 "套保"
             }else{
                 "套利"
-            } + "\n" + it.convertfactor)//'业务类型/\n标仓系数 '
+            } + "\n" + it.subjectname)//'业务类型/\n标仓系数-改为交易主体 '
             newRightData.add(ViewEnumUtils.getPriceType(it.pricetype ?: "")  + "\n" + it.goodsname?.isBlankString())//'定价类型/\n点价合约 '
             newRightData.add(it.price + "\n" + it.pricemove)//'价格/\n升贴水 '
             newRightData.add(it.amount + "\n" + it.margin)//'金额/\n保证金 '
@@ -557,7 +596,7 @@ class ContractViewModel : BaseViewModel() {
      */
     fun selectWrStandardBrand(data: DeliveryGoodsDetailData): ArrayList<SelectData> {
         val wrstandardBrand = arrayListOf<SelectData>()
-        data.gblist?.forEach {
+        data.bdlst?.forEach {
             wrstandardBrand.add(SelectData(id = it.brandid ?: "", value = it.brandname ?: ""))
         }
         return wrstandardBrand

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

@@ -432,12 +432,8 @@ fun _LinearLayout.creatHedgeHeadUI() {
         }
 
         verticalLayout {
-            gravity = Gravity.CENTER_VERTICAL
-            textView {
-                text = "标仓系数/"
-                textColorInt = R.color.hint_text_color
-                textSizeAuto = 24
-            }.lparams(wrapContent, wrapContent)
+            gravity = Gravity.CENTER
+
             textView {
                 text = "计划量"
                 textColorInt = R.color.hint_text_color

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

@@ -3,9 +3,12 @@ package cn.muchinfo.rma.view.base.home.hedge
 import android.annotation.SuppressLint
 import android.content.Intent
 import android.graphics.Typeface
+import android.os.Build
 import android.text.TextUtils
+import android.util.TypedValue
 import android.view.Gravity
 import android.view.View
+import androidx.annotation.RequiresApi
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.GlobalDataCollection
@@ -20,6 +23,7 @@ import org.jetbrains.anko.*
 class HedgePlanViewHolder(private val activity: AppCompatActivity,private val viewModel: HedgePlanViewModel,private val type : String) : BaseViewHolder<HedgePlanData>(activity) {
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
+    @RequiresApi(Build.VERSION_CODES.O)
     @SuppressLint("SetTextI18n")
     override fun _FrameLayout.createContentView() {
         verticalLayout {
@@ -113,10 +117,11 @@ class HedgePlanViewHolder(private val activity: AppCompatActivity,private val vi
                 }
 
                 verticalLayout {
-                    gravity = Gravity.CENTER_VERTICAL
+                    gravity = Gravity.CENTER
 
                     //标仓系数
                     textView {
+                        visibility = View.GONE
                         data.bindOptional(context){
                             text = it?.convertfactor
                         }
@@ -150,10 +155,11 @@ class HedgePlanViewHolder(private val activity: AppCompatActivity,private val vi
                 verticalLayout {
 
                     textView {
+                        //autoSizeMinTextSize 最小值;autoSizeMaxTextSize:最大值;autoSizeStepGranularity:增量;unit:类型,此处指定的是sp
                         data.bindOptional(context){
                             text = it?.tradeusername
                         }
-                        textSizeAuto = 29
+                        textSizeAuto = 27
                         textColorInt = R.color.rma_black_33
                     }.lparams(wrapContent, wrapContent) {
                         topMargin = autoSize(25)

+ 11 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/trademain/TradeMainActivity.kt

@@ -1,5 +1,6 @@
 package cn.muchinfo.rma.view.base.home.trademain
 
+import android.content.Intent
 import android.os.Bundle
 import android.view.Gravity
 import android.view.View
@@ -10,10 +11,13 @@ import androidx.viewpager.widget.ViewPager
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.PaAreaSubjectData
 import cn.muchinfo.rma.global.data.SpotGoodsPriceData
+import cn.muchinfo.rma.global.data.UserInfoData
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.home.customerdata.AddCustomerDataActivity
 import cn.muchinfo.rma.view.base.home.spotmarket.SpotMarketPriceViewHolder
+import com.blankj.utilcode.util.ActivityUtils
 import com.blankj.utilcode.util.ConvertUtils
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
 import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
@@ -97,6 +101,13 @@ class TradeMainActivity : BaseActivity<TradeMainViewModel>(){
                 commonTitle {
                     text = "交易主体"
                 }
+                commonMenuButton(R.mipmap.customer_add) {
+                    val intent = Intent()
+                    intent.putExtra("type", "1")
+                    intent.putExtra("data", PaAreaSubjectData())
+                    intent.setClass(context, OperationTradeActivity::class.java)
+                    ActivityUtils.startActivity(intent)
+                }
             }
 
             tabSegment {

+ 13 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/trademain/TradeMainViewModel.kt

@@ -6,7 +6,10 @@ import cn.muchinfo.rma.global.data.PaAreaSubjectData
 import cn.muchinfo.rma.global.data.SpotGoodsPriceData
 import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.autoWidget.remove
+import cn.muchinfo.rma.view.autoWidget.toArrayList
 import cn.muchinfo.rma.view.base.BaseViewModel
+import com.blankj.utilcode.util.TimeUtils
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
 import mtp.polymer.com.autowidget.utils.TaskUiModel
@@ -35,7 +38,11 @@ class TradeMainViewModel : BaseViewModel(){
         }
         MyApplication.getInstance()?.spotManager?.queryPaAreaSubject(params = params){isSuccess, respData, error ->
             if (isSuccess){
-                normalTradeDataList.postValue(respData)
+                val newDataList = respData?.toArrayList()
+                newDataList?.sortWith(Comparator { t1, t2 ->
+                    (t1.subjectid?.toInt() ?: 0 - t2.subjectid?.toInt()!! ?: 0).toInt()
+                })
+                normalTradeDataList.postValue(newDataList)
             }
         }
     }
@@ -48,7 +55,11 @@ class TradeMainViewModel : BaseViewModel(){
         }
         MyApplication.getInstance()?.spotManager?.queryPaAreaSubject(params = params){isSuccess, respData, error ->
             if (isSuccess){
-                disableTradeDataList.postValue(respData)
+                val newDataList = respData?.toArrayList()
+                newDataList?.sortWith(Comparator { t1, t2 ->
+                    (t1.subjectid?.toInt() ?: 0 - t2.subjectid?.toInt()!! ?: 0).toInt()
+                })
+                disableTradeDataList.postValue(newDataList)
             }
         }
     }

+ 37 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/trademain/TradeNormalViewHolder.kt

@@ -1,6 +1,8 @@
 package cn.muchinfo.rma.view.base.home.trademain
 
+import android.content.Intent
 import android.view.Gravity
+import android.view.View
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.PaAreaSubjectData
@@ -11,6 +13,7 @@ import cn.muchinfo.rma.view.autoWidget.textColorInt
 import cn.muchinfo.rma.view.autoWidget.textSizeAuto
 import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.home.contract.emptyView
+import com.blankj.utilcode.util.ActivityUtils
 import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import mtp.polymer.com.autowidget.dialog.createWarningDialog
 import org.jetbrains.anko.*
@@ -28,6 +31,11 @@ class TradeNormalViewHolder(private val activity : AppCompatActivity,private val
 
     override fun _FrameLayout.createContentView() {
         verticalLayout {
+
+            onThrottleFirstClick {
+                viewModel.setOnItemClick(subjectid = data.value?.subjectid ?: "",subjectstatus = type)
+            }
+
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 linearLayout {
@@ -54,14 +62,31 @@ class TradeNormalViewHolder(private val activity : AppCompatActivity,private val
 
             // 控制区
             linearLayout {
-                
+
+                data.bindOptional(context){
+                    if (it?.isClick == 0){
+                        visibility = View.GONE
+                    }else if (it?.isClick == 1){
+                        visibility = View.VISIBLE
+                    }
+                }
                 gravity = Gravity.CENTER_VERTICAL
 
+
                 emptyView()
 
                 textView {
+                    if (type == "1"){
+                        visibility = View.VISIBLE
+                    }else{
+                        visibility = View.GONE
+                    }
                     onThrottleFirstClick {
-
+                        val intent = Intent()
+                        intent.putExtra("type", "2")
+                        intent.putExtra("data", data.value)
+                        intent.setClass(context, OperationTradeActivity::class.java)
+                        ActivityUtils.startActivity(intent)
                     }
                     backgroundResource = R.drawable.rma_item_click_bg
                     gravity = Gravity.CENTER
@@ -73,6 +98,11 @@ class TradeNormalViewHolder(private val activity : AppCompatActivity,private val
                 }
 
                 textView {
+                    if (type == "1"){
+                        visibility = View.VISIBLE
+                    }else{
+                        visibility = View.GONE
+                    }
                     onThrottleFirstClick {
                         activity.createWarningDialog {
                             setTitle("温馨提示")
@@ -97,6 +127,11 @@ class TradeNormalViewHolder(private val activity : AppCompatActivity,private val
                 }
 
                 textView {
+                    if (type == "2"){
+                        visibility = View.VISIBLE
+                    }else{
+                        visibility = View.GONE
+                    }
                     onThrottleFirstClick {
                         activity.createWarningDialog {
                             setTitle("温馨提示")

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

@@ -319,6 +319,7 @@ class ContractDetailsUI(
                         "采购方"
                     },content = accnoutname
                 ),
+                ContractDetailsData(title = "交易主体", content = data.subjectname ?: ""),
                 ContractDetailsData(title = "业务类型",content = if (data.biztype == "1"){
                     "套保"
                 }else{
@@ -339,7 +340,7 @@ class ContractDetailsUI(
                 ),
                 ContractDetailsData(title = "点价合约", content = data.goodsname ?: ""),
                 ContractDetailsData(title = "升贴水", content = data.pricemove ?: ""),
-                ContractDetailsData(title = "标仓系数", content = data.convertfactor ?: ""),
+//                ContractDetailsData(title = "标仓系数", content = data.convertfactor ?: ""),
                 ContractDetailsData(
                     title = "点价期",
                     content = data.startdate?.isShowTimeString("MM-dd") + "~" + data.enddate?.isShowTimeString(

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

@@ -50,6 +50,8 @@ class ProcurementFragment : BaseFragment<ProcurementViewModel>() {
     private val settlementUI by lazy { SettlementUI(this, viewModel) }
     private val allUI by lazy { newAllUI(this, viewModel) }
 
+    var indexFirst : Int = 0
+
     //新增合同
     private val spotBuyUnSubmitUI by lazy { SpotBuyUnSubmitUI(this.getAppCompatActivity(),viewModel) }
 
@@ -66,6 +68,12 @@ class ProcurementFragment : BaseFragment<ProcurementViewModel>() {
     private val uiList : ArrayList<_FrameLayout> = arrayListOf()
 
     fun initMenuData(){
+        if (uiList.size > 0){
+            newPagerAdapter = null
+            newTabsArray.clear()
+            uiList.clear()
+        }
+
         if (GlobalDataCollection.instance?.getThreeLevelMenu(firstCode = "client_spots",secondCode = "client_spots_purchase",threeCode = "client_spots_purchase_point") == true){
             newTabsArray.add("待点价")
             uiList.add(priceUI.root)
@@ -89,6 +97,9 @@ class ProcurementFragment : BaseFragment<ProcurementViewModel>() {
 
             override fun instantiateItem(container: ViewGroup, position: Int): Any {
                 return uiList.get(position).apply {
+                    if (this.parent != null){
+                        container.removeView(this)
+                    }
                     container.addView(
                         this,
                         ViewGroup.LayoutParams(matchParent, matchParent)
@@ -118,9 +129,17 @@ class ProcurementFragment : BaseFragment<ProcurementViewModel>() {
         }
     }
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        EventBus.getDefault().register(this)
+
+//        initMenuData()
+    }
+
     override fun onDestroy() {
         super.onDestroy()
         EventBus.getDefault().unregister(this)
+
     }
 
     override fun onCreateView(
@@ -128,8 +147,13 @@ class ProcurementFragment : BaseFragment<ProcurementViewModel>() {
         container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View? {
-        EventBus.getDefault().register(this)
+        // 此处为处理bug闪退问题 The specified child already has a parent. You must call removeView() on the child's parent first
         initMenuData()
+        if (indexFirst > 0){
+            segment.reset()
+            viewPager.adapter = newPagerAdapter
+        }
+        indexFirst++
         return UI {
             verticalLayout {
                 tabSegment {
@@ -144,6 +168,7 @@ class ProcurementFragment : BaseFragment<ProcurementViewModel>() {
                             selectedTabIndex = index
                         }
                     })
+
                     setIndicator(QMUITabIndicator(QMUIDisplayHelper.dp2px(context, 2), false, true))
                     setDefaultTextSize(ConvertUtils.sp2px(16f), ConvertUtils.sp2px(16f))
                 }.lparams(matchParent, autoSize(100))

+ 6 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/purchasesale/PurchaseSaleFragment.kt

@@ -97,12 +97,17 @@ class PurchaseSaleFragment : BaseFragment<HedgePlanViewModel>(){
 
     }
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        initMenuData()
+    }
+
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View? {
-        initMenuData()
+
         return UI {
             verticalLayout {
                 tabSegment {

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

@@ -122,13 +122,19 @@ class SaleFragment : BaseFragment<SaleViewModel>() {
         EventBus.getDefault().unregister(this)
     }
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        EventBus.getDefault().register(this)
+        initMenuData()
+    }
+
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View? {
-        EventBus.getDefault().register(this)
-        initMenuData()
+
+
         return UI {
             verticalLayout {
                 tabSegment {

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

@@ -512,7 +512,7 @@ class TradeCircleDelistedActivity : BaseActivity<TradeCircleDelistedViewModel>()
                                 }
 
                                 textView {
-                                    text = "(" + data.minivalue + data.enumdicname + "起)"
+                                    text = "(" + data.delistminqty + data.enumdicname + "起)"
                                     textSizeAuto = 29
                                     textColorInt = R.color.rma_hint_text_color_ccc
                                 }.lparams(wrapContent, wrapContent) {
@@ -525,7 +525,7 @@ class TradeCircleDelistedActivity : BaseActivity<TradeCircleDelistedViewModel>()
                                 linearLayout {
                                     gravity = Gravity.CENTER_VERTICAL
                                     numberEditText {
-                                        text = "1"
+                                        data.delistminqty
                                         max = data.orderqty?.toDouble() ?: 1.0
                                         onePriceInputNumberEdittext = this
                                         setOnTextChangeListener { view, value ->
@@ -588,7 +588,7 @@ class TradeCircleDelistedActivity : BaseActivity<TradeCircleDelistedViewModel>()
 
                                 linearLayout {
                                     textView {
-                                        text = "0"
+                                        text = data.delistminqty
                                         textSizeAuto = 29
                                         textColorInt = R.color.rma_gray_color
                                     }.lparams(wrapContent, wrapContent)

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


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


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است