Parcourir la source

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

Liu.bolan il y a 4 ans
Parent
commit
f6ab781ff8
25 fichiers modifiés avec 360 ajouts et 54 suppressions
  1. 1 0
      RMA/.idea/encodings.xml
  2. 3 1
      RMA/app/src/main/AndroidManifest.xml
  3. 43 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/customer/CustomerManage.kt
  4. 70 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/customer/adapter/CustomerAdapter.kt
  5. 56 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/spot/SpotAdapter.kt
  6. 36 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/spot/SpotManager.kt
  7. 8 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/TradeHolderDetailData.kt
  8. 9 0
      RMA/app/src/main/java/cn/muchinfo/rma/protobuf/funcode/FunCode.java
  9. 1 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  10. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  11. 4 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainFragment.kt
  12. 15 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainViewmodel.kt
  13. 9 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/adapter/ContractPositionContentAdapter.java
  14. 7 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/AgreementUnwindActivity.kt
  15. 29 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/AgreementUnwindViewHolder.kt
  16. 8 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/AgreementUnwindViewModel.kt
  17. 1 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/performancetemplate/AddPerformanceViewHolder.kt
  18. 5 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tjmd/TjmdHomeFragment.kt
  19. 16 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/LoginActivity.kt
  20. 3 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallActivity.kt
  21. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/business/SwapsBusinessHallActivity.kt
  22. 29 24
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingActivity.kt
  23. 1 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingViewModel.kt
  24. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/listed/SwapsListedActivity.kt
  25. BIN
      RMA/app/src/main/res/mipmap-xhdpi/tjmd_demo_image.jpeg

+ 1 - 0
RMA/.idea/encodings.xml

@@ -13,6 +13,7 @@
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/srcFiles/ManageServiceMI2.proto" charset="GBK" />
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/srcFiles/PublicMI1.proto" charset="GBK" />
     <file url="file://$PROJECT_DIR$/app/src/main/java/cn/muchinfo/rma/protobuf/srcFiles/SystemMI1.proto" charset="GBK" />
+    <file url="file://$PROJECT_DIR$/../../../../proto/FunCodeConstants.java" charset="US-ASCII" />
     <file url="PROJECT" charset="UTF-8" />
   </component>
 </project>

+ 3 - 1
RMA/app/src/main/AndroidManifest.xml

@@ -440,7 +440,9 @@
 
         <activity android:name=".view.base.hnstmain.performancetemplate.PerformanceTemplateActivity"/>
 
-        <activity android:name=".view.base.hnstmain.performancetemplate.AddPerformanceTempateActivity"/>
+        <activity android:name=".view.base.hnstmain.performancetemplate.AddPerformanceTempateActivity"
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="adjustPan"/>
 
         <activity android:name=".view.base.hnstmain.performancetemplate.SelectPerformanceTemplateActivity"/>
 

+ 43 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/customer/CustomerManage.kt

