소스 검색

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

Liu.bolan 4 년 전
부모
커밋
ddd8e98877
28개의 변경된 파일931개의 추가작업 그리고 154개의 파일을 삭제
  1. 2 0
      RMA/app/src/main/AndroidManifest.xml
  2. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/WrGoodsInfoData.kt
  3. 4 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/WrOrderDetailData.kt
  4. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  5. 2 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysFragment.kt
  6. 8 8
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/HnstcdysViewModel.kt
  7. 0 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstcdys/dialog/HnstFloatListedDialog.kt
  8. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/bookingwarehouse/BookingWarehouseViewModel.kt
  9. 5 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/adapter/ContractPositionContentAdapter.java
  10. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/delivery/DeliveryViewHolder.kt
  11. 2 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/AgreementUnwindActivity.kt
  12. 35 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performancetemplate/AddPerformanceTempateActivity.kt
  13. 2 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performancetemplate/AddPerformanceViewHolder.kt
  14. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/SpotWareHouseViewModel.kt
  15. 62 24
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/arecancelled/AreCancelledActivity.kt
  16. 23 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/listed/ListedActivity.kt
  17. 420 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeFragment.kt
  18. 107 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeViewModel.kt
  19. 2 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseReceiptFragment.kt
  20. 4 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/WarehouseReceiptViewModel.kt
  21. 0 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/dialog/WarehouseFloatListedDialog.kt
  22. 2 64
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/tradecircle/TradeCircleListedBuyUI.kt
  23. 7 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/tradecircle/TradeCircleListedingActivity.kt
  24. 23 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/tradecircle/TradeCircleListedingViewModel.kt
  25. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/business/SwapsBusinessBuyHallViewHolder.kt
  26. 112 19
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingActivity.kt
  27. 86 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingViewModel.kt
  28. 13 11
      RMA/app/src/main/res/layout/spot_warehouse_layout_item_content.xml

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

@@ -465,6 +465,8 @@
         <activity android:name=".view.base.yrdzpurchase.swaps.delisting.SwapsDelistingActivity"/>
 
         <activity android:name=".view.base.yrdzpurchase.swaps.listed.SwapsListedActivity"/>
+
+        <activity android:name=".view.base.hnstmain.contractorders.unwind.AgreementUnwindActivity"/>
     </application>
 
 </manifest>

+ 2 - 2
RMA/app/src/main/java/cn/muchinfo/rma/global/data/WrGoodsInfoData.kt