@@ -204,6 +204,49 @@ class CustomerManage {
     }
 
     /**
+     * 修改用户审核配置请求
+     */
+    fun areaAuditConfigOperateReq(
+        CustomerAuditFlag : String = "",//客户资料是否需要审核 - 0:不需审核 1:需要审核
+        SpotContractAuditFlag : String = "",//现货合同是否需要审核 - 0:不需审核 1:需要审核
+        PointPriceAuditFlag : String = "",//点价是否需要审核 - 0:不需审核 1:需要审核
+        DeliveryAuditFlag : String = "",//交收是否需要审核 - 0:不需审核 1:需要审核
+        MoneyAuditFlag : String = "",//款项是否需要审核 - 0:不需审核 1:需要审核
+        InvoiceAuditFlag : String = "",//发票是否需要审核 - 0:不需审核 1:需要审核
+        BuyInAuditFlag : String = "",//采购入库是否需要审核 - 0:不需审核 1:需要审核
+        SellOutAuditFlag : String = "",//销售出库是否需要审核 - 0:不需审核 1:需要审核
+        ProduceInAuditFlag : String = "",//生产入库是否需要审核 - 0:不需审核 1:需要审核
+        ProduceOutAuditFlag : String = "",//生产出库是否需要审核 - 0:不需审核 1:需要审核
+        callback: (isCompleted: Boolean, err: Error?) -> Unit
+    ){
+        val tradeSocketManager = MyApplication.getInstance()?.tradeSocketManager.guard {
+            callback(false, Error("交易链路未初始化"))
+            return
+        }
+
+        val reqPacket = CustomerAdapter.getAreaAuditConfigOperateReqInfo(
+            CustomerAuditFlag, SpotContractAuditFlag, PointPriceAuditFlag, DeliveryAuditFlag, MoneyAuditFlag, InvoiceAuditFlag, BuyInAuditFlag, SellOutAuditFlag, ProduceInAuditFlag, ProduceOutAuditFlag
+        )
+
+        tradeSocketManager.send(
+            reqPacket,
+            FunCode.FID_AreaAuditConfigOperateRsp,
+            object : Callback<Packet50> {
+                override fun onSuccess(rsp: Packet50?) {
+                    val rst = CustomerAdapter.analysisAreaAuditConfigOperateRsp(rsp!!)
+                    callback(rst.first, rst.second)
+                }
+
+                override fun onFail(err: Error?) {
+                    // 发送数据失败
+                    callback(false, err)
+                }
+
+            }
+        )
+    }
+
+    /**
      * 客户信息审核请求
      * @param auditflag Long 4-审核通过,5-审核拒绝
      * @param userid Long 客户userid

+ 70 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/customer/adapter/CustomerAdapter.kt

@@ -16,6 +16,76 @@ import java.lang.Exception
  */
 object CustomerAdapter {
 
+
+    /**
+     * 修改用户审核配置请求的报文装箱
+     */
+    fun getAreaAuditConfigOperateReqInfo(
+        CustomerAuditFlag : String = "",//客户资料是否需要审核 - 0:不需审核 1:需要审核
+        SpotContractAuditFlag : String = "",//现货合同是否需要审核 - 0:不需审核 1:需要审核
+        PointPriceAuditFlag : String = "",//点价是否需要审核 - 0:不需审核 1:需要审核
+        DeliveryAuditFlag : String = "",//交收是否需要审核 - 0:不需审核 1:需要审核
+        MoneyAuditFlag : String = "",//款项是否需要审核 - 0:不需审核 1:需要审核
+        InvoiceAuditFlag : String = "",//发票是否需要审核 - 0:不需审核 1:需要审核
+        BuyInAuditFlag : String = "",//采购入库是否需要审核 - 0:不需审核 1:需要审核
+        SellOutAuditFlag : String = "",//销售出库是否需要审核 - 0:不需审核 1:需要审核
+        ProduceInAuditFlag : String = "",//生产入库是否需要审核 - 0:不需审核 1:需要审核
+        ProduceOutAuditFlag : String = ""//生产出库是否需要审核 - 0:不需审核 1:需要审核
+    ) : Packet50{
+        val builder = ManageServiceMI3.AreaAuditConfigOperateReq.newBuilder()
+        val loginInfo = GlobalDataCollection.instance?.loginRsp
+        builder.setHeader(
+            MessageHeadModel.getHead(
+                FunCode.FID_AreaAuditConfigOperateReq,
+                loginInfo?.userID ?: 0,
+                0,
+                0,
+                18
+            )
+        )
+        builder.userID = loginInfo?.userID?.toLong() ?: 0
+        builder.operatorSrc = 2
+        builder.operatorID = loginInfo?.loginID ?: 0
+        builder.customerAuditFlag = CustomerAuditFlag
+        builder.spotContractAuditFlag = SpotContractAuditFlag
+        builder.pointPriceAuditFlag = PointPriceAuditFlag
+        builder.deliveryAuditFlag = DeliveryAuditFlag
+        builder.moneyAuditFlag = MoneyAuditFlag
+        builder.invoiceAuditFlag = InvoiceAuditFlag
+        builder.buyInAuditFlag = BuyInAuditFlag
+        builder.sellOutAuditFlag = SellOutAuditFlag
+        builder.produceInAuditFlag = ProduceInAuditFlag
+        builder.produceOutAuditFlag = ProduceOutAuditFlag
+        val arrayOutputStream = ByteArrayOutputStream();
+        builder.build().writeTo(arrayOutputStream)
+        return Packet50(FunCode.FID_AreaAuditConfigOperateReq, arrayOutputStream.toByteArray())
+    }
+
+
+    /**
+     * 客户信息审核报文解析
+     * @param packet50 Packet50
+     * @return Triple<Boolean, Error?, ManageServiceMI2.?>
+     */
+    fun analysisAreaAuditConfigOperateRsp(packet50: Packet50): Triple<Boolean, Error?, ManageServiceMI3.AreaAuditConfigOperateRsp?> {
+        return try {
+            val resultRsp = ManageServiceMI3.AreaAuditConfigOperateRsp.parseFrom(packet50.content)
+            if (resultRsp.retCode == 0) {
+                // 操作成功
+                Triple(true, null, resultRsp)
+            }else if (resultRsp.retCode == -1){
+                // 操作失败
+                Triple(false, Error(resultRsp.retDesc), null)
+            }  else {
+                // 操作失败
+                Triple(false, Error(ErrorMessageUtils.getErrorString(resultRsp.retCode)), null)
+            }
+        } catch (e: Exception) {
+            // 操作失败
+            Triple(false, Error("装箱失败"), null)
+        }
+    }
+
     /**
      * 客户资料操作请求
      * @param operatetype Int

+ 56 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/spot/SpotAdapter.kt

@@ -16,6 +16,62 @@ import java.text.SimpleDateFormat
 object SpotAdapter {
 
     /**
+     * 交易主体请求报文装箱
+     */
+    fun getErmcpPaAreaSubjectReqInfo(
+        SubjectID : Long = 0,//主体ID
+        SubjectName : String = "",//主体名称
+        AreaUserID : Long = 0,//所属机构
+        OperateType : Int = 0//操作类型-1:新增2:修改3:停用4:恢复
+    ) : Packet50{
+        val builder = ManageServiceMI3.ErmcpPaAreaSubjectReq.newBuilder()
+        val loginInfo = GlobalDataCollection.instance?.loginRsp!!
+
+        builder.setHeader(
+            MessageHeadModel.getHead(
+                FunCode.FID_ErmcpPaAreaSubjectReq,
+                loginInfo.userID,
+                0,
+                0,
+                18
+            )
+        )
+
+        builder.subjectID = SubjectID
+        builder.subjectName = SubjectName
+        builder.areaUserID = AreaUserID
+        builder.operateSrc = 2
+        builder.operateid = loginInfo.userID.toLong()
+        builder.operateType = OperateType
+        val arrayOutputStream = ByteArrayOutputStream()
+        builder.build().writeTo(arrayOutputStream)
+        return Packet50(FunCode.FID_ErmcpPaAreaSubjectReq, arrayOutputStream.toByteArray())
+    }
+
+    /**
+     * 交易主体响应
+     * @param packet50 Packet50
+     * @return Triple<Boolean, Error?, ManageServiceMI2.ErmcpSpotGoodsPriceRsp?>
+     */
+    fun analysisErmcpPaAreaSubjectRsp(packet50: Packet50): Triple<Boolean, Error?, ManageServiceMI3.ErmcpPaAreaSubjectRsp?> {
+        return try {
+            val resultRsp = ManageServiceMI3.ErmcpPaAreaSubjectRsp.parseFrom(packet50.content)
+            if (resultRsp.retCode == 0) {
+                // 操作成功
+                Triple(true, null, resultRsp)
+            }  else if (resultRsp.retCode == -1){
+                Triple(false,  Error(resultRsp.retDesc), null)
+            }else {
+                // 操作失败
+                Triple(false, Error(ErrorMessageUtils.getErrorString(resultRsp.retCode)), null)
+            }
+        } catch (e: Exception) {
+            // 操作失败
+            Triple(false, Error("装箱失败"), null)
+        }
+    }
+
+    /**
      *  议价申请请求
      */
     fun getWrBargainApplyReqInfo(

+ 36 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/spot/SpotManager.kt

@@ -21,6 +21,42 @@ import java.lang.Exception
  */
 class SpotManager {
 
+    /**
+     * 交易主体请求
+     */
+    fun ermcpPaAreaSubjectReq(
+        SubjectID : Long = 0,//主体ID
+        SubjectName : String = "",//主体名称
+        AreaUserID : Long = 0,//所属机构
+        OperateType : Int = 0,//操作类型-1:新增2:修改3:停用4:恢复
+        callback: (isCompleted: Boolean, err: Error?) -> Unit
+    ){
+        val tradeSocketManager = MyApplication.getInstance()?.tradeSocketManager.guard {
+            callback(false, Error("交易链路未初始化"))
+            return
+        }
+
+        val reqPacket = SpotAdapter.getErmcpPaAreaSubjectReqInfo(
+            SubjectID, SubjectName, AreaUserID, OperateType
+        )
+
+        tradeSocketManager.send(
+            reqPacket,
+            FunCode.FID_ErmcpPaAreaSubjectRsp,
+            object : Callback<Packet50> {
+                override fun onSuccess(rsp: Packet50?) {
+                    val rst = SpotAdapter.analysisErmcpPaAreaSubjectRsp(rsp!!)
+                    callback(rst.first, rst.second)
+                }
+
+                override fun onFail(err: Error?) {
+                    // 发送数据失败
+                    callback(false, err)
+                }
+
+            }
+        )
+    }
 
     /**
      * 议价单申请

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

@@ -12,6 +12,10 @@ data class TradeHolderDetailData(
     val accountid : String? = "",//账号ID
     @SerializedName("agreeunit")
     val agreeunit : String? = "",//合约乘数
+    @SerializedName("refgoodscode")
+    val refgoodscode : String? = "",//标的合约代码
+    @SerializedName("refgoodsid")
+    val refgoodsid : String? = "",//标的商品ID
     @SerializedName("buyorsell")
     val buyorsell : String? = "",//方向 - 0:买 1:卖
     @SerializedName("currencyid")
@@ -134,6 +138,8 @@ data class TradeHolderDetailData(
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
         parcel.readInt()
     ) {
     }
@@ -141,6 +147,8 @@ data class TradeHolderDetailData(
     override fun writeToParcel(parcel: Parcel, flags: Int) {
         parcel.writeString(accountid)
         parcel.writeString(agreeunit)
+        parcel.writeString(refgoodscode)
+        parcel.writeString(refgoodsid)
         parcel.writeString(buyorsell)
         parcel.writeString(currencyid)
         parcel.writeString(currencyname)

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

@@ -153,6 +153,15 @@ public class FunCode {
     public static final int FID_WrBargainApplyReq = 1900599;//议价申请请求
     public static final int FID_WrBargainApplyRsp = 1900600;//议价申请响应
 
+    public static final int FID_AreaAuditConfigOperateReq = 1900750;//修改用户审核配置请求
+    public static final int FID_AreaAuditConfigOperateRsp = 1900751;//修改用户审核配置响应
+
+    public static final int FID_ErmcpPaAreaSubjectReq = 1900755;//交易主体请求
+    public static final int FID_ErmcpPaAreaSubjectRsp = 1900756;//交易主体响应
+
+    public static final int FID_DeliveryGoodsApplyCloudReq = 1900752;//现货品种申请请求云平台版本
+    public static final int FID_DeliveryGoodsApplyCloudRsp = 1900754;//现货品种申请响应云平台版本
+
     /**
      * 设置默认收货地址的请求
      */

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

@@ -225,11 +225,7 @@ class MainActivity : BaseActivity<MainViewModel>() {
         if(GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnsthyjy") == true){
             //华南顺通 订单交易
             newFragments.add(yrdzDdjyFragment)
-            if (SPUtils.getInstance().getString(Constant.oem) == "tjmd"){
-                newTabText.add("掉期交易")
-            }else{
-                newTabText.add("订单交易")
-            }
+            newTabText.add("订单交易")
             newNormalIcon.add(R.mipmap.yrdz_ddjy_normal)
             newSelectIcon.add(R.mipmap.yrdz_ddjy_select)
         }

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

@@ -6,7 +6,7 @@ object Constant {
     /**
      * 获取基础url的接口
      */
-//    const val baseurl = "http://103.40.249.123:38280/cfg?key=mtp_20" // 天津麦顿
+    const val baseurl = "http://103.40.249.123:38280/cfg?key=mtp_20" // 天津麦顿
 //    const val baseurl = "http://103.40.249.123:28280/cfg?key=mtp_20"//云融大宗
 //    const val baseurl = "http://103.40.249.123:8280/cfg?key=mtp_20"//千海金外盘
 //    const val baseurl = "http://103.40.249.127:28280/cfg?key=mtp_20"
@@ -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"// 瑶姐 云融 130000000001 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"

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

@@ -80,6 +80,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
         super.onResume()
         viewModel.getUserAccount()
         viewModel.resetAccountData()
+        viewModel.queryContractTradePosition()
     }
 
     override fun onDestroy() {
@@ -159,12 +160,10 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                                     verticalLayout {
                                         textView {
-                                            if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.userinfotype == 1) {//个人
-                                                text =
-                                                    GlobalDataCollection.instance?.loginQueryData?.userInfo?.nickname
+                                            text = if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.userinfotype == 1) {//个人
+                                                GlobalDataCollection.instance?.loginQueryData?.userInfo?.customername
                                             } else {//企业
-                                                text =
-                                                    GlobalDataCollection.instance?.loginQueryData?.userInfo?.customername
+                                                GlobalDataCollection.instance?.loginQueryData?.userInfo?.customername
                                             }
                                             textSizeAuto = 36
                                             maxLines = 1

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

@@ -7,6 +7,7 @@ import cn.muchinfo.rma.global.data.UserAccountData
 import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.base.BaseViewModel
+import cn.muchinfo.rma.view.base.app.Constant
 import cn.muchinfo.rma.view.eventbus.EventConstent
 import cn.muchinfo.rma.view.eventbus.MessageEvent
 import kotlinx.coroutines.GlobalScope
@@ -73,6 +74,20 @@ class HnstMainViewmodel : BaseViewModel(){
     }
 
     /**
+     * 查询合约汇总
+     */
+    fun queryContractTradePosition(){
+        val params = mutableMapOf<String,String>().apply {
+            put("accountID", GlobalDataCollection.instance?.accountId?.toString() ?: "")
+        }
+        MyApplication.getInstance()?.contractGoodsManager?.queryContractTradePosition(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                resetAccountData()
+            }
+        }
+    }
+
+    /**
      * 获取用户账号信息
      */
     fun getUserAccount() {

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

@@ -225,8 +225,15 @@ public class ContractPositionContentAdapter extends RecyclerView.Adapter<Contrac
             }else {
                 itemViewHolder.fanacel_register.setVisibility(View.VISIBLE);
             }
-            itemViewHolder.agreement_to_unwind.setVisibility(View.VISIBLE);
-            itemViewHolder.warehouse_register.setVisibility(View.VISIBLE);
+            if (data.getMarketid().startsWith("46")){
+                itemViewHolder.agreement_to_unwind.setVisibility(View.VISIBLE);
+                itemViewHolder.warehouse_register.setVisibility(View.GONE);
+            }else {
+                itemViewHolder.agreement_to_unwind.setVisibility(View.GONE);
+                itemViewHolder.warehouse_register.setVisibility(View.VISIBLE);
+            }
+
+
         } else {
             itemViewHolder.fanacel_register.setVisibility(View.GONE);
             itemViewHolder.warehouse_register.setVisibility(View.GONE);

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

@@ -72,7 +72,7 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
             LogUtils.eTag("dadafafsjhdkjahkjdhak", goodid)
             //找到相应商品信息
             val goodsInfo =
-                viewModel.agreementDataList.value?.find { it.goodsid?.toInt() == goodid }
+                viewModel.agreementDataList.value?.find { it.refgoodsid?.toInt() == goodid }
             viewModel.agreementDataList.value?.indexOf(goodsInfo)?.let {
                 if (it != -1) {//刷新相应item
                     agreement_recyclerView.adapter?.notifyItemChanged(it)
@@ -157,10 +157,6 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
 
                     statusLayout(contentBlock = {
                         statusLayout = this
-//                bindTaskStatus(viewModule.status)
-                        setRetryAction {
-
-                        }
                         swipeToLoadLayout {
                             swipeToLayout = this
                             setEnableRefresh(false)
@@ -219,7 +215,7 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
                             text = "0"
                             setOnTextChangeListener { view, value ->
                                 if (value.isNullOrEmpty().not()) {
-
+                                    viewModel.agreementData.postValue(viewModel.agreementData.value)
                                 }
                             }
                             setTextColor(R.color.buy_hall_color)
@@ -291,6 +287,11 @@ class AgreementUnwindActivity : BaseActivity<AgreementUnwindViewModel>() {
                                     return@onThrottleFirstClick
                                 }
 
+                                if (agrement_price_edittext.text.toString().toDouble() == 0.0){
+                                    ToastUtils.showLong("协议价不能为零")
+                                    return@onThrottleFirstClick
+                                }
+
                                 val applyData = viewModel.agreementData.value
                                 viewModel.tradeHoldTransferApplyReq(
                                     accoundId = GlobalDataCollection.instance?.accountId ?: 0,

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

@@ -108,8 +108,35 @@ class AgreementUnwindViewHolder(private val activity : AppCompatActivity, privat
                 linearLayout {
                     gravity = Gravity.CENTER_VERTICAL or Gravity.RIGHT
                     textView {
-                        data.bindOptional(context){
-                            text = "+100"
+                        data.bindOptional(context){data ->
+                            val quoteDayData = GlobalDataCollection.instance?.goodsInfoAndQuotesList?.find {
+                                data?.refgoodscode == it?.outgoodscode
+                            }?.quoteDayData
+                            val goodsInfo = DataBase.getInstance().goodsInfoDao()
+                                .getGoodsInfo(data?.refgoodsid?.toInt() ?: 0)
+                            if (quoteDayData != null){
+                                val buysell = if (data?.buyorsell == "0") {
+                                    1
+                                } else {
+                                    -1
+                                }
+                                val profit_loss =
+                                    quoteDayData.getPrice().minus(data?.holderprice?.toDouble() ?: 0.0)
+                                        .times(data?.holderqty?.toInt() ?: 0)
+                                        .times(goodsInfo?.agreeunit ?: 0).times(buysell)
+
+                                if (profit_loss > 0) {
+                                    textColorInt = R.color.rma_red_color
+                                } else if (profit_loss < 0) {
+                                    textColorInt = R.color.rma_green_color
+                                } else {
+                                    textColorInt = R.color.rma_black_33
+                                }
+                                text = NumberUtils.roundNum(profit_loss, 2)
+                            }else{
+                                text = "--"
+                                textColorInt = R.color.rma_black_33
+                            }
                         }
                         textSizeAuto = 31
                         textColorInt = R.color.rma_red_color

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

@@ -86,7 +86,12 @@ class AgreementUnwindViewModel : BaseViewModel(){
 
         MyApplication.getInstance()?.quoteManager?.queryTradeHolderDetail(params = params){isSuccess, respData, error ->
             if (isSuccess){
-                val newList = respData?.remove { it?.holderqty?.toDouble() ?: 0.0 > 0 }
+                val newList = arrayListOf<TradeHolderDetailData>()
+                respData?.forEach {
+                    if (it.holderqty != "0"){
+                        newList.add(it)
+                    }
+                }
                 agreementDataList.postValue(newList)
                 queryQuoteDay(tag = tag,list = newList ?: arrayListOf()){ isCompleted, err ->
 
@@ -148,7 +153,7 @@ class AgreementUnwindViewModel : BaseViewModel(){
     fun getgoodsCodes(list : List<TradeHolderDetailData>): String {
         var goodsCodes = ""
         list.forEach {
-            goodsCodes = goodsCodes + it.goodscode + ","
+            goodsCodes = goodsCodes + it.refgoodscode + ","
         }
         return goodsCodes
     }
@@ -161,7 +166,7 @@ class AgreementUnwindViewModel : BaseViewModel(){
     fun addSubscriptQuote(tag: String, goodsInfoList: List<TradeHolderDetailData>) {
         GlobalScope.launch {
             MyApplication.getInstance()?.quoteManager?.addSubscriptQuote(
-                tag = tag, goodsCodeSet = goodsInfoList.map { it.goodscode ?: "" }.toSet()
+                tag = tag, goodsCodeSet = goodsInfoList.map { it.refgoodscode ?: "" }.toSet()
             ) { _, _ ->
 
             }

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

@@ -88,6 +88,7 @@ class AddPerformanceViewHolder(private val activity : AppCompatActivity,private
                         background = null
                         hintColorStr = "#CCCCCC"
                         textSizeAuto = 29
+                        setDecimalInputType(BigDecimal("100"),0)
                         inputType = EditorInfo.TYPE_CLASS_NUMBER
                         textColorStr = "#333333"
                     }.lparams(0, autoSize(100),1f)

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

@@ -444,7 +444,12 @@ class TjmdHomeFragment : BaseFragment<TjmdHomeViewModel>(){
                                 tjmdHomeMarketViewHolder.setNewData(it)
                             }
 
+
+                            imageView {
+                                imageResource = R.mipmap.tjmd_demo_image
+                            }.lparams(matchParent, autoSize(380))
                             chartview {
+                                visibility = View.GONE
                                 val aaChartModel = AAChartModel()
                                     .chartType(AAChartType.Areaspline)
                                     .title("")

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

@@ -522,6 +522,22 @@ class LoginActivity : BaseActivity<LoginViewModel>(), UserPopupWindow.OnClearAcc
                                             }
                                         }
                                     }else if (SPUtils.getInstance().getString(Constant.oem) == "tjmd"){//如果是天津麦顿的掉期交易则要请求接口掉期报价列表
+
+                                        val params1 = mutableMapOf<String,String>().apply {
+                                            put("marketid",GlobalDataCollection.instance?.getMaketidByTrademode(16).toString())
+                                        }
+                                        MyApplication.getInstance()?.chartManager?.queryDeliveryRelation(params = params1){isSuccess, respData, error ->
+                                            if (isSuccess){
+                                                GlobalDataCollection.instance?.setDeliveryRelationDataArrayList(respData?.toArrayList())
+                                                viewModel.loadingDialogStatus.value =
+                                                    TaskUiModel.success(msg = "登录成功")
+                                                goHomePage()
+                                            }else{
+                                                viewModel.loadingDialogStatus.value =
+                                                    TaskUiModel.failed(InteractiveException(errorMessage = "商品交割关系表请求失败"))
+                                            }
+                                        }
+
                                         val params = mutableMapOf<String,String>().apply {
                                             put("usertype",GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype?.toString() ?: "")
                                             put("marketids",GlobalDataCollection.instance?.getMaketidByTrademode(46)?.toString() ?: "")

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

@@ -2085,6 +2085,9 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
                                                                 ?.times(value.toString().toDouble())
                                                                 ?: 0.0, 2
                                                         )
+                                                    if (viewModel.slectfinancingData.value?.accountid.isNullOrEmpty().not()){
+                                                        viewModel.slectfinancingData.postValue(viewModel.slectfinancingData.value)//为驱动履约保证金再次变化数额
+                                                    }
                                                     one_seekbar.progress = value.toDouble()
                                                         .div(maxpickNumber.value ?: 0.0)
                                                         .times(100).toInt()

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

@@ -141,7 +141,7 @@ class SwapsBusinessHallActivity : BaseActivity<SwapsBusinessHallViewModel>() {
         if (goodsids.contains(goodsId?.toInt())) {
             LogUtils.eTag("BusinessHallActivity", "行情推送" + goodsId)
             val quote =
-                GlobalDataCollection.instance?.goodsInfoAndQuotesList?.find { goodsCode == it.outgoodscode }?.quoteDayData
+                GlobalDataCollection.instance?.goodsInfoAndQuotesList?.find { quoteGoodsListData.refgoodscode == it.outgoodscode }?.quoteDayData
             if (quote != null) {
                 //赋值盘面信息
                 viewModel.quoteDayData.postValue(quote)
@@ -160,7 +160,7 @@ class SwapsBusinessHallActivity : BaseActivity<SwapsBusinessHallViewModel>() {
         viewModel.goodsInfo.postValue(
             DataBase.getInstance().goodsInfoDao().getGoodsInfo(goodsId?.toInt() ?: 0)
         )
-        viewModel.queryQuoteDay(tag = thisTag, goodsCodes = goodsCode ?: "", isShowLoading = false)
+        viewModel.queryQuoteDay(tag = thisTag, goodsCodes = quoteGoodsListData.refgoodscode ?: "", isShowLoading = false)
     }
 
 
@@ -168,7 +168,7 @@ class SwapsBusinessHallActivity : BaseActivity<SwapsBusinessHallViewModel>() {
         super.onResume()
         viewModel.queryBuyDataList(goodsid = goodsId ?: "")
         viewModel.querySellDataList(goodsid = goodsId ?: "")
-        viewModel.queryQuoteDay(tag = thisTag, goodsCodes = goodsCode ?: "", isShowLoading = false)
+        viewModel.queryQuoteDay(tag = thisTag, goodsCodes = quoteGoodsListData.refgoodscode ?: "", isShowLoading = false)
     }
 
     @SuppressLint("SetTextI18n")

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

@@ -81,6 +81,9 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
     /** 是否选择限价 **/
     lateinit var limit_price_checkbox : CheckBox
 
+    /** 价格变动监听 ***/
+    val valueChange : MutableLiveData<Int> = MutableLiveData<Int>().apply { value = 1 }
+
     /** 若挂牌单为浮动价时,可以选择为市价或者限价挂单 **/
     val priceType : MutableLiveData<Int> = MutableLiveData()
 
@@ -262,7 +265,7 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                         background = resources.getDrawable(R.drawable.yrdz_check_select_backgrond)
                         setOnCheckedChangeListener { compoundButton, b ->
                             if (b){
-                                priceType.postValue(1)//设置为限价
+                                priceType.postValue(2)//设置为限价
                                 market_price_checkbox.isChecked = false
                             }
                         }
@@ -297,13 +300,13 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                         }
                         limit_price_edittext = this
                         setOnTextChangeListener { view, value ->
-                            viewModel.quoteDayData.postValue(viewModel.quoteDayData.value)//对盘面数据进行重新赋值以驱动估算价格的计算
+                            valueChange.postValue(valueChange.value)
                         }
                     }.lparams(0, autoSize(72), 1f) {
                         marginEnd = autoSize(36)
                     }
                 }.lparams(matchParent, autoSize(143))
-            }.lparams(matchParent, autoSize(286))
+            }.lparams(matchParent, wrapContent)
 
             // 价格为固定价时就为挂牌价格
             linearLayout {
@@ -382,7 +385,7 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                             onePriceInputNumberEdittext = this
                             setOnTextChangeListener { view, value ->
                                 if (value.isNullOrEmpty().not()) {
-                                    viewModel.quoteDayData.postValue(viewModel.quoteDayData.value)//对盘面数据进行重新赋值以驱动估算价格的计算
+                                    valueChange.postValue(valueChange.value)
                                 }
                             }
                         }.lparams(0, autoSize(72), 1f) {
@@ -472,35 +475,22 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                 }
 
                 textView {
-                    if (data.pricemode == "2"){//挂牌单据为固定价时
-                        val amout = data.orderprice?.toDouble()?.times(data.orderqty?.toDouble() ?: 0.0)
-                        val infoc = viewModel.tjmdTodayAccountMarginData.value?.infoc
-                        if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype == 2){
-                            text = NumberUtils.roundNum(amout ?: 0.0,2) + "需履约保证金 : " + infoc?.getMargainValue(amout = amout ?: 0.0,number = data.orderqty?.toDouble() ?: 0.0,goodsid = goodsId ?: "0")
-                        }else{
-                            var numberInput = 0.0
-                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
-                                numberInput = 0.0
-                            }else{
-                                numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
-                            }
-                            text = NumberUtils.roundNum(amout ?: 0.0,2) + "需履约保证金 : " + infoc?.getMargainValue(amout = amout ?: 0.0,number = numberInput,goodsid = goodsId ?: "0")
-                        }
-
-                    }
                     viewModel.quoteDayData.bindOptional(context){
+                        valueChange.postValue(valueChange.value)
+                    }
+                    valueChange.bindOptional(context){
                         if (data.pricemode == "3"){//挂牌单据为浮动价时,才会有估算金额,并且选择为市价时根据行情变动,选择为限价时根据输入的限价价格变动
                             val infoc = viewModel.tjmdTodayAccountMarginData.value?.infoc
                             if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype == 2){
                                 val numberInput = data.orderqty?.toDouble() ?: 0.0
                                 if (priceType.value == 1){//市价计算
-                                    text = NumberUtils.roundNum(it?.getPrice()?.times(numberInput) ?: 0.0,2) + "需履约保证金 :" + infoc?.getMargainValue(amout = it?.getPrice()?.times(numberInput) ?: 0.0,number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
+                                    text = NumberUtils.roundNum(viewModel.quoteDayData.value?.getPrice()?.times(numberInput) ?: 0.0,2) + "  需履约保证金 :" + infoc?.getMargainValue(amout = viewModel.quoteDayData.value?.getPrice()?.times(numberInput) ?: 0.0,number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
                                 }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) +  "需履约保证金 :" + infoc?.getMargainValue(amout = limit_price.times(numberInput),number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
+                                        text = NumberUtils.roundNum(limit_price.times(numberInput),2) +  "  需履约保证金 :" + infoc?.getMargainValue(amout = limit_price.times(numberInput),number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
                                     }
                                 }
                             }else{
@@ -509,18 +499,33 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                                 }else{
                                     val numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
                                     if (priceType.value == 1){//市价计算
-                                        text = NumberUtils.roundNum(it?.getPrice()?.times(numberInput) ?: 0.0,2) + "需履约保证金 :" + infoc?.getMargainValue(amout = it?.getPrice()?.times(numberInput) ?: 0.0,number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
+                                        text = NumberUtils.roundNum(viewModel.quoteDayData.value?.getPrice()?.times(numberInput) ?: 0.0,2) + "  需履约保证金 :" + infoc?.getMargainValue(amout = viewModel.quoteDayData.value?.getPrice()?.times(numberInput) ?: 0.0,number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
                                     }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) +  "需履约保证金 :" + infoc?.getMargainValue(amout = limit_price.times(numberInput),number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
+                                            text = NumberUtils.roundNum(limit_price.times(numberInput),2) +  "  需履约保证金 :" + infoc?.getMargainValue(amout = limit_price.times(numberInput),number = numberInput ?: 0.0,goodsid = goodsId ?: "0")
                                         }
                                     }
                                 }
                             }
 
+                        }else  if (data.pricemode == "2"){//挂牌单据为固定价时
+                            var numberInput = 0.0
+                            if (onePriceInputNumberEdittext.text.toString().isNullOrEmpty()){
+                                numberInput = 0.0
+                            }else{
+                                numberInput = onePriceInputNumberEdittext.text.toString().toDouble()
+                            }
+                            val amout = data.orderprice?.toDouble()?.times(numberInput?.toDouble() ?: 0.0)
+                            val infoc = viewModel.tjmdTodayAccountMarginData.value?.infoc
+                            if (GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype == 2){
+                                text = NumberUtils.roundNum(amout ?: 0.0,2) + "  需履约保证金 : " + infoc?.getMargainValue(amout = amout ?: 0.0,number = data.orderqty?.toDouble() ?: 0.0,goodsid = goodsId ?: "0")
+                            }else{
+                                text = NumberUtils.roundNum(amout ?: 0.0,2) + "  需履约保证金 : " + infoc?.getMargainValue(amout = amout ?: 0.0,number = numberInput,goodsid = goodsId ?: "0")
+                            }
+
                         }
                     }
                     one_delisting_amount = this

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

@@ -73,6 +73,7 @@ class SwapsDelistingViewModel : BaseViewModel(){
             if (isSuccess){
                 if (respData?.size ?: 0 > 0){
                     tjmdTodayAccountMarginData.postValue(respData?.get(0))
+                    quoteDayData.postValue(quoteDayData.value)
                 }
             }
         }

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

@@ -240,7 +240,7 @@ class SellListedUI(
     lateinit var one_seekbar: SeekBar
 
     /** 价格变动监听 ***/
-    val valueChange : MutableLiveData<Int> = MutableLiveData()
+    val valueChange : MutableLiveData<Int> = MutableLiveData<Int>().apply { value = 1 }
 
     //初始化一些数据
     fun initializeData() {

BIN
RMA/app/src/main/res/mipmap-xhdpi/tjmd_demo_image.jpeg