@@ -25,9 +25,9 @@ data class WrGoodsInfoData(
 
 data class lstitem(
     @SerializedName("name")
-    val name : String? = "",
+    var name : String? = "",
     @SerializedName("value")
-    val value : String? = ""
+    var value : String? = ""
 ) : Parcelable{
     constructor(parcel: Parcel) : this(
         parcel.readString(),

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

@@ -62,6 +62,8 @@ data class WrOrderDetailData(
     val goodscode : String? = "",//期货合约
     @SerializedName("goodsid")
     val goodsid : String? = "",//期货商品id
+    @SerializedName("ladingbillid")
+    val ladingbillid : String? = "",//提单ID(208+Unix秒时间戳(10位)+xxxxxx)
     @SerializedName("haswr")
     val haswr : String? = "",//是否有仓单-卖方 - 0:无仓单 1:有仓单
     @SerializedName("marketid")
@@ -158,6 +160,7 @@ data class WrOrderDetailData(
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
+        parcel.readString(),
         parcel.createStringArrayList()
     ) {
     }
@@ -190,6 +193,7 @@ data class WrOrderDetailData(
         parcel.writeString(futushow)
         parcel.writeString(goodscode)
         parcel.writeString(goodsid)
+        parcel.writeString(ladingbillid)
         parcel.writeString(haswr)
         parcel.writeString(marketid)
         parcel.writeString(optioncompare)

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

@@ -14,7 +14,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.104:8080/cfg?key=test_104"//李倩云融 18611112222
 //
 //    const val baseurl = "http://192.168.31.135:8080/cfg?key=test_135"// 瑶姐 云融 130000000001 123456
 
@@ -29,7 +29,7 @@ object Constant {
 //    const val baseurl = "http://192.168.31.181:8080/cfg?key=test_181"//黄老板 华南顺通 调试 110010000001/123123  120010000001/123123
 //    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.176:8080/cfg?key=test_176"//黄老板 天津麦顿调试
 
     /**
      * 用sp存储基础url的key

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

@@ -195,6 +195,8 @@ class HnstcdysFragment : BaseFragment<HnstcdysViewModel>(){
                             intent.setClass(context, TradeCircleListedingActivity::class.java)
                             ActivityUtils.startActivity(intent)
                         }
+
+                        viewModel.resetSelectContent()
                     }
                 }
                 linearLayout {

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

@@ -132,7 +132,7 @@ class HnstcdysViewModel : BaseViewModel(){
                 if (respData.isNullOrEmpty().not()){
                     circleDataByListed.postValue(respData?.get(0))
                 }else{
-                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(goodsCode = selectGoodsInfoData.value?.goodsCode,DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
                 }
             }
         }
@@ -160,7 +160,7 @@ class HnstcdysViewModel : BaseViewModel(){
                 if (respData.isNullOrEmpty().not()){
                     circleDataByListed.postValue(respData?.get(0))
                 }else{
-                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(goodsCode = selectGoodsInfoData.value?.goodsCode,DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
                 }
             }
         }
@@ -195,8 +195,8 @@ class HnstcdysViewModel : BaseViewModel(){
         val newList = arrayListOf<OrderQuoteMyqData>()
         respData.forEach {
             val newRightData = arrayListOf<String>()
-            //履约方式
-            newRightData.add(it.templatename ?: "-")
+            //挂牌方
+            newRightData.add(it.userid + it.username ?: "-")
             //价格
             newRightData.add(it.fixedprice ?: "-")
             //数量
@@ -209,10 +209,10 @@ class HnstcdysViewModel : BaseViewModel(){
             newRightData.add(it.validtime?.toShowTime3() ?: "-")
             //履约保证金
             newRightData.add(it.marginvalue?.toPercentage() ?: "-")
+            //履约方式
+            newRightData.add(it.templatename ?: "-")
             //仓库
             newRightData.add(it.warehousename ?: "-")
-            //挂牌方
-            newRightData.add(it.username ?: "-")
             val newData = it.copy(rightData = newRightData)
             newList.add(newData)
         }
@@ -416,7 +416,7 @@ class HnstcdysViewModel : BaseViewModel(){
         val goodsInfoList1 = DataBase.getInstance().goodsInfoDao().all
         goodsInfoList1?.forEach {
             if (it?.goodsgroupid.toString() == goodsgroupid){
-                newGoodsInfoList.add(SelectData(id = it?.goodsid.toString(),value = it?.goodsname.toString()))
+                newGoodsInfoList.add(SelectData(id = it?.goodsid.toString(),value = it?.goodsname.toString(),goodsCode = it?.goodscode.toString()))
             }
         }
         goodsInfoList.postValue(newGoodsInfoList)
@@ -651,7 +651,7 @@ class HnstcdysViewModel : BaseViewModel(){
                     orderQuoteDataByListed.postValue(respData?.get(0))
 
                 }else{
-                    noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryMonth = deliverymonth,DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
+                    noWRFactorTypeIdDataForListed.postValue(ListedData(goodsCode = selectGoodsInfoData.value?.goodsCode,DeliveryMonth = deliverymonth,DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))
 
                 }
             }

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

@@ -894,9 +894,6 @@ class FloatBuyListedUI(
 
                         textView {
                             maxlistedNumber.bindOptional(context) {
-                                oneNumberInputEdittext.text = NumberUtils.roundNum(
-                                    it?.times(seekBar.progress.div(100.0)).toString(), 0
-                                )
                                 text = it.toString() + data.WrFtWrstandard?.enumdicname
                             }
                             textSizeAuto = 29

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

@@ -488,13 +488,13 @@ class BookingWarehouseViewModel : BaseViewModel(){
                 }
             }
             //期货合约/基差
-            newRightData.add(if (it.goodscode.isNullOrEmpty()){ "--"}else{ it.goodscode  + "\n" + NumberUtils.roundNum(it.pricemove,2)})
+            newRightData.add(if (it.goodsname.isNullOrEmpty()){ "--"}else{ it.goodsname  + "\n" + NumberUtils.roundNum(it.pricemove,2)})
             //挂牌价格
             newRightData.add(it.fixedprice ?: "-")
             //挂牌数量
-            newRightData.add(it.orderqty ?: "-")
+            newRightData.add(it.orderqty + it.enumdicname)
             //成交数量
-            newRightData.add(it.tradeqty ?: "-")
+            newRightData.add(it.tradeqty + it.enumdicname)
             //挂牌时间
             newRightData.add(it.ordertime ?: "-")
             //挂牌单号

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

@@ -35,6 +35,7 @@ import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils;
 import cn.muchinfo.rma.view.base.hnstmain.contractorders.ContractOrdersViewModel;
 import cn.muchinfo.rma.view.base.hnstmain.contractorders.delivery.DeliveryActivity;
 import cn.muchinfo.rma.view.base.hnstmain.contractorders.transfer.ContractTransferActivity;
+import cn.muchinfo.rma.view.base.hnstmain.contractorders.unwind.AgreementUnwindActivity;
 import cn.muchinfo.rma.view.base.hnstmain.finance.FinanceManagementDetailsActivity;
 import cn.muchinfo.rma.view.base.hnstmain.finance.FinanceManagementViewModel;
 import cn.muchinfo.rma.view.base.procurement.RightScrollAdapter;
@@ -227,7 +228,10 @@ public class ContractPositionContentAdapter extends RecyclerView.Adapter<Contrac
 
         //协议平仓
         itemViewHolder.agreement_to_unwind.setOnClickListener(view -> {
-
+            Intent intent = new Intent();
+            intent.putExtra("data", data);
+            intent.setClass(context, AgreementUnwindActivity.class);
+            ActivityUtils.startActivity(intent);
         });
         //交收
         itemViewHolder.fanacel_register.setOnClickListener(view -> {

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/delivery/DeliveryViewHolder.kt

@@ -93,7 +93,7 @@ class DeliveryViewHolder(private val activity : AppCompatActivity,private val vi
 
                     textView {
                         data.bindOptional(context){
-                            text = NumberUtils.roundNum(it?.avalidqty,2) + it?.enumdicname
+                            text = NumberUtils.roundNum(it?.avalidqty,0) + it?.enumdicname
                         }
                         textSizeAuto = 34
                         textColorInt = R.color.rma_black_33

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

@@ -87,6 +87,7 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
 
         EventBus.getDefault().register(this)
         verticalLayout {
+            viewModel.queryTradeHolderDetail(data = data)
             createLoadingDialog(hintStr = "").bindTaskStatus(context, viewModel.loadingDialogStatus)
             topBar {
                 commonLeftButton()
@@ -200,6 +201,7 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
                 }
 
                 verticalLayout {
+                    background = resources.getDrawable(R.color.white)
                     linearLayout {
                         gravity = Gravity.CENTER_VERTICAL
                         linearLayout {

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

@@ -222,6 +222,10 @@ class AddPerformanceTempateActivity : BaseActivity<PerformanceTemplateViewModel>
                                     ToastUtils.showLong("请完成步骤信息")
                                     return@onThrottleFirstClick
                                 }
+
+                                if (check100().not()){
+                                    return@onThrottleFirstClick
+                                }
                                 if (type == "1") {
                                     viewModel.performancePlanTemplateReq(
                                         templatename = performance_name.text.toString(),
@@ -310,6 +314,37 @@ class AddPerformanceTempateActivity : BaseActivity<PerformanceTemplateViewModel>
         return tempateInfoList
     }
 
+    fun check100() : Boolean{
+        var returnBooble = false
+        val cashDataList = viewModel.wrGoodsPerformanceStepCashDataList.value
+        var buyallstepValue = 0.0//总的买入步骤值
+        var sellallstepValue = 0.0//总的卖出步骤值
+        cashDataList?.forEach {
+            if (it.steptypeid == "1"){
+                buyallstepValue += (it.stepvalue?.toDouble() ?: 0.0)
+            }
+            if (it.steptypeid == "2"){
+                sellallstepValue += (it.stepvalue?.toDouble() ?: 0.0)
+            }
+        }
+
+        if (buyallstepValue < 100.0){
+            ToastUtils.showLong("买方支付步骤总值小于100,应等于100")
+            returnBooble = false
+        }else{
+            returnBooble = true
+        }
+
+        if (sellallstepValue < 100.0){
+            ToastUtils.showLong("卖方付款步骤总值小于100,应等于100")
+            returnBooble = false
+        }else{
+            returnBooble = true
+        }
+
+        return returnBooble
+    }
+
 
     fun check(): Boolean {
         var returnBooble = false

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

@@ -15,6 +15,7 @@ import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import mtp.polymer.com.autowidget.dialog.creatPerformanceBottomSheetDialog
 import org.jetbrains.anko.*
 import org.jetbrains.anko.sdk25.coroutines.textChangedListener
+import java.math.BigDecimal
 
 class AddPerformanceViewHolder(private val activity : AppCompatActivity,private val viewModel: PerformanceTemplateViewModel) : BaseViewHolder<WrGoodsPerformanceStepData>(activity){
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
@@ -121,6 +122,7 @@ class AddPerformanceViewHolder(private val activity : AppCompatActivity,private
                             }
                         }
                         background = null
+                        setDecimalInputType(BigDecimal("999999999.99"),0)
                         hintColorStr = "#CCCCCC"
                         textSizeAuto = 29
                         inputType = EditorInfo.TYPE_CLASS_NUMBER

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

@@ -628,7 +628,7 @@ class SpotWareHouseViewModel : BaseViewModel(){
                 newRightData.add("-"  + "\n" + "-")
             }else{
                 //期货合约/基差
-                newRightData.add(it.goodscode  + "\n" + NumberUtils.roundNum(it.pricemove,2))
+                newRightData.add(it.goodsname  + "\n" + NumberUtils.roundNum(it.pricemove,2))
             }
             //挂牌价格
             if (it?.fixedprice == "" || it.fixedprice == "0" || it.fixedprice == "0.0" || it.fixedprice == "0.00"){

+ 62 - 24
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/spotwarehouse/arecancelled/AreCancelledActivity.kt

@@ -162,9 +162,64 @@ class AreCancelledActivity : BaseActivity<AreCancelledViewModel>(){
                             }.lparams(wrapContent, wrapContent)
                         }.lparams(matchParent, autoSize(132))
 
+                         itemView()
+
+                        linearLayout {
+                            if (data.wrpricetype == "2"){
+                                visibility = View.VISIBLE
+                            }else{
+                                visibility = View.GONE
+                            }
+                            background = resources.getDrawable(R.color.white)
+                            gravity = Gravity.CENTER_VERTICAL
+                            textView {
+                                text = "基差价格"
+                                textSizeAuto = 34
+                                textColorInt = R.color.rma_zhushi_text_color
+                            }.lparams(autoSize(250), wrapContent){
+                                marginStart = autoSize(36)
+                            }
+
+                            textView {
+                                text = data.pricemove
+                                textSizeAuto = 29
+                                textColorInt = R.color.rma_black_33
+                            }.lparams(wrapContent, wrapContent)
+                        }.lparams(matchParent, autoSize(132))
+
+                         itemView()
+
+                        linearLayout {
+                            if (data.wrpricetype == "2"){
+                                visibility = View.VISIBLE
+                            }else{
+                                visibility = View.GONE
+                            }
+                            background = resources.getDrawable(R.color.white)
+                            gravity = Gravity.CENTER_VERTICAL
+                            textView {
+                                text = "期货合约"
+                                textSizeAuto = 34
+                                textColorInt = R.color.rma_zhushi_text_color
+                            }.lparams(autoSize(250), wrapContent){
+                                marginStart = autoSize(36)
+                            }
+
+                            textView {
+                                text = data.goodscode
+                                textSizeAuto = 29
+                                textColorInt = R.color.rma_black_33
+                            }.lparams(wrapContent, wrapContent)
+                        }.lparams(matchParent, autoSize(132))
+
                         itemView()
 
                         linearLayout {
+                            if (data.wrpricetype == "1"){
+                                visibility = View.VISIBLE
+                            }else{
+                                visibility = View.GONE
+                            }
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
                             textView {
@@ -183,22 +238,12 @@ class AreCancelledActivity : BaseActivity<AreCancelledViewModel>(){
 
                             emptyView()
 
-                            imageView {
-                                if (data.canbargain == "1"){
-                                    visibility = View.VISIBLE
-                                }else{
-                                    visibility = View.GONE
-                                }
-                                imageResource = R.mipmap.yrdz_delivery_select_icon
-                            }.lparams(autoSize(45), autoSize(45))
-
                             textView {
                                 if (data.canbargain == "1"){
-                                    visibility = View.VISIBLE
+                                    text = "(" + "可议价" + ")"
                                 }else{
-                                    visibility = View.GONE
+                                    text = "(" + "不可议价" + ")"
                                 }
-                                text = "可议价"
                                 textSizeAuto = 29
                                 textColorInt = R.color.rma_black_33
                             }.lparams(wrapContent, wrapContent){
@@ -220,7 +265,7 @@ class AreCancelledActivity : BaseActivity<AreCancelledViewModel>(){
                             }
 
                             textView {
-                                text = data.wrtypename
+                                text = data.ladingbillid
                                 textSizeAuto = 29
                                 textColorInt = R.color.rma_black_33
                             }.lparams(wrapContent, wrapContent)
@@ -247,21 +292,14 @@ class AreCancelledActivity : BaseActivity<AreCancelledViewModel>(){
 
                             emptyView()
 
-                            imageView {
-                                if (data.canpart == "0"){
-                                    visibility = View.VISIBLE
-                                }else{
-                                    visibility = View.GONE
-                                }
-                                imageResource = R.mipmap.yrdz_delivery_select_icon
-                            }.lparams(autoSize(45), autoSize(45))
+
                             textView {
                                 if (data.canpart == "0"){
-                                    visibility = View.VISIBLE
+                                    text = "整单"
                                 }else{
-                                    visibility = View.GONE
+                                    text = "非整单"
                                 }
-                                text = "整单"
+
                                 textSizeAuto = 29
                                 textColorInt = R.color.rma_black_33
                             }.lparams(wrapContent, wrapContent){

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

@@ -561,6 +561,9 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                             }.lparams(autoSize(250), wrapContent)
 
                             numberEditText3 {
+                                viewModel.quoteDayData.bindOptional(context){
+
+                                }
                                 basisInputEdittext = this
                                 text = "0"
                                 setOnTextChangeListener { view, value ->
@@ -1123,6 +1126,25 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                                 text = "--"
                                 listed_price.bindOptional(context) {
                                     text = NumberUtils.roundNum(it ?: 0.0, 2)
+                                    if (onePriceInputEdittext.text.toString().isNullOrEmpty()
+                                            .not() && listednumberEdittext.text.toString()
+                                            .isNullOrEmpty().not()
+                                    ) {
+                                        val delistingAmount =
+                                            it?.times(
+                                                listednumberEdittext.text.toString()
+                                                    .toDouble()
+                                            )
+                                        one_delisting_amount.text =
+                                            NumberUtils.roundNum(
+                                                delistingAmount ?: 0.0,
+                                                2
+                                            ) + "(需履约保证金" + NumberUtils.roundNum(
+                                                delistingAmount?.times(
+                                                    marginValue.value ?: 0.0
+                                                ) ?: 0.0, 2
+                                            ) + ")"
+                                    }
                                 }
                                 estimate_the_price = this
                                 textSizeAuto = 34
@@ -1548,10 +1570,7 @@ class ListedActivity : BaseActivity<ListedViewModel>() {
                 ToastUtils.showLong("请输入基差")
                 return false
             }
-            if (basisInputEdittext.text.toString() == "0" || basisInputEdittext.text.toString() == "0.0" || basisInputEdittext.text.toString() == "0.00") {
-                ToastUtils.showLong("基差不能为0")
-                return false
-            }
+
             if (listednumberEdittext.text.toString().isNullOrEmpty()) {
                 ToastUtils.showLong("请输入挂牌数量")
                 return false

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

@@ -0,0 +1,420 @@
+package cn.muchinfo.rma.view.base.home.tjmd
+
+import android.content.Intent
+import android.graphics.Rect
+import android.graphics.Typeface
+import android.net.Uri
+import android.os.Bundle
+import android.text.TextUtils
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.FrameLayout
+import android.widget.TextView
+import android.widget.ViewFlipper
+import androidx.annotation.NonNull
+import androidx.annotation.Nullable
+import androidx.cardview.widget.CardView
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentPagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.bingoogolapple.bgabanner.BGABanner
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.BannerData
+import cn.muchinfo.rma.global.data.NoticeData
+import cn.muchinfo.rma.global.toShowTime3
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.lifecycle.getAppCompatActivity
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.BaseFragment
+import cn.muchinfo.rma.view.base.WebActivity
+import cn.muchinfo.rma.view.base.app.Constant
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.hnstmain.bookingwarehouse.BookingWarehouseActivity
+import cn.muchinfo.rma.view.base.hnstmain.performance.PerformanceInformationActivity
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.home.reference.ReferenceActivity
+import cn.muchinfo.rma.view.base.home.yrdz.YrdzHomeFragment
+import cn.muchinfo.rma.view.base.home.yrdz.YrdzNoticeActivity
+import cn.muchinfo.rma.view.base.home.yrdz.market.IndexData
+import cn.muchinfo.rma.view.base.home.yrdz.market.IndexViewHolder
+import cn.muchinfo.rma.view.base.home.yrdz.market.YrdzMarketFragment
+import cn.muchinfo.rma.view.eventbus.MainTabSelectMessageEvent
+import com.blankj.utilcode.util.*
+import com.facebook.drawee.view.SimpleDraweeView
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import mtp.polymer.com.information_management.hnstocks.message.MessageDetailsActivity
+import org.greenrobot.eventbus.EventBus
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.UI
+import org.jetbrains.anko.support.v4.viewPager
+
+/**
+ * 天津麦顿首页
+ */
+class TjmdHomeFragment : BaseFragment<TjmdHomeViewModel>(){
+
+
+    companion object {
+        fun newInstance() = YrdzHomeFragment()
+    }
+
+    // 下拉刷新
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    lateinit var segment: QMUITabSegment
+    lateinit var segment1: QMUITabSegment
+    var selectedTabIndex: Int = 0
+    private lateinit var viewPager: ViewPager
+
+    lateinit var noticeViewFlipper : ViewFlipper
+
+    private fun initViewFlipper(notice: List<NoticeData>) {
+        for (i in 0 until notice.size) {
+            val view = TextView(context)
+            val params = FrameLayout.LayoutParams(
+                ViewGroup.LayoutParams.WRAP_CONTENT,
+                ViewGroup.LayoutParams.WRAP_CONTENT
+            )
+            params.gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+            view.layoutParams = params
+            view.text = notice[i].title
+            view.maxLines = 1
+            view.ellipsize = TextUtils.TruncateAt.END
+            view.setTextColor(context?.resources?.getColor(R.color.rma_black_33)!!)
+            view.textSize = 12f
+            view.setOnClickListener(View.OnClickListener {
+                val intent = Intent()
+                intent.putExtra("data",notice.get(i))
+                intent.setClass(context!!, MessageDetailsActivity::class.java)
+                ActivityUtils.startActivity(intent)
+            })
+            noticeViewFlipper.addView(view)
+        }
+        //是否自动开始滚动
+        noticeViewFlipper.isAutoStart = true
+        //滚动时间
+        noticeViewFlipper.flipInterval = 3000
+        //开始滚动
+        noticeViewFlipper.startFlipping()
+        //出入动画
+        noticeViewFlipper.setOutAnimation(context, R.anim.slide_out_right)
+        noticeViewFlipper.setInAnimation(context, R.anim.slide_in_left)
+    }
+
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        return UI {
+            viewModel.getBanner()
+            viewModel.setDataList()
+            viewModel.queryNotice()
+            verticalLayout {
+                linearLayout {
+                    background = resources.getDrawable(R.color.main_title_bg_color)
+                    verticalLayout {
+                        gravity = Gravity.CENTER
+                        textView {
+                            text = "麦顿"
+                            textColorInt = R.color.white
+                            textSizeAuto = 36
+                        }.lparams(wrapContent, wrapContent) {
+                            gravity = Gravity.CENTER_HORIZONTAL
+                        }
+
+                    }.lparams(autoSize(620), autoSize(90)) {
+                        marginStart = autoSize(140)
+                    }
+
+                    imageView {
+                        onThrottleFirstClick {
+                            val intent = Intent()
+                            intent.setClass(context, YrdzNoticeActivity::class.java)
+                            ActivityUtils.startActivity(intent)
+                        }
+                        imageResource = R.mipmap.yrdz_topright_icon
+                    }.lparams(autoSize(45), autoSize(45)) {
+                        marginStart = autoSize(32)
+                        topMargin = autoSize(20)
+                    }
+
+                }.lparams(matchParent, autoSize(120))
+
+                relativeLayout {
+                    nestedScrollView{
+                        setOnScrollChangeListener(object : View.OnScrollChangeListener {
+                            override fun onScrollChange(
+                                p0: View?,
+                                p1: Int,
+                                p2: Int,
+                                p3: Int,
+                                p4: Int
+                            ) {
+                                val scrollRect = Rect()
+                                getHitRect(scrollRect)
+                                LogUtils.eTag("adakhsfkjahsfa", "x = " + p1 + "y = " + p2)
+                                if (p2 > 1000) {
+                                    segment1.visibility = View.VISIBLE
+                                } else {
+                                    segment1.visibility = View.INVISIBLE
+                                }
+                            }
+                        })
+                        verticalLayout {
+                            background = resources.getDrawable(R.color.white)
+                            inflateLayout<BGABanner>(R.layout.banner) {
+                                // TODO 目前没有banner
+                                viewModel.bannerList.bindOptional(context) {
+                                    setData(
+                                        R.layout.item_fresco,
+                                        it,
+                                        null
+                                    )
+                                }
+                                setDelegate { banner, itemView, model, position ->
+                                    val data = model as BannerData
+                                    val intent = Intent()
+                                    intent.putExtra("url",data.url)
+                                    intent.putExtra("title",data.title)
+                                    intent.setClass(context, WebActivity::class.java)
+                                    ActivityUtils.startActivity(intent)
+                                }
+//                                setDelegate(new BGABanner.Delegate() {
+//                                    @Override
+//                                    public void onBannerItemClick(BGABanner banner, View itemView, @Nullable Object model, int position) {
+//
+//                                    }
+//                                });
+
+
+                                setAdapter(object : BGABanner.Adapter<CardView, BannerData> {
+                                    override fun fillBannerItem(
+                                        banner: BGABanner?,
+                                        itemView: CardView?,
+                                        model: BannerData?,
+                                        position: Int
+                                    ) {
+                                        val simpleDraweeView: SimpleDraweeView =
+                                            itemView!!.findViewById(R.id.sdv_item_fresco_content)
+                                        simpleDraweeView.setImageURI(
+                                            Uri.parse(
+                                                SPUtils.getInstance().getString(
+                                                    Constant.openApiUrl) + model?.imagepath?.substring(1)))
+                                    }
+                                })
+
+                            }.lparams(matchParent, autoSize(400))
+
+                            itemView()
+
+                            linearLayout {
+                                gravity = Gravity.CENTER_VERTICAL
+                                imageView {
+                                    imageResource = R.mipmap.yrdz_nctice_icon
+                                }.lparams(autoSize(36), autoSize(36)){
+                                    marginStart = autoSize(36)
+                                }
+
+                                viewFlipper {
+                                    noticeViewFlipper = this
+                                    viewModel.noticeDataList.bindOptional(context){
+                                        initViewFlipper(it ?: arrayListOf())
+                                    }
+                                }.lparams(matchParent, autoSize(72)){
+                                    marginStart = autoSize(36)
+                                }
+
+                            }.lparams(matchParent, autoSize(72))
+
+                            itemView()
+
+                            linearLayout {
+                                //参考行情
+                                relativeLayout {
+                                    verticalLayout {
+                                        onThrottleFirstClick {
+                                            val intent = Intent()
+                                            intent.setClass(
+                                                context,
+                                                ReferenceActivity::class.java
+                                            )
+                                            ActivityUtils.startActivity(intent)
+                                        }
+                                        imageView {
+                                            imageResource = R.mipmap.yrdz_reference_prices
+                                        }.lparams(autoSize(72), autoSize(72)) {
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+
+                                        textView {
+                                            text = "参考行情"
+                                            textColorInt = R.color.black
+                                            textSizeAuto = 26
+                                        }.lparams(wrapContent, wrapContent) {
+                                            topMargin = autoSize(20)
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+                                    }.lparams(matchParent, matchParent)
+
+                                    textView {
+                                        visibility = View.GONE
+                                        textColorInt = R.color.p_global_write_color
+                                        textSizeAuto = 15
+                                        setPadding(
+                                            autoSize(10),
+                                            autoSize(6),
+                                            autoSize(10),
+                                            autoSize(6)
+                                        )
+                                        backgroundDrawable =
+                                            createRoundRectDrawable("#fe671a", 45)
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(130)
+                                    }
+                                }.lparams(autoSize(225), matchParent)
+
+                                relativeLayout {
+                                    verticalLayout {
+                                        onThrottleFirstClick {
+                                            EventBus.getDefault().post(MainTabSelectMessageEvent(1))// 黄老板说的要跳去仓单贸易
+                                        }
+                                        imageView {
+                                            imageResource = R.mipmap.yrdz_home_wymh_icon
+                                        }.lparams(autoSize(72), autoSize(72)) {
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+
+                                        textView {
+                                            text = "我要买货"
+                                            textColorInt = R.color.black
+                                            textSizeAuto = 26
+                                        }.lparams(wrapContent, wrapContent) {
+                                            topMargin = autoSize(20)
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+                                    }.lparams(matchParent, matchParent)
+
+                                    textView {
+                                        visibility = View.GONE
+                                        textColorInt = R.color.p_global_write_color
+                                        textSizeAuto = 15
+                                        setPadding(
+                                            autoSize(10),
+                                            autoSize(6),
+                                            autoSize(10),
+                                            autoSize(6)
+                                        )
+                                        backgroundDrawable =
+                                            createRoundRectDrawable("#fe671a", 45)
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(130)
+                                    }
+                                }.lparams(autoSize(225), matchParent)
+
+                                relativeLayout {
+                                    verticalLayout {
+                                        onThrottleFirstClick {
+                                            val intent = Intent()
+                                            intent.setClass(
+                                                context,
+                                                BookingWarehouseActivity::class.java
+                                            )
+                                            ActivityUtils.startActivity(intent)
+                                        }
+                                        imageView {
+                                            imageResource = R.mipmap.yrdz_home_wyys_icon
+                                        }.lparams(autoSize(72), autoSize(72)) {
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+
+                                        textView {
+                                            text = "我要预售"
+                                            textColorInt = R.color.black
+                                            textSizeAuto = 26
+                                        }.lparams(wrapContent, wrapContent) {
+                                            topMargin = autoSize(20)
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+                                    }.lparams(matchParent, matchParent)
+
+                                    textView {
+                                        visibility = View.GONE
+                                        textColorInt = R.color.p_global_write_color
+                                        textSizeAuto = 15
+                                        setPadding(
+                                            autoSize(10),
+                                            autoSize(6),
+                                            autoSize(10),
+                                            autoSize(6)
+                                        )
+                                        backgroundDrawable =
+                                            createRoundRectDrawable("#fe671a", 45)
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(130)
+                                    }
+                                }.lparams(autoSize(225), matchParent)
+
+                                relativeLayout {
+                                    verticalLayout {
+                                        onThrottleFirstClick {
+                                            val intent = Intent()
+                                            intent.setClass(
+                                                context,
+                                                PerformanceInformationActivity::class.java
+                                            )
+                                            ActivityUtils.startActivity(intent)
+                                        }
+                                        imageView {
+                                            imageResource = R.mipmap.main_business_5
+                                        }.lparams(autoSize(72), autoSize(72)) {
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+
+                                        textView {
+                                            text = "履约管理"
+                                            textColorInt = R.color.black
+                                            textSizeAuto = 26
+                                        }.lparams(wrapContent, wrapContent) {
+                                            topMargin = autoSize(20)
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+                                    }.lparams(matchParent, matchParent)
+
+                                    textView {
+                                        visibility = View.GONE
+                                        textColorInt = R.color.p_global_write_color
+                                        textSizeAuto = 15
+                                        setPadding(
+                                            autoSize(10),
+                                            autoSize(6),
+                                            autoSize(10),
+                                            autoSize(6)
+                                        )
+                                        backgroundDrawable =
+                                            createRoundRectDrawable("#fe671a", 45)
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(130)
+                                    }
+                                }.lparams(autoSize(225), matchParent)
+
+                            }.lparams(matchParent, autoSize(140)) {
+                                topMargin = autoSize(40)
+                            }
+                        }
+                    }.lparams(matchParent, matchParent)
+
+                }
+            }
+        }.view
+    }
+
+
+}

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

@@ -0,0 +1,107 @@
+package cn.muchinfo.rma.view.base.home.tjmd
+
+import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.BannerData
+import cn.muchinfo.rma.global.data.NoticeData
+import cn.muchinfo.rma.netManage.base.ResponseCallback
+import cn.muchinfo.rma.netManage.utils.MyOkHttpUtils
+import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.autoWidget.remove
+import cn.muchinfo.rma.view.base.BaseViewModel
+import cn.muchinfo.rma.view.base.app.BaseResult
+import cn.muchinfo.rma.view.base.app.Constant
+import cn.muchinfo.rma.view.base.home.yrdz.market.IndexData
+import com.blankj.utilcode.util.LogUtils
+import com.blankj.utilcode.util.SPUtils
+import mtp.polymer.com.autowidget.utils.TaskUiModel
+import okhttp3.Call
+import java.lang.Exception
+
+/**
+ * 天津麦顿首页viewmodel
+ */
+class TjmdHomeViewModel : BaseViewModel(){
+    /**
+     * 加载状态控制
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
+
+    val bannerList : MutableLiveData<List<BannerData>> = MutableLiveData()
+
+    //数据
+    val dataList : MutableLiveData<List<IndexData>> = MutableLiveData()
+
+    /**
+     * 公告信息
+     */
+    val noticeDataList : MutableLiveData<List<NoticeData>> = MutableLiveData()
+
+    fun setDataList(){
+        val list = arrayListOf(
+            IndexData(name = "ABS",firstNumber = 18234.0,secondNumber = 18673.0),
+            IndexData(name = "PA6",firstNumber = 17134.0,secondNumber = 16993.0),
+            IndexData(name = "PA67",firstNumber = 18312.0,secondNumber = 18893.0),
+            IndexData(name = "PC",firstNumber = 19782.0,secondNumber = 17293.0),
+            IndexData(name = "PE",firstNumber = 16128.0,secondNumber = 16993.0),
+            IndexData(name = "PVC",firstNumber = 15123.0,secondNumber = 15193.0)
+        )
+
+        dataList.postValue(list)
+    }
+
+
+
+    /**
+     * 通知公告查询
+     */
+    fun queryNotice(){
+//        noticeDataList.postValue(arrayListOf(NoticeData(autoid = "1",title = "djahskdhakjshkahskjhakjsdhakjdshkjashdkjahdskjahsdjkad"),
+//            NoticeData(autoid = "2",title = "贺卡活动空间啊会死的恐惧啊会死的恐惧啊会死的恐惧啊还得看撒"),
+//            NoticeData(autoid = "3",title = "打卡是否看来佛 i 啊UFO i 啊 u 上帝啊 u 都 i 啊 u 山东 iu 阿斯哦独傲"),
+//            NoticeData(autoid = "4",title = "打卡大课间活动空间啊会多少空间啊会的恐惧啊会死肯德基哈开机速度和空间啊会的")))
+        val params = mutableMapOf<String, String>().apply {
+            put("loginID", GlobalDataCollection.instance?.loginRsp?.loginID.toString())
+            put("msgType","1")
+        }
+
+        MyApplication.getInstance()?.commonManager?.queryNotice(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                noticeDataList.postValue(respData)
+            }
+        }
+    }
+
+
+    /**
+     * 在请求之前先获取数据库存储的banner信息
+     */
+    fun getBanner(){
+        val params = mutableMapOf<String,String>()
+        params.put("imageType","1")
+        MyOkHttpUtils().query(URL = SPUtils.getInstance().getString(Constant.goCommonSearchUrl) + "/Common/QueryImageConfigs",
+            callback = object : ResponseCallback<BaseResult<List<BannerData>>>() {
+                override fun onResponse(response: BaseResult<List<BannerData>>?, id: Int) {
+                    getBannerUrlList(response?.data ?: arrayListOf())
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    LogUtils.eTag("asdasdadasa",e?.message)
+                }
+
+            },params = params,type = "1")
+    }
+
+    /**
+     * @param datalist List<BannerEntity>
+     */
+    fun getBannerUrlList(datalist : List<BannerData>){
+        val bannerUrlList = arrayListOf<String>()
+        datalist.forEach {
+            bannerUrlList.add(SPUtils.getInstance().getString(Constant.openApiUrl) + it.imagepath.substring(1))
+        }
+        bannerList.postValue(datalist.remove {
+            it.isshow == "0"
+        })
+    }
+}

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

@@ -207,6 +207,8 @@ class WarehouseReceiptFragment : BaseFragment<WarehouseReceiptViewModel>(){
                             intent.setClass(context, TradeCircleListedingActivity::class.java)
                             ActivityUtils.startActivity(intent)
                         }
+
+                        viewModel.resetSelectContent()
                     }
                 }
                 linearLayout {

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

@@ -192,8 +192,8 @@ class WarehouseReceiptViewModel : BaseViewModel(){
         val newList = arrayListOf<OrderQuoteMyqData>()
         respData.forEach {
             val newRightData = arrayListOf<String>()
-            //履约方式
-            newRightData.add(it.templatename?.isBlankString() ?: "-")
+            //挂牌方
+            newRightData.add(it.userid + it.username ?: "-")
             //价格
             newRightData.add(it.fixedprice ?: "-")
             //数量
@@ -206,10 +206,10 @@ class WarehouseReceiptViewModel : BaseViewModel(){
             newRightData.add(it.validtime?.toShowTime3() ?: "-")
             //履约保证金
             newRightData.add(it.marginvalue?.toPercentage() ?: "-")
+            //履约方式
+            newRightData.add(it.templatename?.isBlankString() ?: "-")
             //仓库
             newRightData.add(it.warehousename ?: "-")
-            //挂牌方
-            newRightData.add(it.username ?: "-")
             val newData = it.copy(rightData = newRightData)
             newList.add(newData)
         }

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

@@ -874,7 +874,6 @@ class FloatBuyListedUI(
 
                         textView {
                             maxlistedNumber.bindOptional(context){
-                                oneNumberInputEdittext.text = NumberUtils.roundNum(it?.times(seekBar.progress.div(100.0)).toString(),0)
                                 text = it.toString() +data.WrFtWrstandard?.enumdicname
                             }
                             textSizeAuto = 29

+ 2 - 64
RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/tradecircle/TradeCircleListedBuyUI.kt

@@ -321,71 +321,9 @@ class TradeCircleListedBuyUI(
                         }.lparams(wrapContent, autoSize(143))
                     }.lparams(matchParent, autoSize(143))
 
-                    inflateLayout<SeekBar>(R.layout.main_seekbar) {
-                        min = 10
-                        max = 100
-                        isIndeterminate = false
-                        splitTrack = false
-                        setPadding(autoSize(30), 0, autoSize(30), 0)
-                        thumb = resources.getDrawable(R.mipmap.hnst_seekbar)
-                        progressDrawable = resources.getDrawable(R.drawable.seekbar_bg)
-                        setOnSeekBarChangeListener(object :
-                            SeekBar.OnSeekBarChangeListener {
-                            override fun onProgressChanged(
-                                p0: SeekBar?,
-                                p1: Int,
-                                p2: Boolean
-                            ) {
-                                if (hasType == "1") {
-                                    listednumberEdittext.text = NumberUtils.roundNum(
-                                        data.orderqty?.toDouble()?.times(p1.div(100.0))
-                                            ?.toString(), 0
-                                    )
-                                }
-
-                            }
-
-                            override fun onStartTrackingTouch(p0: SeekBar?) {
-
-                            }
-
-                            override fun onStopTrackingTouch(p0: SeekBar?) {
-
-                            }
-                        })
-                    }.lparams(matchParent, autoSize(46)) {
-                        marginEnd = autoSize(110)
-                        topMargin = autoSize(20)
-                    }
 
-                    linearLayout {
-                        textView {
-                            text = "0"
-                            textSizeAuto = 29
-                            textColorInt = R.color.rma_gray_color
-                        }.lparams(wrapContent, wrapContent)
-
-                        emptyView()
-
-                        textView {
-                            maxlistedNumber.bindOptional(context){
-                                if (hasType == "1") {
-                                    text = it?.toString() + data.enumdicname
-                                } else {
-                                    text = it?.toString() + listedData.WrFtWrstandard?.enumdicname
-                                }
-                            }
-
-                            textSizeAuto = 29
-                            textColorInt = R.color.rma_gray_color
-                        }.lparams(wrapContent, wrapContent)
-                    }.lparams(matchParent, wrapContent) {
-                        marginEnd = autoSize(110)
-                        topMargin = autoSize(10)
-                    }
-
-                }.lparams(matchParent, autoSize(290))
-            }.lparams(matchParent, autoSize(290))
+                }.lparams(matchParent, autoSize(143))
+            }.lparams(matchParent, autoSize(143))
 
             itemView()
 

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

@@ -177,6 +177,12 @@ class TradeCircleListedingActivity : BaseActivity<TradeCircleListedingViewModel>
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         verticalLayout {
+            if (hasType == "1"){
+                viewModel.queryWrGoodsInfo(wrfactortypeid = data.wrfactortypeid ?: "",haswr = modelType ?: "")
+            }else{
+                viewModel.getWrGoodsInfo(data = listedData)
+            }
+
             createLoadingDialog(hintStr = "").bindTaskStatus(context, viewModel.loadingDialogStatus)
             background = resources.getDrawable(R.color.white)
             setMarginValue()
@@ -275,7 +281,7 @@ class TradeCircleListedingActivity : BaseActivity<TradeCircleListedingViewModel>
                         }.lparams(matchParent, autoSize(2000))
 
                         segment.setupWithViewPager(viewPager)
-                        segment.selectTab(0)
+                        segment.selectTab(1)
                     }
                 }
 

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

@@ -7,6 +7,7 @@ import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.base.BaseViewModel
+import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
 import cn.muchinfo.rma.view.eventbus.EventConstent
 import com.desfate.chart.ui.old.OTC.listener.MessageEvent
 import kotlinx.coroutines.GlobalScope
@@ -107,11 +108,32 @@ class TradeCircleListedingViewModel : BaseViewModel(){
         }
     }
 
+    //无仓单记录时自己组装仓单要素信息
+    fun getWrGoodsInfo(data : ListedData){
+
+        val lstitemList = arrayListOf<lstitem>()
+        data.FactoryItemsList?.forEach {
+            val lstitemData = lstitem()
+            lstitemData.name = it.itemtypename
+            it?.itemlst?.forEach { data ->
+                if (data.isSelect == 1){
+                    lstitemData.value = data.dgfactoryitemvalue
+                }
+            }
+            lstitemList.add(lstitemData)
+        }
+        wrGoodsInfoData.postValue(WrGoodsInfoData(lstitem = lstitemList))
+    }
+
 
     //查询仓单买大厅数据详情
     fun queryWrGoodsInfo(wrfactortypeid: String,haswr : String){
         val params = mutableMapOf<String,String>().apply {
-            put("haswr",haswr)
+            if (haswr == "1"){
+                put("haswr","1")
+            }else{
+                put("haswr","0")
+            }
             put("wrfactortypeid",wrfactortypeid)
         }
         MyApplication.getInstance()?.warehouseManager?.queryWrGoodsInfo(params = params){ isSuccess, respData, error ->

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

@@ -108,7 +108,7 @@ class SwapsBusinessBuyHallViewHolder(private val activity : AppCompatActivity, p
                             intent.putExtra("data",data.value)
                             intent.putExtra("goodsId",data.value?.goodsid)
                             intent.putExtra("goodsCode",goodsCode)
-                            intent.putExtra("type","0")
+                            intent.putExtra("type","2")
                             intent.putExtra("quoteGoodsListData",quoteGoodsListData)
                             intent.setClass(context, SwapsDelistingActivity::class.java)
                             ActivityUtils.startActivity(intent)

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

@@ -18,6 +18,7 @@ import cn.muchinfo.rma.global.data.TjmdTradeOrderDetailData
 import cn.muchinfo.rma.global.data.WrTradeOrderDetailData
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.global.database.DataBase
+import cn.muchinfo.rma.global.utils.VIewUtils
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI2
 import cn.muchinfo.rma.view.autoWidget.*
@@ -28,6 +29,7 @@ import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
 import com.blankj.utilcode.util.ToastUtils
+import kotlinx.android.synthetic.main.list_head.view.*
 import mtp.polymer.com.autowidget.dialog.creatAccountDataSheetDialog
 import mtp.polymer.com.autowidget.dialog.createLoadingDialog
 import mtp.polymer.com.autowidget.utils.bindTaskStatus
@@ -61,10 +63,12 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
         "SwapsDelistingActivity"
     }
 
-
     /** 摘牌数量 **/
     lateinit var onePriceInputNumberEdittext: MangeNumberEditText2
 
+    /** 挂牌单为浮动价,且选择买入价格方式为限价时的价格输入框 **/
+    lateinit var limit_price_edittext : MangeNumberEditText2
+
     /** SeekBar **/
     lateinit var one_seekbar: SeekBar
 
@@ -77,8 +81,8 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
     /** 是否选择限价 **/
     lateinit var limit_price_checkbox : CheckBox
 
-    /** 挂牌价格类型为浮动价是输入的买入价格 **/
-    lateinit var buy_price_input : MangeNumberEditText2
+    /** 若挂牌单为浮动价时,可以选择为市价或者限价挂单 **/
+    val priceType : MutableLiveData<Int> = MutableLiveData()
 
     /** 对页面数据进行初始化 **/
     fun initializeData(){
@@ -89,6 +93,16 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
         }else{
             viewModel.maxDelistedingNumber.postValue(data.orderqty)//摘买时直接取值挂牌数量
         }
+        if (data.pricemode == "3"){
+            priceType.postValue(1)
+        }else if (data.pricemode == "2"){
+            priceType.postValue(2)//挂牌单为固定价是,摘牌类型只能为限价
+        }
+        viewModel.queryQuoteDay(
+            tag = thisTag,
+            goodsCodes = quoteGoodsListData.refgoodscode ?: "",
+            isShowLoading = false
+        )
     }
 
     @SuppressLint("SetTextI18n")
@@ -190,7 +204,11 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                 }.lparams(autoSize(250), wrapContent)
 
                 textView {
-                    text = "浮动价"
+                    if (data.pricemode == "3"){
+                        text = "浮动价"
+                    }else if (data.pricemode == "2"){
+                        text = "固定价"
+                    }
                     textSizeAuto = 34
                     textColorInt = R.color.rma_black_33
                 }.lparams(wrapContent, wrapContent)
@@ -199,6 +217,11 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
             itemView()
 
             verticalLayout {
+                if (data.pricemode == "3"){//挂牌单为浮动价时才显示价格选择
+                    visibility = View.VISIBLE
+                }else if (data.pricemode == "2"){//固定价时不显示买入价格选择
+                    visibility = View.GONE
+                }
                 background = resources.getDrawable(R.color.white)
                 linearLayout {
                     gravity = Gravity.CENTER_VERTICAL
@@ -213,11 +236,13 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                     }.lparams(autoSize(250), wrapContent)
 
                     checkBox {
+                        isChecked = true
                         market_price_checkbox = this
                         buttonDrawable = null
                         background = resources.getDrawable(R.drawable.yrdz_check_select_backgrond)
                         setOnCheckedChangeListener { compoundButton, b ->
                             if (b){
+                                priceType.postValue(1)//设置为市价
                                 limit_price_checkbox.isChecked = false
                             }
                         }
@@ -236,6 +261,7 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                         background = resources.getDrawable(R.drawable.yrdz_check_select_backgrond)
                         setOnCheckedChangeListener { compoundButton, b ->
                             if (b){
+                                priceType.postValue(1)//设置为限价
                                 market_price_checkbox.isChecked = false
                             }
                         }
@@ -252,15 +278,25 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                 }.lparams(matchParent, autoSize(143))
 
                 linearLayout {
+                    visibility = View.GONE
+                    priceType.bindOptional(context){
+                        if (it == 2){
+                            visibility = View.VISIBLE
+                        }else{
+                            visibility = View.GONE
+                        }
+                    }
                     view {
 
                     }.lparams(autoSize(250), autoSize(143))
 
                     numberEditText {
-                        text = "1"
-                        buy_price_input = this
+                        viewModel.quoteDayData.bindOptional(context){
+                            text = NumberUtils.roundNum(it?.getPrice() ?: 0.0,2)
+                        }
+                        limit_price_edittext = this
                         setOnTextChangeListener { view, value ->
-
+                            viewModel.quoteDayData.postValue(viewModel.quoteDayData.value)//对盘面数据进行重新赋值以驱动估算价格的计算
                         }
                     }.lparams(0, autoSize(72), 1f) {
                         marginEnd = autoSize(36)
@@ -270,6 +306,11 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
 
             // 价格为固定价时就为挂牌价格
             linearLayout {
+                if (data.pricemode == "3"){//挂牌单为浮动价时不显示挂牌价格
+                    visibility = View.GONE
+                }else if (data.pricemode == "2"){//固定价时显示挂牌价格
+                    visibility = View.VISIBLE
+                }
                 background = resources.getDrawable(R.color.white)
                 gravity = Gravity.CENTER_VERTICAL
                 linearLayout {
@@ -314,6 +355,11 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
             itemView()
 
             linearLayout {
+                if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype == 2){//登录用户为掉期交易商时只能整单摘
+                    visibility = View.GONE
+                }else{//登录用户为普通交易商时摘牌时能修改摘牌数量
+                    visibility = View.VISIBLE
+                }
                 background = resources.getDrawable(R.color.white)
                 verticalLayout {
                     textView {
@@ -335,10 +381,9 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                             onePriceInputNumberEdittext = this
                             setOnTextChangeListener { view, value ->
                                 if (value.isNullOrEmpty().not()) {
-                                    one_delisting_amount.text = NumberUtils.roundNum(value?.toString()?.toDouble()?.times(data.orderprice?.toDouble() ?: 1.0)?.times(viewModel.goodsInfo.value?.agreeunit ?: 1)?.toString(),2)
+                                    viewModel.quoteDayData.postValue(viewModel.quoteDayData.value)//对盘面数据进行重新赋值以驱动估算价格的计算
                                 }
                             }
-
                         }.lparams(0, autoSize(72), 1f) {
                             marginEnd = autoSize(36)
                         }
@@ -414,7 +459,11 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                 background = resources.getDrawable(R.color.white)
                 gravity = Gravity.CENTER_VERTICAL
                 textView {
-                    text = "摘牌金额"
+                    if (data.pricemode == "3"){
+                        text = "估算金额"
+                    }else if (data.pricemode == "2"){
+                        text = "摘牌金额"
+                    }
                     textSizeAuto = 34
                     textColorInt = R.color.rma_hint_text_color_ccc
                 }.lparams(autoSize(214), wrapContent) {
@@ -422,8 +471,30 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                 }
 
                 textView {
+                    if (data.pricemode == "2"){//挂牌单据为固定价时
+                        text = NumberUtils.roundNum(data.orderprice?.toDouble()?.times(data.orderqty?.toDouble() ?: 0.0) ?: 0.0,2)
+                    }
+                    viewModel.quoteDayData.bindOptional(context){
+                        if (data.pricemode == "3"){//挂牌单据为浮动价时,才会有估算金额,并且选择为市价时根据行情变动,选择为限价时根据输入的限价价格变动
+                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
+                                text = "--"
+                            }else{
+                                val numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                                if (priceType.value == 1){//市价计算
+                                    text = NumberUtils.roundNum(it?.getPrice()?.times(numberInput) ?: 0.0,2)
+                                }else{//限价计算
+                                    if (limit_price_edittext.text.toString().isNullOrEmpty()){
+                                        text = "--"
+                                    }else{
+                                        val limit_price = limit_price_edittext.text.toString().toDouble()
+                                        text = NumberUtils.roundNum(limit_price.times(numberInput),2)
+                                    }
+                                }
+                            }
+
+                        }
+                    }
                     one_delisting_amount = this
-                    text = "--"
                     textSizeAuto = 29
                     textColorInt = R.color.rma_black_33
                 }.lparams(wrapContent, wrapContent)
@@ -447,20 +518,42 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                 gravity = Gravity.CENTER_VERTICAL
                 textView {
                     onThrottleFirstClick {
-                        if (onePriceInputNumberEdittext.text.toString()
-                                .isNullOrEmpty() || onePriceInputNumberEdittext.text.toString()
-                                .toDouble() == 0.0
-                        ) {
-                            ToastUtils.showLong("请输入摘牌数量")
-                            return@onThrottleFirstClick
+                        var delistNumber = ""
+                        var delistPrice = ""
+                        if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype == 2){//掉期交易商只能整单摘
+                            delistNumber = data.orderqty ?: "0"
+                        }else{//普通交易商可以修改数量摘
+                            if (onePriceInputNumberEdittext.text.toString()
+                                    .isNullOrEmpty() || onePriceInputNumberEdittext.text.toString()
+                                    .toDouble() == 0.0
+                            ) {
+                                ToastUtils.showLong("请输入摘牌数量")
+                                return@onThrottleFirstClick
+                            }
+                            delistNumber = onePriceInputNumberEdittext.text.toString()
+                        }
+
+                        if (data.pricemode == "2"){
+                            delistPrice = data.orderprice ?: "0"
+                        }else if (data.pricemode == "3"){
+                            if (priceType.value == 1){//市价
+                                delistPrice = viewModel.quoteDayData.value?.getPrice().toString()
+                            }else{//限价
+                                if (limit_price_edittext.text.toString().isNullOrEmpty()){
+                                    ToastUtils.showLong("请输入摘牌金额")
+                                    return@onThrottleFirstClick
+                                }
+                                delistPrice = limit_price_edittext.text.toString()
+                            }
                         }
 
                         viewModel.commit(
+                            pricetype = priceType.value ?: 1,
                             relatedID = data.orderid ?: "",
                             goodsInfo = viewModel.goodsInfo.value ?: GoodsInfo(),
                             isListed = false,
-                            orderPrice = data.orderprice ?: "1",
-                            qty = onePriceInputNumberEdittext.text.toString(),
+                            orderPrice = delistPrice,
+                            qty = delistNumber,
                             type = type ?: "",
                             accountId = selectAccountData.value?.accountid ?: 0
                         ){

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

@@ -6,10 +6,12 @@ import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.MTPEnums
 import cn.muchinfo.rma.global.data.AccountData
 import cn.muchinfo.rma.global.data.ContractTradePositionData
+import cn.muchinfo.rma.global.data.QuoteDayData
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.base.BaseViewModel
+import com.blankj.utilcode.util.LogUtils
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
 import mtp.polymer.com.autowidget.utils.TaskUiModel
@@ -45,6 +47,11 @@ class SwapsDelistingViewModel : BaseViewModel(){
     val maxDelistedingNumber : MutableLiveData<String> = MutableLiveData()
 
     /**
+     * 交易页面的当前商品的盘面信息
+     */
+    val quoteDayData: MutableLiveData<QuoteDayData> = MutableLiveData()
+
+    /**
      * 查询当前选择资金账号的持仓汇总单据
      * @param accountid String 当前资金账号
      * @param goodsId String 当前页面的goodsid
@@ -98,7 +105,7 @@ class SwapsDelistingViewModel : BaseViewModel(){
      * isListed 是否是挂牌
      */
     fun commit(
-        pricetype : Int = 0,
+        pricetype : Int = 0,// 1 是市价 2是限价
         relatedID : String,
         goodsInfo: GoodsInfo,
         isListed: Boolean = true,
@@ -115,7 +122,7 @@ class SwapsDelistingViewModel : BaseViewModel(){
             orderData.buildType = MTPEnums.BUILDTYPE_OPEN// 建仓
             orderData.buyOrSell = MTPEnums.DIRECTION_BUY// 买入
         } else {
-            orderData.buildType = MTPEnums.BUILDTYPE_CLOSE// 平
+            orderData.buildType = MTPEnums.BUILDTYPE_OPEN// 建
             orderData.buyOrSell = MTPEnums.DIRECTION_SALE// 卖出
         }
         orderData.goodsID = goodsInfo.goodsid
@@ -128,7 +135,12 @@ class SwapsDelistingViewModel : BaseViewModel(){
         orderData.orderPrice = orderPrice.toDouble()//价格
         orderData.orderQty = qty.toLong()//数量
         orderData.orderSrc = MTPEnums.ORDERSRC_CLIENT// 来自客户端
-        orderData.priceMode = MTPEnums.PRICEMODE_LIMIT// 限价
+        if (pricetype == 1){
+            orderData.priceMode = MTPEnums.PRICEMODE_MARKET// 市价
+        }else{
+            orderData.priceMode = MTPEnums.PRICEMODE_LIMIT// 限价
+        }
+
         orderData.timevalidType = MTPEnums.TC_IOC//当日有效  1为当日有效 2为本周有效 3为指定日期有效 4为一直有效 5为指定时间有效
         orderData.validType = MTPEnums.VALIDTYPE_DR//当日有效
         orderData.delistingType = MTPEnums.DELISTINGTYPE_SELECTED//点选成交
@@ -163,4 +175,75 @@ class SwapsDelistingViewModel : BaseViewModel(){
     }
 
 
+    /**
+     * 请求盘面信息
+     * @param first Int
+     * @param last Int
+     * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryQuoteDay(
+        tag: String,
+        goodsCodes: String,
+        isShowLoading: Boolean
+    ) {
+        if (isShowLoading) {
+            loadingDialogStatus.postValue(TaskUiModel.inFlight())
+        }
+
+        val params = mutableMapOf<String, String>().apply {
+            put("goodsCodes", goodsCodes)
+        }
+        MyApplication.getInstance()?.futureManager?.queryQuoteDay(params = params) { isSuccess, respData, error ->
+            if (isSuccess) {
+                if (respData?.isEmpty()?.not() == true) {
+                    quoteDayData.postValue(respData[0])
+                }
+                if (isShowLoading) {
+                    loadingDialogStatus.postValue(TaskUiModel.success(msg = "数据请求成功"))
+                }
+
+            } else {
+                if (isShowLoading) {
+                    loadingDialogStatus.postValue(
+                        TaskUiModel.failed(
+                            InteractiveException(
+                                errorMessage = "数据请求失败"
+                            )
+                        )
+                    )
+                }
+            }
+        }
+        addSubscriptQuote(tag = tag, goodsCodes = setOf(goodsCodes))
+    }
+
+
+    /**
+     * 订阅行情
+     * @param tag String
+     * @param goodsInfoList List<GoodsInfo>
+     */
+    fun addSubscriptQuote(tag: String, goodsCodes: Set<String>) {
+        GlobalScope.launch {
+            MyApplication.getInstance()?.quoteManager?.addSubscriptQuote(
+                tag = tag, goodsCodeSet = goodsCodes
+            ) { isCompleted, err ->
+                LogUtils.eTag("dingyuehangqing", goodsCodes)
+            }
+        }
+    }
+
+    /**
+     * 取消订阅
+     * @param tag String
+     */
+    fun removeSubscriptQuote(tag: String) {
+        GlobalScope.launch {
+            MyApplication.getInstance()?.quoteManager?.removeSubscriptQuote(
+                tag = tag
+            )
+        }
+    }
+
+
 }

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

@@ -112,6 +112,19 @@
             android:textColor="@color/rma_blue_color"
             android:background="@drawable/rma_item_click_bg"/>
 
+
+        <TextView
+            android:visibility="gone"
+            android:id="@+id/invoice_register"
+            android:layout_marginEnd="10dp"
+            android:gravity="center"
+            android:textSize="12sp"
+            android:layout_width="90dp"
+            android:layout_height="25dp"
+            android:text="撤单"
+            android:textColor="@color/rma_blue_color"
+            android:background="@drawable/rma_item_click_bg"/>
+
         <TextView
             android:visibility="gone"
             android:id="@+id/bargain"
@@ -160,17 +173,6 @@
             android:textColor="@color/rma_blue_color"
             android:background="@drawable/rma_item_click_bg"/>
 
-        <TextView
-            android:visibility="gone"
-            android:id="@+id/invoice_register"
-            android:layout_marginEnd="10dp"
-            android:gravity="center"
-            android:textSize="12sp"
-            android:layout_width="90dp"
-            android:layout_height="25dp"
-            android:text="撤单"
-            android:textColor="@color/rma_blue_color"
-            android:background="@drawable/rma_item_click_bg"/>
 
 <!--        挂牌-->
         <TextView