Переглянути джерело

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	RMA/chart/src/main/res/values/colors.xml
huangyan 4 роки тому
батько
коміт
0a9a5a56ef
72 змінених файлів з 8562 додано та 402 видалено
  1. 2 0
      RMA/app/build.gradle
  2. 2 0
      RMA/app/src/main/AndroidManifest.xml
  3. 28 4
      RMA/app/src/main/java/cn/muchinfo/rma/business/common/CommonManager.kt
  4. 49 9
      RMA/app/src/main/java/cn/muchinfo/rma/business/future/FutureManager.kt
  5. 53 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/future/adapter/FutureAdapter.kt
  6. 7 3
      RMA/app/src/main/java/cn/muchinfo/rma/global/GlobalDataCollection.kt
  7. 4 1
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/ContractData.kt
  8. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/FinancialManageData.kt
  9. 6 2
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/HedgePlanData.kt
  10. 17 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/MiddleGoodsChangeLogData.kt
  11. 9 0
      RMA/app/src/main/java/cn/muchinfo/rma/protobuf/funcode/FunCode.java
  12. 3312 0
      RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/MSIM.java
  13. 5 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  14. 13 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/CustomView.kt
  15. 65 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/NoScrollViewPager.java
  16. 20 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/dialog/Dialog.kt
  17. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/view/MangeNumberEditText2.java
  18. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  19. 3 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/ChartDataAdapter.kt
  20. 3165 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/OTCChartActivity.java
  21. 494 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/AttornDataControl.java
  22. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/MTPChartControl.java
  23. 33 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/OTCChartControl.java
  24. 1 21
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/timeCharts/KChartFragment.java
  25. 1 30
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/timeCharts/TimeChartFragment.java
  26. 390 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/CustomPopWindow.java
  27. 30 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/ScrollListView.java
  28. 289 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/TenMarketQuotationView.java
  29. 53 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureFragment.kt
  30. 6 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureViewModel.kt
  31. 81 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/HistoryExposureViewholder.kt
  32. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/RealTimeExposureDetailsActivity.kt
  33. 17 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/entrusts/EntrustChildFragment.kt
  34. 37 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/entrusts/EntrustChildViewModel.kt
  35. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/orderDeatails/OrderDetail.kt
  36. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/orderDeatails/OrderDetailModel.kt
  37. 13 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/trade/GoodsTradeActivity.kt
  38. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeFragment.kt
  39. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/business/BusinessManagementActivity.kt
  40. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/business/MidpointsAuditActivity.kt
  41. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/AddHedgeGoodsActivity.kt
  42. 8 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/AddSpotGoodsActivity.kt
  43. 31 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityInformationViewModel.kt
  44. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/CommodityMiddleViewHolder.kt
  45. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/FuturesVarietiesUI.kt
  46. 11 33
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/HedgeSpeciesDetailsActivity.kt
  47. 8 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/SpotVarietiesDetailsActivity.kt
  48. 3 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/viewholder/ChangeLogViewHolder.kt
  49. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/viewholder/HedgeFutureVarietyViewholder.kt
  50. 12 6
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractDataViewHolder.kt
  51. 31 8
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractPublicView.kt
  52. 17 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/customerdata/AddCustomerDataActivity.kt
  53. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/financial/FinancialActivity.kt
  54. 5 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/financial/FinancialViewholder.kt
  55. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/financial/InvoiceRegisterActivity.kt
  56. 15 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/financial/PaymentReviewActivity.kt
  57. 13 9
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/AddHedgePlanActivity.kt
  58. 3 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgePlanActivity.kt
  59. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/HedgePlanViewHolder.kt
  60. 25 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/InvoiceRegistrationActivity.kt
  61. 14 8
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/PaymentRegistrationActivity.kt
  62. 20 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/SettlementRegistrationActivity.kt
  63. 1 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reportquery/ReportQueryActivity.kt
  64. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tradingquery/TradingQueryActivity.kt
  65. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContractDetailActivity.kt
  66. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/detailsviewholder/InvoiceRecordViewHolder.kt
  67. 74 0
      RMA/app/src/main/res/layout/manage_ten_market_view.xml
  68. 16 0
      RMA/chart/src/main/java/com/desfate/chart/ui/old/OTC/listener/OnChartListener.java
  69. 0 179
      RMA/chart/src/main/java/com/desfate/chart/ui/old/adapter/HistoryQuoteResponse.java
  70. 1 0
      RMA/chart/src/main/java/com/desfate/chart/ui/old/adapter/HistoryTik.java
  71. 12 0
      RMA/chart/src/main/res/drawable/choice_bg_white.xml
  72. 7 0
      RMA/chart/src/main/res/values/colors.xml

+ 2 - 0
RMA/app/build.gradle

@@ -144,5 +144,7 @@ dependencies {
     //eventbus
     implementation 'org.greenrobot:eventbus:3.2.0'
     implementation "org.jetbrains.kotlin:kotlin-reflect:1.4.10"
+    //图表
+    implementation 'com.github.AAChartModel:AAChartCore-Kotlin:-SNAPSHOT'
 
 }

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

@@ -175,6 +175,8 @@
         <activity android:name=".view.base.future.costs.CostDetailsActivity"/>
 
         <activity android:name=".view.base.future.deals.DealDetailsActivity"/>
+
+        <activity android:name=".view.base.future.orderDeatails.OrderDetail"/>
     </application>
 
 </manifest>

+ 28 - 4
RMA/app/src/main/java/cn/muchinfo/rma/business/common/CommonManager.kt

@@ -1,9 +1,6 @@
 package cn.muchinfo.rma.business.common
 
-import cn.muchinfo.rma.global.data.ChangeLogData
-import cn.muchinfo.rma.global.data.CommonTableData
-import cn.muchinfo.rma.global.data.ContractData
-import cn.muchinfo.rma.global.data.NoticeData
+import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.netManage.base.ResponseCallback
 import cn.muchinfo.rma.netManage.utils.MyOkHttpUtils
 import cn.muchinfo.rma.view.base.app.BaseResult
@@ -120,4 +117,31 @@ class CommonManager {
         )
     }
 
+    /**
+     * 查询变更记录
+     * @param params Map<String, String> RelatedId 合同ID
+     * @param responseBack Function3<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] List<NoticeData>?, [@kotlin.ParameterName] Error?, Unit>
+     */
+    fun queryMiddleGoodsChangeLog(
+        params: Map<String, String>,
+        responseBack: (isSuccess: Boolean, respData: List<MiddleGoodsChangeLogData>?, error: Error?) -> Unit
+    ){
+
+        MyOkHttpUtils().query(
+            URL = SPUtils.getInstance().getString(Constant.goCommonSearchUrl) + "/Ermcp/QueryMiddleGoodsChangeLog",
+            params = params,
+            type = "1",
+            callback = object : ResponseCallback<BaseResult<List<MiddleGoodsChangeLogData>>>(){
+                override fun onResponse(response: BaseResult<List<MiddleGoodsChangeLogData>>?, id: Int) {
+                    responseBack(true,response?.data,null)
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    responseBack(false, null, Error(e?.message))
+                }
+
+            }
+        )
+    }
+
 }

+ 49 - 9
RMA/app/src/main/java/cn/muchinfo/rma/business/future/FutureManager.kt

@@ -220,12 +220,14 @@ class FutureManager {
         responseBack: (isSuccess: Boolean, respData: List<FutureEntrustData>?, error: Error?) -> Unit
     ) {
         MyOkHttpUtils().query(
-            URL = SPUtils.getInstance().getString(Constant.goCommonSearchUrl) + "/Ermcp/QueryErmcpHisOrderDetails",
+            URL = SPUtils.getInstance()
+                .getString(Constant.goCommonSearchUrl) + "/Ermcp/QueryErmcpHisOrderDetails",
             params = params,
             type = "1",
-            callback = object : ResponseCallback<BaseResult<List<FutureEntrustData>>>(){
+            callback = object : ResponseCallback<BaseResult<List<FutureEntrustData>>>() {
                 override fun onResponse(response: BaseResult<List<FutureEntrustData>>?, id: Int) {
-                    GlobalDataCollection.instance?.futureHisEntrustData = response?.data as ArrayList<FutureEntrustData>?
+                    GlobalDataCollection.instance?.futureHisEntrustData =
+                        response?.data as ArrayList<FutureEntrustData>?
                     responseBack(true, response?.data, null)
                 }
 
@@ -246,12 +248,13 @@ class FutureManager {
     fun queryErmcpHisTradeDetails(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<DealOrderData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
-            URL = SPUtils.getInstance().getString(Constant.goCommonSearchUrl) + "/Ermcp/QueryErmcpHisTradeDetails",
+            URL = SPUtils.getInstance()
+                .getString(Constant.goCommonSearchUrl) + "/Ermcp/QueryErmcpHisTradeDetails",
             params = params,
             type = "1",
-            callback = object : ResponseCallback<BaseResult<List<DealOrderData>>>(){
+            callback = object : ResponseCallback<BaseResult<List<DealOrderData>>>() {
                 override fun onResponse(response: BaseResult<List<DealOrderData>>?, id: Int) {
                     responseBack(true, response?.data, null)
                 }
@@ -398,12 +401,13 @@ class FutureManager {
     fun queryAmountLog(
         params: Map<String, String>,
         responseBack: (isSuccess: Boolean, respData: List<AmountLogData>?, error: Error?) -> Unit
-    ){
+    ) {
         MyOkHttpUtils().query(
-            URL = SPUtils.getInstance().getString(Constant.goCommonSearchUrl) + "/TaAccount/QueryAmountLog",
+            URL = SPUtils.getInstance()
+                .getString(Constant.goCommonSearchUrl) + "/TaAccount/QueryAmountLog",
             params = params,
             type = "1",
-            callback = object : ResponseCallback<BaseResult<List<AmountLogData>>>(){
+            callback = object : ResponseCallback<BaseResult<List<AmountLogData>>>() {
                 override fun onResponse(response: BaseResult<List<AmountLogData>>?, id: Int) {
                     responseBack(true, response?.data, null)
                 }
@@ -416,6 +420,42 @@ class FutureManager {
         )
     }
 
+    /**
+     * 委托撤单
+     * @param orderId Long 委托单号
+     * @param marketId Int 市场id
+     * @param accountId Long 资金账户
+     * @param goodsId Int 商品id
+     */
+    fun cancelOrder(orderId: Long, marketId: Int, accountId: Long, goodsId: Int,
+                    callback: (isCompleted: Boolean, err: Error?) -> Unit) {
+        val tradeSocketManager = MyApplication.getInstance()?.tradeSocketManager.guard {
+            callback(false, Error("交易链路未初始化"))
+            return
+        }
+
+        val reqPacket = FutureAdapter.getCancelOrderReqInfo(
+            orderId, marketId, accountId, goodsId
+        )
+
+        tradeSocketManager.send(
+            reqPacket,
+            FunCode.ChannelOrderRsp,
+            object : Callback<Packet50> {
+                override fun onSuccess(rsp: Packet50?) {
+                    val rst = FutureAdapter.analysisChannelOrderRsq(rsp!!)
+                    callback(rst.first, rst.second)
+                }
+
+                override fun onFail(err: Error?) {
+                    // 发送数据失败
+                    callback(false, err)
+                }
+
+            }
+        )
+
+    }
 
 
 }

+ 53 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/future/adapter/FutureAdapter.kt

@@ -6,6 +6,7 @@ import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.netcore.packet.Packet50
 import cn.muchinfo.rma.protobuf.funcode.FunCode
 import cn.muchinfo.rma.protobuf.protoclasses.MSIM
+import com.blankj.utilcode.util.TimeUtils
 import java.io.ByteArrayOutputStream
 import java.lang.Exception
 import java.util.*
@@ -84,4 +85,56 @@ object FutureAdapter {
         }
     }
 
+
+    /**
+     * 委托撤单的报文装箱
+     */
+    fun getCancelOrderReqInfo(orderId : Long,marketId : Int ,accountId : Long,goodsId : Int): Packet50 {
+        val builder: MSIM.CancelOrderReq.Builder = MSIM.CancelOrderReq.newBuilder()
+
+        builder.setAccountID(accountId)
+        builder.setOldOrderId(orderId)
+        builder.setClientType(3)
+        builder.clientOrderTime = TimeUtils.getNowString()
+        builder.setOrderSrc(1)
+
+        val loginInfo = GlobalDataCollection.instance?.loginRsp!!
+        builder.setOperatorID(loginInfo.userID.toLong())
+        // FIXME: - 250000000005
+        builder.setHeader(
+            MessageHeadModel.getHead(
+                FunCode.CANCELORDERREQ,
+                loginInfo.userID,
+                GlobalDataCollection.instance?.accountId ?: 0,
+                goodsId,
+                marketId
+            )
+        )
+
+        val arrayOutputStream = ByteArrayOutputStream();
+        builder.build().writeTo(arrayOutputStream)
+        return Packet50(FunCode.ChannelOrderReq, arrayOutputStream.toByteArray())
+    }
+
+    /**
+     * 委托撤单报文解析
+     * @param packet50 Packet50
+     * @return Triple<Boolean, Error?, MSIM.CancelOrderRsp?>
+     */
+    fun analysisCancelOrderRsq(packet50: Packet50) : Triple<Boolean, Error?, MSIM.CancelOrderRsp?>{
+        return try {
+            val loginRsp = MSIM.CancelOrderRsp.parseFrom(packet50.content)
+            if (loginRsp.retCode == 0) {
+                // 操作成功
+                Triple(true, null, loginRsp)
+            } else {
+                // 操作失败
+                Triple(false, Error(ErrorMessageUtils.getErrorString(loginRsp.retCode)), null)
+            }
+        } catch (e: Exception) {
+            // 操作失败
+            Triple(false, Error("装箱失败"), null)
+        }
+    }
+
 }

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

@@ -61,7 +61,9 @@ class GlobalDataCollection : BaseGlobalData() {
                 accountData = AccountData()
             } else {
                 if (SPUtils.getInstance().getLong(Constant.SELECT_ACCOUNT_ID, 0) == 0L) {
-                    accountData = instance!!.accountDataList[0]
+                    if (instance?.accountDataList?.size != 0){
+                        accountData = instance?.accountDataList?.get(0)
+                    }
                 } else {
                     for (i in accountDataList.indices) {
                         if (accountDataList[i].accountid == SPUtils.getInstance().getLong(Constant.SELECT_ACCOUNT_ID)
@@ -72,8 +74,10 @@ class GlobalDataCollection : BaseGlobalData() {
                 }
                 // 还是没找到,就去第一个
                 if (accountData == null) {
-                    accountData = accountDataList[0]
-                    SPUtils.getInstance().put(Constant.SELECT_ACCOUNT_ID, accountData.accountid)
+                    if (accountDataList.isNotEmpty()){
+                        accountData = accountDataList[0]
+                        SPUtils.getInstance().put(Constant.SELECT_ACCOUNT_ID, accountData.accountid)
+                    }
                 }
             }
             return accountData

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

@@ -101,7 +101,8 @@ data class ContractData(
     var rightData : List<String>? = arrayListOf(),
     val brandname : String? = "",//品牌名称
     val modelname : String? = "",//型号名称
-    val goodsname : String? = ""
+    val goodsname : String? = "",
+    val amount : String? = ""//金额
 ) : Parcelable {
     constructor(parcel: Parcel) : this(
         parcel.readString(),
@@ -155,6 +156,7 @@ data class ContractData(
         parcel.createStringArrayList(),
         parcel.readString(),
         parcel.readString(),
+        parcel.readString(),
         parcel.readString()
     ) {
     }
@@ -212,6 +214,7 @@ data class ContractData(
         parcel.writeString(brandname)
         parcel.writeString(modelname)
         parcel.writeString(goodsname)
+        parcel.writeString(amount)
     }
 
     override fun describeContents(): Int {

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

@@ -42,7 +42,7 @@ data class FinancialManageData(
     val enumdicname : String? = "",
     val goodscode : String? = "",
     val goodsname : String? = "",
-    val invoiceAmount : String? = "",
+    val InvoiceAmount : String? = "",
     val operateapplyid : String? = "",
     val operateapplytype : String? = "",
     val pricemove : String? = "",
@@ -98,7 +98,7 @@ data class FinancialManageData(
         parcel.writeString(enumdicname)
         parcel.writeString(goodscode)
         parcel.writeString(goodsname)
-        parcel.writeString(invoiceAmount)
+        parcel.writeString(InvoiceAmount)
         parcel.writeString(operateapplyid)
         parcel.writeString(operateapplytype)
         parcel.writeString(pricemove)

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

@@ -38,7 +38,8 @@ data class HedgePlanData(
     val spotgoodsdesc :String? = "",
     val wrstandardid : String? = "",
     val wrstandardname : String? = "",
-    var indexSelect : Int = 0
+    var indexSelect : Int = 0,
+    val enumdicname : String? = ""//单位
 ) : Parcelable{
     constructor(parcel: Parcel) : this(
         parcel.readString(),
@@ -56,7 +57,8 @@ data class HedgePlanData(
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
-        parcel.readInt()
+        parcel.readInt(),
+        parcel.readString()
     ) {
     }
 
@@ -77,6 +79,7 @@ data class HedgePlanData(
         parcel.writeString(wrstandardid)
         parcel.writeString(wrstandardname)
         parcel.writeInt(indexSelect)
+        parcel.writeString(enumdicname)
     }
 
     override fun describeContents(): Int {
@@ -93,4 +96,5 @@ data class HedgePlanData(
         }
     }
 
+
 }

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

@@ -0,0 +1,17 @@
+package cn.muchinfo.rma.global.data
+//查询套保品种变更记录(菜单:套保品种/商品详情/变更记录)
+data class MiddleGoodsChangeLogData(
+    val aftervalue: String = "",//变更后
+    val applyid: String = "",//操作人
+    val applyname: String = "",//操作人名称
+    val applysrc: String = "",//操作来源 - 1:管理端 2:终端
+    val beforevalue: String = "",//变更前
+    val changelogtype: String = "",//变更流水类型 - 1:套保比率变更
+    val handlestatus: String = "",//处理状态
+    val logdatetime: String = "",//流水日期
+    val logid: String = "",//流水ID
+    val logremark: String = "",//流水备注
+    val middlegoodsid: String = "",//套保品种ID
+    val tradedate: String = "",//交易日(yyyyMMdd)
+    val updatetime: String = ""//更新时间
+)

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

@@ -132,4 +132,13 @@ public class FunCode {
      * 交易委托应答(196640)
      */
     public static final int ChannelOrderRsp = 196640;
+
+    /**
+     * 撤单请求
+     */
+    public static final int CANCELORDERREQ = 196611;
+    /**
+     * 撤单应答
+     */
+    public static final int CANCELORDERRSP = 196612;
 }

Різницю між файлами не показано, бо вона завелика
+ 3312 - 0
RMA/app/src/main/java/cn/muchinfo/rma/protobuf/protoclasses/MSIM.java


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

@@ -16,6 +16,7 @@ import cn.muchinfo.rma.view.base.sale.SaleFragment
 import cn.muchinfo.rma.view.eventbus.EventConstent
 import cn.muchinfo.rma.view.eventbus.MessageEvent
 import com.blankj.utilcode.util.AppUtils
+import com.blankj.utilcode.util.LogUtils
 import com.facebook.drawee.backends.pipeline.Fresco
 import com.next.easynavigation.view.EasyNavigationBar
 import mtp.polymer.com.autowidget.dialog.createLoadingDialog
@@ -148,6 +149,10 @@ class MainActivity : BaseActivity<MainViewModel>() {
                     .setOnTabClickListener(object : EasyNavigationBar.OnTabClickListener{
                         override fun onTabSelectEvent(view: View?, position: Int): Boolean {
                              // FIXME 后期在此处添加首页滑动到顶部处理
+                            if (position == 4){
+                                exposureFragment.reFresh()
+                            }
+
                             return false
                         }
 

+ 13 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/CustomView.kt

@@ -18,6 +18,7 @@ import androidx.recyclerview.widget.RecyclerView
 import cn.bingoogolapple.bgabanner.BGABanner
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText2
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
 import com.google.android.material.textfield.TextInputEditText
 import com.google.android.material.textfield.TextInputLayout
 import com.next.easynavigation.view.EasyNavigationBar
@@ -149,6 +150,18 @@ inline fun ViewManager.syncHScrollView(init: (@AnkoViewDslMarker SyncHScrollView
     return ankoView({ ctx: Context -> SyncHScrollView(ctx) }, theme = 0) { init() }
 }
 
+/** 图表view */
+inline fun ViewManager.chartview(): AAChartView = chartview {}
+inline fun ViewManager.chartview(init: (@AnkoViewDslMarker AAChartView).() -> Unit): AAChartView {
+    return ankoView({ ctx: Context -> AAChartView(ctx) }, theme = 0) { init() }
+}
+
+
+inline fun ViewManager.noScrollViewPager(): NoScrollViewPager = noScrollViewPager {}
+inline fun ViewManager.noScrollViewPager(init: (@AnkoViewDslMarker NoScrollViewPager).() -> Unit): NoScrollViewPager {
+    return ankoView({ ctx: Context -> NoScrollViewPager(ctx) }, theme = 0) { init() }
+}
+
 //inline fun ViewManager.banner(): Banner = banner { }
 //inline fun ViewManager.banner(init: (@AnkoViewDslMarker Banner).() -> Unit): Banner {
 //    return ankoView({ ctx: Context -> Banner(ctx, null) }, theme = 0) { init() }

+ 65 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/autoWidget/NoScrollViewPager.java

@@ -0,0 +1,65 @@
+package cn.muchinfo.rma.view.autoWidget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+
+import androidx.viewpager.widget.ViewPager;
+
+public class NoScrollViewPager extends ViewPager {
+
+    private boolean noScroll = true;
+
+    public NoScrollViewPager(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public NoScrollViewPager(Context context) {
+        super(context);
+    }
+
+    public void setNoScroll(boolean noScroll) {
+        this.noScroll = noScroll;
+    }
+
+    @Override
+    public void scrollTo(int x, int y) {
+        super.scrollTo(x, y);
+    }
+
+    @Override
+    protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
+        if (v instanceof NoScrollViewPager || v instanceof NoScrollViewPager || v instanceof ViewPager) {
+            return true;
+        }
+        return super.canScroll(v, checkV, dx, x, y);
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent arg0) {
+        if (noScroll)
+            return false;
+        else
+            return super.onTouchEvent(arg0);
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent arg0) {
+        if (noScroll)
+            return false;
+        else
+            return super.onInterceptTouchEvent(arg0);
+    }
+
+    @Override
+    public void setCurrentItem(int item, boolean smoothScroll) {
+        super.setCurrentItem(item, smoothScroll);
+    }
+
+    @Override
+    public void setCurrentItem(int item) {
+        super.setCurrentItem(item);
+    }
+
+}

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

@@ -17,6 +17,7 @@ import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.AccountData
 import cn.muchinfo.rma.global.data.AvaildGoodsGroupData
 import cn.muchinfo.rma.global.data.MiddleGoodsData
+import cn.muchinfo.rma.global.isBlankString
 
 import cn.muchinfo.rma.lifecycle.addObserver
 import cn.muchinfo.rma.lifecycle.getAppCompatActivity
@@ -203,14 +204,14 @@ fun AppCompatActivity.showDataSelectDialog(
     type: String = "1",
     selectTime: (String.() -> Unit)? = null
 ) {
-    val calendar = Calendar.getInstance(Locale.CHINA)
+    val calendar = Calendar.getInstance()
     DatePickerDialog(
         this,
         DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth ->
             if (type == "1") {
-                selectTime?.invoke("$year-$monthOfYear-$dayOfMonth")
+                selectTime?.invoke("$year-${monthOfYear.monthformatting()}-$dayOfMonth")//月份要加1
             } else {
-                selectTime?.invoke("$year-$monthOfYear")
+                selectTime?.invoke("$year-${monthOfYear.plus(1)}")//月份要加1
             }
         },
         calendar.get(Calendar.YEAR),
@@ -219,6 +220,22 @@ fun AppCompatActivity.showDataSelectDialog(
     ).show()
 }
 
+fun Int.monthformatting() : String{
+    return if (this < 9){
+        "0" + this.plus(1).toString()
+    }else{
+        this.plus(1).toString()
+    }
+}
+
+fun Int.dayformatting() : String{
+    return if (this < 9){
+        "0" + this.plus(1).toString()
+    }else{
+        this.plus(1).toString()
+    }
+}
+
 
 fun LifecycleOwner.createWarningDialog(
     cancelable: Boolean = false,

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

@@ -42,7 +42,7 @@ public class MangeNumberEditText2 extends FrameLayout implements View.OnClickLis
     private boolean cll = false; // true,会自动去hint的值进行赋值
     private boolean canSubOrAdd = true;//为true时可以对加减号进行操作,false时不行
     //endregion
-
+    private boolean isAddOrSub = false;//是否点击了增加减少
 
     public double getChangeValue() {
         return changeValue;

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

@@ -11,9 +11,9 @@ object Constant {
      */
 //    const val baseurl = "http://103.40.249.127:28280/cfg?key=mtp_20"
 //    const val baseurl = "http://192.168.30.125:8080/cfg?key=test_125"
-    const val baseurl = "http://192.168.31.114:8080/cfg?key=test_114" // shenzhen01  123123
+//    const val baseurl = "http://192.168.31.114:8080/cfg?key=test_114" // shenzhen01  123123
 //    const val baseurl = "http://192.168.31.220:8080/cfg?key=test_220"//李倩
-//      const val baseurl = "http://192.168.30.211:8080/cfg?key=test_211"// 瑶姐
+      const val baseurl = "http://192.168.30.211:8080/cfg?key=test_211"// 瑶姐
 
     /**
      * 用sp存储基础url的key

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

@@ -2,6 +2,9 @@ package cn.muchinfo.rma.view.base.chart;
 
 import cn.muchinfo.rma.global.GlobalDataCollection
 
+/**
+ * 数据在这里适配
+ */
 class ChartDataAdapter {
 
     fun getGoodsData() : GlobalDataCollection? {

+ 3165 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/OTCChartActivity.java

@@ -0,0 +1,3165 @@
+package cn.muchinfo.rma.view.base.chart.old;
+
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.HorizontalScrollView;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+import com.desfate.chart.event.ITouchEventResponse;
+import com.desfate.chart.ui.old.OTC.datas.SettlementPlan;
+import com.desfate.chart.ui.old.OnQuoteAddListener;
+import com.zhy.http.okhttp.OkHttpUtils;
+import com.zhy.http.okhttp.callback.StringCallback;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import cn.muchinfo.rma.R;
+import cn.muchinfo.rma.global.data.GoodsInfoAndQuotes;
+import cn.muchinfo.rma.view.base.chart.old.controls.MTPChartControl;
+import cn.muchinfo.rma.view.base.chart.old.controls.OTCChartControl;
+import okhttp3.Call;
+//
+///**
+// * 做市的图表界面
+// *
+// * @author Administrator
+// */
+//public class OTCChartActivity extends MyAppCompatActivity implements OnClickListener, ITouchEventResponse, OnQuoteAddListener, OnChartListener {
+//
+//
+//    public static boolean drwaTimeChart = true;
+//
+//    public static boolean sendState = true;
+//
+//
+//
+//    public final static int TIK = 999;
+//
+//    // 表示请求动作
+//    /**
+//     * 请求1分钟线的分时图
+//     */
+//    private static final int R_TIME_1 = 0;
+//
+//
+//
+//    // 请求缺失的1分钟数据
+//    private static final int R_R_TIME = 9;
+//    // ------------ 基础数据 -000000000000
+//    // 控制器
+//    private MTPChartControl mtpChartControl;
+//
+//    // 商品id
+//    private int goodsId;
+//
+//    // 商品组id
+//    private int groupId;
+//    // 交易所id
+//    private String exchangeId = "";
+//
+//    // 商品在商品组或列表中的序号
+//    private int index = 0;
+//
+//    // 商品id列表
+//    private ArrayList<Integer> goodsIdList = new ArrayList<Integer>();
+//
+//    // 商品名字列表
+//    private String[] goodsNames;
+//
+//    // 商品信息
+//    private GoodsInfoAndQuotes goodsInfoAndQuotes;
+//
+//    // 碎片管理器
+//    private FragmentManager fragmentManager;
+//
+//    // k线碎片
+//    private KChartFragment kChartFragment = null;
+//
+//    // 分时图碎片
+//    private TimeChartFragment timeChartFragment = null;
+//
+//    /**
+//     * 分时数据tag,用于fragmentmanager中
+//     */
+//    private final String TAG_TIME = "time";
+//    /**
+//     * 分时数据tag,用于fragmentmanager中
+//     */
+//    private final String TAG_OTHER = "other";
+//
+//    /**
+//     * k线数据tag,用于fragmentmanager中
+//     */
+//    private final String TAG_K = "k_line";
+//
+//    // 图表数据类型key,用于从数据map中取数据
+//    private int dataType = -1;// 0 分时图, 1: 1分钟, 5: 5分钟, 30: 30分钟 240: 240分钟,-1表示其他
+//
+//    // 横竖屏 标志
+//    private int orientation;
+//
+//    // 结算计划
+//    private SettlementPlan settlementPlan = null;
+//
+//    // 是否需从intent获取商品信息,当reload的时候,不需要从intent中再次获取商品信息,因为已经设置好商品信息
+//    private boolean needGetGoodsInfo = true;
+//
+//    // 碎片操作事务
+//    private FragmentTransaction fragmentTransaction;
+//
+//    // --------------------控件区--------------------
+//    private TextView chart_title;// 图表上方title
+//    private ImageButton mtp_chart_back;// 返回键
+//    private TextView mtp_chart_title;// title
+//    private TextView mtp_chart_title_code;
+//    private View mtp_back;
+//    private View mtp_chart_buy;// 买入
+//    private View mtp_chart_sale;//
+//    private View mtp_chart_buy_close;// 买平
+//    private View mtp_chart_sell_close;// 卖平
+//    private View mtp_chart_attorn_buy;// 挂牌转让入口
+//    private View mtp_chart_attorn_sell;// 挂牌出售入口
+//    private View mtp_want_sell;//我要出售
+//    private View mtp_want_purchase;//我要购买
+//    //    private SearchHoldOrderData searchHoldOrderData;// 默认显示的对应goodsid商品的第一条单据
+//    private TextView mtp_chart_alarm;// 预警
+//    private TextView mtp_choice_add;// 添加删除自选
+//    private HorizontalScrollView mtp_chart_head;//
+//
+//    private RelativeLayout buy_or_sell_layout;
+//
+//
+//    private ImageView mtp_left;// 向左选择商品
+//    private ImageView mtp_right;// 向右选择商品
+//    private View mtp_goods;// 商品名区域
+//    private TextView goodsCodeTxt;// goodsCode显示区域
+//
+//
+//    // ----------------- tab区域 -----------------
+//
+//
+//    // 当前选择的tab
+//    private TextView currentTab = null;
+//
+//    private TextView mtp_time_chart;
+//    private TextView mtp_time_chart_b;
+//
+//    private TextView mtp_one_chart;
+//    private TextView mtp_one_chart_b;
+//
+//    private TextView mtp_five_chart;
+//    private TextView mtp_five_chart_b;
+//
+//    private TextView mtp_thirty_chart;
+//    private TextView mtp_thirty_chart_b;
+//
+//    private TextView mtp_one_hour_chart;
+//    private TextView mtp_one_hour_chart_b;
+//
+//    private TextView mtp_two_hour_chart;
+//    private TextView mtp_two_hour_chart_b;
+//
+//    private TextView mtp_four_hour_chart;
+//    private TextView mtp_four_hour_chart_b;
+//
+//    private TextView mtp_one_day_chart;
+//    private TextView mtp_one_day_chart_b;
+//
+//    // 买
+//    private TextView mtp_buy_value;
+//
+//    // 高
+//    private TextView mtp_high_value;
+//
+//    // 低
+//    private TextView mtp_low_value;
+//
+//    // 卖
+//    private TextView mtp_sale_value;
+//
+//    // 买入卖出等点击view
+//    private View buy_sale;
+//
+//    // 是否将图表重置
+//    private boolean reset = true;
+//
+//    // 现价
+//    private TextView mtp_now_price;
+//
+//    private TextView mtp_chart_opend_title; //今开标题
+//    // 今开
+//    private TextView mtp_chart_opend;
+//
+//    // 昨收
+//    private TextView mtp_chart_pre_close;
+//    private TextView mtp_pre_close;// 坐收
+//
+//    private TextView mtp_zhenfu_title; //振幅标题
+//    // 振幅
+//    private TextView mtp_zhenfu;
+//
+//    // 涨跌
+//    private TextView mtp_zhangdie;
+//
+//    // 涨幅
+//    private TextView mtp_zhangfu;
+//
+//    // 昨结算
+//    private TextView mtp_pre_settle;
+//
+//    private boolean isOncreate = true;
+//    private boolean isActivityResult = false; // 日线从另一界面返回
+//
+//    public TextView getMtpNowPrice() {
+//        return mtp_now_price;
+//    }
+//
+//    /**
+//     * 成功
+//     */
+//    private static final int Success = 0;
+//
+//    /**
+//     * 回应错误
+//     */
+//    private static final int ResponseError = 1;
+//
+//    /**
+//     * 回应数据文空
+//     */
+//    private static final int ResponseNull = 2;
+//
+//    /**
+//     * 超时
+//     */
+//    private static final int TimeOut = 3;
+//
+//    /**
+//     * 网络错误
+//     */
+//    private static final int NetError = 4;
+//
+//    private long lastRqMillisecond = 0;
+//
+//    private TenMarketQuotationView view;
+//
+//    @Override
+//    protected void onCreate(Bundle arg0) {
+//        drwaTimeChart = true;
+//        super.onCreate(arg0);
+//        setContentView(R.layout.chart_otc_chart);
+//        fragmentManager = getSupportFragmentManager();
+//        mtpChartControl = OTCChartControl.getInstance(this);
+//
+//        initViews();
+//        initListeners();
+//        initDatas();
+//        OTCChartControl.getInstance(this).setActivity(this);
+//
+//        mtp_chart_head.setVisibility(View.VISIBLE);
+//        chart_title.setVisibility(View.VISIBLE);
+//        loadTimeChartFragment();
+//        timeChartFragment.hideLineChart();
+//        dataType = ChartConstant.TIME;
+//        mtpChartControl.setCurrentTab(dataType);
+//
+//    }
+//
+//    @Override
+//    protected void onStart() {
+//        super.onStart();
+//    }
+//
+//
+//    private void initViews() {
+//        mtp_pre_close = findViewById(R.id.mtp_pre_close);
+//        mtp_now_price = findViewById(R.id.mtp_now_price);
+//        mtp_chart_opend_title = findViewById(R.id.mtp_chart_opend_title);
+//        mtp_chart_opend = findViewById(R.id.mtp_chart_opend);
+//        mtp_chart_pre_close = findViewById(R.id.mtp_chart_pre_close);
+//        mtp_zhenfu_title = findViewById(R.id.mtp_zhenfu_title);
+//        mtp_zhenfu = findViewById(R.id.mtp_zhenfu);
+//        mtp_zhangdie = findViewById(R.id.mtp_zhangdie);
+//        mtp_zhangfu = findViewById(R.id.mtp_zhangfu);
+//        mtp_pre_settle = findViewById(R.id.mtp_pre_settle);
+//
+//        mtp_chart_title_code = findViewById(R.id.mtp_chart_title_code);
+//
+//        mtp_chart_back = findViewById(R.id.mtp_chart_back);
+//        mtp_chart_title = findViewById(R.id.mtp_chart_title);
+//        mtp_back = findViewById(R.id.chart_back);
+//        mtp_chart_buy = findViewById(R.id.mtp_chart_buy);
+//        mtp_chart_sale = findViewById(R.id.mtp_chart_sell);
+//        mtp_chart_buy_close = findViewById(R.id.mtp_chart_buy_close);
+//        mtp_chart_sell_close = findViewById(R.id.mtp_chart_sell_close);
+//        mtp_chart_attorn_buy = findViewById(R.id.mtp_chart_attorn_buy);
+//        mtp_chart_attorn_sell = findViewById(R.id.mtp_chart_attorn_sell);
+//
+//        mtp_want_sell = findViewById(R.id.mtp_want_sell);
+//        mtp_want_purchase = findViewById(R.id.mtp_want_purchase);
+//        mtp_time_chart = findViewById(R.id.mtp_time_chart);
+//        mtp_choice_add = findViewById(R.id.mtp_choice_add);
+//        if(Config.ZJREDESIGNSTATE && GlobalDataCollention.getInstance().isTouristor()){
+//            mtp_choice_add.setVisibility(View.GONE);
+//        }else{
+//            mtp_choice_add.setVisibility(View.VISIBLE);
+//        }
+//        currentTab = mtp_time_chart;
+//        mtp_time_chart_b = findViewById(R.id.mtp_time_chart_b);
+//        chart_title = findViewById(R.id.chart_title);
+//        mtp_chart_head = findViewById(R.id.mtp_chart_head);
+//        mtp_one_chart = findViewById(R.id.mtp_one_chart);
+//        mtp_one_chart_b = findViewById(R.id.mtp_one_chart_b);
+//
+//        mtp_five_chart = findViewById(R.id.mtp_five_chart);
+//        mtp_five_chart_b = findViewById(R.id.mtp_five_chart_b);
+//
+//        mtp_thirty_chart = findViewById(R.id.mtp_thirty_chart);
+//        mtp_thirty_chart_b = findViewById(R.id.mtp_thirty_chart_b);
+//
+//        mtp_one_hour_chart = findViewById(R.id.mtp_one_hour_chart);
+//        mtp_one_hour_chart_b = findViewById(R.id.mtp_one_hour_chart_b);
+//
+//        mtp_two_hour_chart = findViewById(R.id.mtp_two_hour_chart);
+//        mtp_two_hour_chart_b = findViewById(R.id.mtp_two_hour_chart_b);
+//
+//        mtp_four_hour_chart = findViewById(R.id.mtp_four_hour_chart);
+//        mtp_four_hour_chart_b = findViewById(R.id.mtp_four_hour_chart_b);
+//
+//        mtp_one_day_chart = findViewById(R.id.mtp_one_day_chart);
+//        mtp_one_day_chart_b = findViewById(R.id.mtp_one_day_chart_b);
+//
+//        buy_or_sell_layout = findViewById(R.id.buy_or_sell_layout);
+//
+//        buy_sale = findViewById(R.id.mtp_chart_bottom);
+//        mtp_buy_value = findViewById(R.id.mtp_buy_value);
+//        mtp_high_value = findViewById(R.id.mtp_high_value);
+//        mtp_low_value = findViewById(R.id.mtp_low_value);
+//        mtp_sale_value = findViewById(R.id.mtp_sale_value);
+//        mtp_goods = findViewById(R.id.mtp_goods);
+//        mtp_left = findViewById(R.id.mtp_left);
+//        mtp_right = findViewById(R.id.mtp_right);
+//        setTabSelect(R.id.mtp_time_chart);
+//    }
+//
+//    private void initListeners() {
+//        mtp_goods.setOnClickListener(this);
+//        mtp_chart_back.setOnClickListener(this);
+//        mtp_chart_buy.setOnClickListener(this);
+//        mtp_chart_sale.setOnClickListener(this);
+//        mtp_chart_buy_close.setOnClickListener(this);
+//        mtp_chart_sell_close.setOnClickListener(this);
+//        mtp_choice_add.setOnClickListener(this);
+//        mtp_time_chart.setOnClickListener(l);
+//        mtp_one_chart.setOnClickListener(l);
+//        mtp_five_chart.setOnClickListener(l);
+//        mtp_thirty_chart.setOnClickListener(l);
+//        mtp_one_hour_chart.setOnClickListener(l);
+//        mtp_two_hour_chart.setOnClickListener(l);
+//        mtp_four_hour_chart.setOnClickListener(l);
+//        mtp_one_day_chart.setOnClickListener(l);
+//        mtp_left.setOnClickListener(this);
+//        mtp_right.setOnClickListener(this);
+//        mtp_chart_attorn_buy.setOnClickListener(this);
+//        mtp_chart_attorn_sell.setOnClickListener(this);
+//        mtp_want_sell.setOnClickListener(this);
+//        mtp_want_purchase.setOnClickListener(this);
+//    }
+//
+//    /**
+//     * 挂摘牌模式时只显示我要购买和我要出售,其他全部隐藏
+//     */
+//    private void delistingModeShow() {
+//        //期权模式  今开  昨收  振幅  都改成其他
+//        if (getTradeMode() != -1) {
+//            if (getTradeMode() == MTPEnums.TRADEMODE_OPTION) {  //期权模式
+//                mtp_chart_opend_title.setText(getString(R.string.BUSINESS_MOUNT));
+//                if(Config.ZYSTATE){
+//                    mtp_chart_opend_title.setVisibility(View.INVISIBLE);
+//                }else{
+//                    mtp_chart_opend_title.setVisibility(View.VISIBLE);
+//                }
+//                mtp_pre_close.setText(getString(R.string.BUSINESS_KEEPUNIT));
+//                mtp_zhenfu_title.setText(getString(R.string.BUSINESS_AMOUNT));
+//            } else {
+//                mtp_chart_opend_title.setText(getString(R.string.chart_kaipan));
+//                mtp_pre_close.setText(getString(R.string.chart_pre_settle));
+//                mtp_zhenfu_title.setText(getString(R.string.chart_zhengfu));
+//            }
+//        }
+//
+//        if (ParamConfigData.DisplayMode == 2) {
+//            //挂摘牌模式显示我要购买我要出售
+//            mtp_want_sell.setVisibility(View.VISIBLE);
+//            mtp_want_purchase.setVisibility(View.VISIBLE);
+//            mtp_chart_buy_close.setVisibility(View.GONE);
+//            mtp_chart_sell_close.setVisibility(View.GONE);
+//            mtp_chart_sale.setVisibility(View.GONE);
+//            mtp_chart_buy.setVisibility(View.GONE);
+//            mtp_chart_attorn_sell.setVisibility(View.GONE);
+//            mtp_chart_attorn_buy.setVisibility(View.GONE);
+//
+//        }
+//    }
+//
+//    /**
+//     * 加载分时图 <li>分时图和K线图同时存在,有可能引起刷新卡的问题,后期真机调试再看具体情况
+//     */
+//    private void loadTimeChartFragment() {
+//        if (currentTab == mtp_time_chart) {
+//            fragmentTransaction = fragmentManager.beginTransaction();
+//            if (fragmentManager.findFragmentByTag(TAG_TIME) != null) {
+//                timeChartFragment = (TimeChartFragment) fragmentManager.findFragmentByTag(TAG_TIME);
+//            } else {
+//                timeChartFragment = new TimeChartFragment();
+//                timeChartFragment.setGoods(goodsInfoAndQuotes);
+//            }
+//            if (timeChartFragment.isAdded()) {
+//                fragmentTransaction.show(timeChartFragment);
+//                if (kChartFragment != null) {
+//                    fragmentTransaction.hide(kChartFragment);
+//                }
+//                fragmentTransaction.commit();
+//                return;
+//            }
+//            fragmentTransaction.add(R.id.mtp_chart_container, timeChartFragment, TAG_TIME);
+//            fragmentTransaction.commit();
+//        }
+//    }
+//
+//    @Override
+//    public void onWindowFocusChanged(boolean hasFocus) {
+//        super.onWindowFocusChanged(hasFocus);
+//        if (hasFocus && timeChartFragment != null) {
+//            timeChartFragment.show(getResources().getString(R.string.chart_loading_data), true, new LocalHandleListener() {
+//
+//                @Override
+//                public void onTimeOut() {
+//                    if (currentTab.getId() == R.id.mtp_time_chart) {
+//                        timeChartFragment.setNoneState(View.VISIBLE);
+//                        timeChartFragment.hideLineChart();
+//                    }
+//                }
+//            });
+//            requestSettlementPlan();
+//        }
+//    }
+//
+//    /**
+//     * 加载K图表 <li>分时图和K线图同时存在,有可能引起刷新卡的问题,后期真机调试再看具体情况
+//     */
+//    private void loadKChartFragment(String line) {
+//        if (currentTab != mtp_time_chart) {
+//            fragmentTransaction = fragmentManager.beginTransaction();
+//            if (fragmentManager.findFragmentByTag(TAG_K) != null) {
+//                kChartFragment = (KChartFragment) fragmentManager.findFragmentByTag(TAG_K);
+//            } else {
+//                kChartFragment = new KChartFragment();
+//            }
+//
+//            kChartFragment.setCurrentLine(line);// K线的变化 ,通知K线碎片;
+//
+//            if (kChartFragment.isAdded()) {// 如果已经添加,就直接显示出来。
+//                fragmentTransaction.show(kChartFragment);
+//                if (timeChartFragment != null) {
+//                    fragmentTransaction.hide(timeChartFragment);
+//                }
+//                fragmentTransaction.commit();
+//                return;
+//            }
+//            fragmentTransaction.add(R.id.mtp_chart_container, kChartFragment, TAG_K);
+//            fragmentTransaction.commitAllowingStateLoss();
+//        }
+//    }
+//
+//    /**
+//     * 得到goodsInfo
+//     */
+//    private void makeGoodsInfo() {
+//        if (getIntent() != null) {
+//            if (needGetGoodsInfo) {  //是否需要获取商品信息
+//                goodsId = getIntent().getIntExtra("key_goodsId", 0);  //按商品自己的id
+//                groupId = getIntent().getIntExtra("key_groupId", 0);  //按市场分类
+//                needGetGoodsInfo = false;
+//            }
+//            if (goodsId != 0) {
+//                mtpChartControl.setGoodsId(goodsId);
+//                goodsInfoAndQuotes = GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsId);   //获取商品信息
+//                try {
+//                    //当前没有游客登录
+////                if (GlobalDataCollention.getInstance().getLoginData() == null) {// 应该是游客登录
+//                    exchangeId = goodsInfoAndQuotes.getExchangeHqCode();
+////                } else {
+////                    exchangeId = String.valueOf(GlobalDataCollention.getInstance().getLoginData().getExchId());// 向唐公子确认过
+////                }
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//
+//
+//            // 如果传了商品组id,计算商品序号,设置数据等  没有之前的商品组了 现在按市场分类  重新组装数据
+//            if (groupId != 0) {
+//
+//                List<GoodsInfoData> goodsInfoData = new ArrayList<>();   //商品数据
+//                goodsInfoData = GlobalDataCollention.getInstance().getMarketAndGoods().get(groupId);
+//
+//                if (goodsInfoData == null || goodsInfoData.isEmpty()) {
+//                    return;
+//                }
+//
+//                if (goodsInfoData.size() == 0) {
+//                    setLeftRightState();
+//                    return;
+//                }
+//                setGoodsInfo(goodsInfoData);
+//
+//                return;
+//
+//            } else {
+//                List<GoodsInfoData> goodsInfoData = new ArrayList<>();   //商品数据
+//                // 如果没传商品id,则为自选,获取自选商品信息
+//                goodsInfoData = GlobalDataCollention.getInstance().getGoodsWithIds(SqliteOperateInstance.getInstance().searchDBMarketChoice());
+//                setGoodsInfo(goodsInfoData);
+//            }
+//        }
+//    }
+//
+//    /**
+//     * 设置商品信息
+//     *
+//     * @param goodsInfoData
+//     */
+//    private void setGoodsInfo(List<GoodsInfoData> goodsInfoData) {
+//    	if(goodsInfoData == null){
+//    		return ;
+//    	}
+//        goodsNames = new String[goodsInfoData.size()];
+//        goodsIdList.clear();  //清空商品id列表
+//        int key = 0;
+//        for (GoodsInfoData goodsInfoItem : goodsInfoData) {
+//            if (goodsInfoItem.getMarketID() == groupId) {
+//                goodsIdList.add(goodsInfoItem.getGoodsId());       //设置商品id列表
+//                goodsNames[key] = goodsInfoItem.getGoodsName();  //设置商品名称列表
+//                key++;
+//            }
+//        }
+//        if (goodsIdList != null && goodsIdList.size() > 0) {
+//            goodsInfoAndQuotes = GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsIdList.get(index));   //获取商品信息
+//        }
+//        setLeftRightState();
+//    }
+//
+//    /**
+//     * 初始化数据
+//     */
+//    private void initDatas() {
+//        lastRqMillisecond = 0;
+//        makeGoodsInfo();  //获取商品信息
+//
+//        if (goodsInfoAndQuotes == null) {
+//            showToast(R.string.chart_data_error);
+//            mtp_now_price.setText("--");
+//            mtp_pre_settle.setText("--");
+//            finish();
+//            return;
+//        }
+//        // 设置title
+//        try {
+//            mtp_chart_title.setText(goodsInfoAndQuotes.getGoodsInfo().getGoodsName());
+//            mtp_chart_title_code.setText(goodsInfoAndQuotes.getGoodsInfo().getGoodsCode());
+//            if (GlobalDataCollention.getInstance().getAccountInfoData() != null) {// 正常登陆
+//                // 添加我的自选的状态  判断是都添加了自选
+//                if (SqliteOperateInstance.getInstance().checkDBMarketChoice(goodsId + ""))
+//                    delChoice(true);
+//                Drawable top = getResources().getDrawable(R.mipmap.search_add);
+//                mtp_choice_add.setCompoundDrawablesRelativeWithIntrinsicBounds(null, top, null, null);
+//            } else {
+//                delChoice(false);
+//                Drawable top = getResources().getDrawable(R.mipmap.search_sub);
+//                mtp_choice_add.setCompoundDrawablesRelativeWithIntrinsicBounds(null, top, null, null);
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//        // 设置高低买卖
+//        refreshBSHL();
+//        makePankou();// 盘口相关
+//        int decimalPlace = 0;
+//        try {
+//            decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//            if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPrice())) {
+//                mtp_now_price.setText("--");
+//                mtp_now_price.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//            } else {
+//                mtp_now_price.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPrice(), decimalPlace));
+////                if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                    // 红涨
+////                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_up_color));
+////                } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                    // 绿跌
+////                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_down_color));
+////                }
+//                TextViewColorUtils.setMyTextColor(mtp_now_price, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//            }
+//
+//            if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+//                mtp_pre_settle.setText("--");
+//            } else {
+//                mtp_pre_settle.setText(MathUtil.roundNum(goodsInfoAndQuotes.getQuoteDay().getPreSettle(), decimalPlace));
+//            }
+//        }
+//
+//        showBottom();
+//
+//        delistingModeShow();
+//    }
+//
+//
+//    /**
+//     * 是否支持挂牌转让
+//     *
+//     * @return
+//     */
+//    private boolean supportAttorn() {
+//        return Config.QUOTED_TRANSFER;
+//    }
+//
+//    /**
+//     * 底部显示的按钮
+//     */
+//    private void showBottom() {
+//
+//        if (SqliteOperateInstance.getInstance().checkDBMarketChoice(String.valueOf(goodsId))) {
+//            Drawable drawable = getResources().getDrawable(R.mipmap.search_sub);
+//            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+//            mtp_choice_add.setCompoundDrawables(null, drawable, null, null);
+//            mtp_choice_add.setText(getString(R.string.p_add_success));
+//
+//        } else {
+//            Drawable drawable = getResources().getDrawable(R.mipmap.search_add);
+//            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+//            mtp_choice_add.setCompoundDrawables(null, drawable, null, null);
+//            mtp_choice_add.setText(getString(R.string.chart_add_choice));
+//
+//        }
+//            // 挂牌转让跳入
+//        mtp_chart_buy_close.setVisibility(View.GONE);
+//        mtp_chart_sell_close.setVisibility(View.GONE);
+//        mtp_chart_sale.setVisibility(View.GONE);
+//        mtp_chart_attorn_buy.setVisibility(View.VISIBLE);
+//        mtp_chart_buy.setVisibility(View.GONE);
+//        mtp_chart_attorn_sell.setVisibility(View.GONE);
+//        mtp_choice_add.setVisibility(View.VISIBLE);
+//
+//    }
+//
+//    /**
+//     * 交易模式
+//     *
+//     * @return
+//     */
+//    public int getTradeMode() {
+//        if (goodsInfoAndQuotes != null) {
+//            return goodsInfoAndQuotes.getTradeMode();
+//        } else {
+//            return -1;
+//        }
+//    }
+//
+//    /**
+//     * 设置盘口数据
+//     */
+//    private void makePankou() {
+//        if (goodsInfoAndQuotes == null || goodsInfoAndQuotes.getQuoteDay() == null) {
+//            return;
+//        }
+//
+//        try {
+//            int decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//
+//            if (getTradeMode() == MTPEnums.TRADEMODE_OPTION) {  //期权模式
+//                BidQuoteDay bidDay = (BidQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//                //    <!-- 期权交易 -->
+//                //成交量 持仓量  周期/行权日
+//                if (bidDay != null) {
+//                    //设置成交量
+//                    mtp_chart_opend.setText(bidDay.getTotalVolume());
+//                    if(Config.ZYSTATE){
+//                        mtp_chart_opend.setVisibility(View.INVISIBLE);
+//                    }else{
+//                        mtp_chart_opend.setVisibility(View.VISIBLE);
+//                    }
+//                    //设置持仓量
+//                    mtp_chart_pre_close.setText(bidDay.getHoldVolume());
+//                    //周期/行权日
+//                    mtp_zhenfu.setText("T +" + GlobalDataCollention.getInstance().getOptionParamByGoodsId(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGoodsId())).getExpirecycle());
+//                }
+//
+//                buy_or_sell_layout.setVisibility(View.INVISIBLE);
+//            } else {
+//                if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getOpened())) {
+//                    mtp_chart_opend.setText("--");
+//                    mtp_chart_opend.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//                } else {
+//                    mtp_chart_opend.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getOpened(), decimalPlace));
+//                    TextViewColorUtils.setMyTextColor(mtp_chart_opend, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+////                    if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) > Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                        // 红涨
+////                        mtp_chart_opend.setTextColor(getResources().getColor(R.color.p_up_color));
+////                    } else if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) < Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                        // 绿跌
+////                        mtp_chart_opend.setTextColor(getResources().getColor(R.color.p_down_color));
+////                    } else if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) == Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                        // 黑色
+////                        mtp_chart_opend.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////                    }
+//                }
+//                mtp_chart_pre_close.setText(MathUtil.roundNoNum(goodsInfoAndQuotes.getQuoteDay().getPreSettle(), decimalPlace));
+//                if (goodsInfoAndQuotes.getQuoteDay().getAmplitude() == null || goodsInfoAndQuotes.getQuoteDay().getAmplitude().isEmpty()
+//                        || goodsInfoAndQuotes.getQuoteDay().getAmplitude().equals("0")) {
+//                    mtp_zhenfu.setText("--");
+//                } else {
+//                    if(goodsInfoAndQuotes.getQuoteDay().getAmplitude().equals("--")){
+//                        mtp_zhenfu.setText("--");
+//                    }else {
+//                        mtp_zhenfu.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getAmplitude(), 2) + "%");
+//                        double zf = Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getAmplitude());
+//                        if (zf == 0) {
+//                            mtp_zhenfu.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//                        } else if (zf > 0) {
+//                            mtp_zhenfu.setTextColor(getResources().getColor(R.color.p_up_color));
+//                        } else if (zf < 0) {
+//                            mtp_zhenfu.setTextColor(getResources().getColor(R.color.p_down_color));
+//                        }
+//                    }
+//
+//                }
+//
+//                buy_or_sell_layout.setVisibility(View.VISIBLE);
+//            }
+//
+//
+//
+//
+//            if (goodsInfoAndQuotes.getQuoteDay().getUpDownValue() == null || goodsInfoAndQuotes.getQuoteDay().getUpDownValue().isEmpty()
+//                    || goodsInfoAndQuotes.getQuoteDay().getUpDownValue().equals("--")) {
+//                mtp_zhangdie.setText("--");
+//                mtp_zhangdie.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//            } else {
+//                mtp_zhangdie.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getUpDownValue(), goodsInfoAndQuotes.getGoodsInfo()
+//                        .getDecimalPlace()));
+//                TextViewColorUtils.setMyTextColorPersent(mtp_zhangdie, Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getUpDownValue(), goodsInfoAndQuotes.getGoodsInfo()
+//                        .getDecimalPlace()), "0");
+//            }
+//
+//            if (goodsInfoAndQuotes.getQuoteDay().getUpDownRange() == null || goodsInfoAndQuotes.getQuoteDay().getUpDownRange().isEmpty()
+//                    || goodsInfoAndQuotes.getQuoteDay().getUpDownRange().equals("--")) {
+//                mtp_zhangfu.setText("--");
+//                mtp_zhangfu.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//            } else {
+//                StringBuilder sb = new StringBuilder().append(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getUpDownRange(), 2)).append("%");
+//                mtp_zhangfu.setText(sb.toString());
+//                TextViewColorUtils.setMyTextColorPersent(mtp_zhangfu, Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getUpDownRange(), 2), "0");
+//            }
+//
+//
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//    }
+//
+//    /**
+//     * 刷新高低买卖
+//     */
+//    private void refreshBSHL() {
+//        if (goodsInfoAndQuotes == null || goodsInfoAndQuotes.getQuoteDay() == null) {
+//            mtp_sale_value.setText("--");
+//            mtp_buy_value.setText("--");
+//            mtp_high_value.setText("--");
+//            mtp_low_value.setText("--");
+//            return;
+//        }
+//
+//        // 设置高低买卖
+//        int decial = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//        if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getAsk())) {
+//            mtp_sale_value.setText("--");
+//            mtp_sale_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        } else {
+//            mtp_sale_value.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getAsk(), decial));
+////            if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                // 红涨
+////                mtp_sale_value.setTextColor(getResources().getColor(R.color.p_up_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                // 绿跌
+////                mtp_sale_value.setTextColor(getResources().getColor(R.color.p_down_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 0) {
+////                // 黑色
+////                mtp_sale_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////            }
+//            TextViewColorUtils.setMyTextColor(mtp_sale_value, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//        }
+//
+//        if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getBid())) {
+//            mtp_buy_value.setText("--");
+//        } else {
+//            mtp_buy_value.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getBid(), decial));
+////            if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                // 红涨
+////                mtp_buy_value.setTextColor(getResources().getColor(R.color.p_up_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                // 绿跌
+////                mtp_buy_value.setTextColor(getResources().getColor(R.color.p_down_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 0) {
+////                // 黑色
+////                mtp_buy_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////            }
+//            TextViewColorUtils.setMyTextColor(mtp_buy_value, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//        }
+//
+//        if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getHighest())) {
+//            mtp_high_value.setText("--");
+//            mtp_high_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        } else {
+//            mtp_high_value.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getHighest(), decial));
+//            TextViewColorUtils.setMyTextColor(mtp_high_value, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+////            if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                // 红涨
+////                mtp_high_value.setTextColor(getResources().getColor(R.color.p_up_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                // 绿跌
+////                mtp_high_value.setTextColor(getResources().getColor(R.color.p_down_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 0) {
+////                // 黑色
+////                mtp_high_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////            }
+//        }
+//        if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getLowest())) {
+//            mtp_low_value.setText("--");
+//            mtp_low_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        } else {
+//            mtp_low_value.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getLowest(), decial));
+//            TextViewColorUtils.setMyTextColor(mtp_low_value, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+////            if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()) > Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                // 红涨
+////                mtp_low_value.setTextColor(getResources().getColor(R.color.p_up_color));
+////            } else if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()) < Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                // 绿跌
+////                mtp_low_value.setTextColor(getResources().getColor(R.color.p_down_color));
+////            } else if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()) == Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                // 黑色
+////                mtp_low_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////            }
+//        }
+//    }
+//
+//    /**
+//     * <li>只提供给tab使用的事件
+//     */
+//    OnClickListener l = new OnClickListener() {
+//        @Override
+//        public void onClick(View v) {
+//
+//            if (currentTab == v) {
+//                return;
+//            }
+//            chart_title.setText("");
+//            currentTab = (TextView) v;// 全局保存当前的tab
+//            setTabSelect(v.getId());// 改变状态
+//            switch (v.getId()) {
+//                case R.id.mtp_time_chart:// 分时图
+//                    dataType = ChartConstant.TIME;
+//                    timeChartFragment.hideLineChart();
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadTimeChartFragment();
+//                    timeChartFragment.show(getResources().getString(R.string.chart_loading_data), true, new LocalHandleListener() {
+//
+//                        @Override
+//                        public void onTimeOut() {
+//                            timeChartFragment.setNoneState(View.VISIBLE);
+//                        }
+//                    });
+//                    requestSettlementPlan();
+//                    // 考虑到数据将要缓存,不能够每次点击都直接请求了
+//                    // 如果是横屏,使用1分钟数据画分时图
+//                    break;
+//                case R.id.mtp_one_chart:// 1分钟线
+//                    dataType = ChartConstant.K_1;
+//                    reset = true;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M1);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute, MTPEnums.R_K_1);
+//                    break;
+//                case R.id.mtp_five_chart:// 5分钟线
+//                    reset = true;
+//                    dataType = ChartConstant.K_5;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M5);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute5, MTPEnums.R_K_5);
+//                    break;
+//                case R.id.mtp_thirty_chart:// 30分钟线
+//                    reset = true;
+//                    dataType = ChartConstant.K_30;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M30);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                    break;
+//                case R.id.mtp_one_hour_chart:// 1小时线
+//                    reset = true;
+//                    dataType = ChartConstant.K_60;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M60);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+////				FIXME requestKChartData(MTPEnums.HistoryData_Minute60, R_K_60);
+//                    requestKChartData(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                    break;
+//                case R.id.mtp_two_hour_chart:
+//                    reset = true;
+//                    dataType = ChartConstant.K_120;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M120);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//
+//                    break;
+//                case R.id.mtp_four_hour_chart:
+//                    reset = true;
+//                    dataType = ChartConstant.K_240;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M240);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                    break;
+//                case R.id.mtp_one_day_chart:
+//                    reset = true;
+//                    dataType = ChartConstant.K_DAY;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_DAY);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Day, MTPEnums.R_K_DAY);
+//                    break;
+//                default:
+//                    break;
+//            }
+//        }
+//    };
+//
+//
+//    /**
+//     * 请求分时图数据
+//     */
+//    public void requestTimeChartData() {
+//        dataType = ChartConstant.TIME;
+//        timeChartFragment.hideLineChart();
+//        mtpChartControl.setCurrentTab(dataType);
+//        loadTimeChartFragment();
+//        timeChartFragment.show(getResources().getString(R.string.chart_loading_data), true, new LocalHandleListener() {
+//
+//            @Override
+//            public void onTimeOut() {
+//                timeChartFragment.setNoneState(View.VISIBLE);
+//            }
+//        });
+//        // 先请求结算计划
+//        requestSettlementPlan();
+//    }
+//
+//    public SettlementPlan getSettlementPlan() {
+//        return settlementPlan;
+//    }
+//
+//
+//
+//    /**
+//     * 请求结算计划
+//     */
+//    private void requestSettlementPlan() {
+//        if(goodsInfoAndQuotes.getTradeMode() == 99){  //99行情的情况  结算计划就不是从proto请求来的  是从通用查询请求来的
+//            NinetyNineMarketUtils.QueryQuoteSource();
+//            NinetyNineMarketUtils.QuerySummerTime();  //请求夏令时
+//        }else{
+//            if(Config.ZJREDESIGNSTATE && GlobalDataCollention.getInstance().isTouristor()){
+//                Calendar calendar = Calendar.getInstance();
+//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                int week = TimeUtils.getWeek(sdf.format(calendar.getTime()), "yyyy-MM-dd HH:mm:ss");
+//
+//                OkHttpUtils.get()
+//                        .url(AddressConfig.AUTH_LOGIN_ADDRESS +"/common/query2?statementid=marketRunSectiionQueryReq")
+//                        .addParams("data", "{\"tradeWeekDay\":\"" + week + "\"}")
+//                        .build()
+//                        .execute(new StringCallback() {
+//                            @Override
+//                            public void onError(Call call, Exception e, int id) {
+//                            }
+//
+//                            @Override
+//                            public void onResponse(String response, int id) {
+//                                VisitorTools.resolveSettleInfo(response);
+//                                SettlementData();
+//                            }
+//                        });
+//            }else {
+//                SettlementModel model = new SettlementModel();  //请求结算计划
+//                model.RequestSettlement();
+//            }
+//        }
+//    }
+//
+//    private void requestKLastchartData() {
+//        switch (dataType) {
+//            case ChartConstant.K_1:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute, MTPEnums.R_K_1);
+//                break;
+//            case ChartConstant.K_5:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute5, MTPEnums.R_K_5);
+//                break;
+//            case ChartConstant.K_30:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                break;
+//            case ChartConstant.K_60:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                break;
+//            case ChartConstant.K_120:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                break;
+//            case ChartConstant.K_240:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                break;
+//            case ChartConstant.K_DAY:
+//                if (!isActivityResult) {
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    isActivityResult = false;
+//                }
+//                requestKChartDataLast(MtpConstant.HistoryData_Day, MTPEnums.R_K_DAY);
+//                break;
+//
+//            default:
+//                break;
+//        }
+//    }
+//
+//
+//    /**
+//     * 重新设置数据
+//     */
+//    private void reload() {
+//        // super.onCreate(bundle);
+//        setContentView(R.layout.chart_otc_chart);
+//        initViews();
+//        initListeners();
+//        initDatas();
+//
+//        loadTimeChartFragment();
+//
+//        mtp_chart_head.setVisibility(View.VISIBLE);
+//        chart_title.setVisibility(View.VISIBLE);
+//        fragmentTransaction = fragmentManager.beginTransaction();
+//        timeChartFragment = new TimeChartFragment();
+//        // 需要先移除旧的
+//        if (kChartFragment != null) {
+//            fragmentTransaction.remove(kChartFragment);
+//        }
+//        timeChartFragment.setGoods(goodsInfoAndQuotes);
+//        fragmentTransaction.show(timeChartFragment);
+//        // fragmentTransaction.commit();
+//        fragmentTransaction.add(R.id.mtp_chart_container, timeChartFragment, TAG_TIME);
+//        fragmentTransaction.commit();
+//        // loadTimeChartFragment();
+//        dataType = ChartConstant.TIME;
+//        mtpChartControl.setCurrentTab(dataType);
+//        // 缓冲加载
+//        new Handler().postDelayed(new Runnable() {
+//            @Override
+//            public void run() {
+//                requestSettlementPlan();
+//                requestHistoryTikData();
+//            }
+//        }, 1000);
+//
+//    }
+//
+//    /**
+//     * 商品左右切换状态处理
+//     */
+//    private void setLeftRightState() {
+////        if (goodsIdList == null || goodsIdList.isEmpty()) {
+////            mtp_left.setVisibility(View.INVISIBLE);
+////            mtp_right.setVisibility(View.INVISIBLE);
+////            return;
+////        }
+////
+////        if (goodsIdList.size() == 1) {
+////            mtp_left.setVisibility(View.INVISIBLE);
+////            mtp_right.setVisibility(View.INVISIBLE);
+////            return;
+////        }
+//
+//        mtp_left.setVisibility(View.GONE);
+//        mtp_right.setVisibility(View.GONE);
+//
+//        int index = 0;
+//        for (Integer goodsId : goodsIdList) {
+//            if (goodsId == this.goodsId) {
+//                this.index = index;
+//                break;
+//            }
+//            index++;
+//        }
+//    }
+//
+//    // 点击左边
+//    private void leftClick() {
+//        if (goodsIdList == null || goodsIdList.size() == 0) {
+//            return;
+//        }
+//
+//        if (index <= 0) {
+//            index = goodsIdList.size() - 1;
+//        } else {
+//            index--;
+//        }
+//        goodsId = goodsIdList.get(index);
+//        setLeftRightState();
+//        reload();
+//    }
+//
+//    // 点击右边
+//    private void rightClick() {
+//        if (goodsIdList == null || goodsIdList.size() == 0) {
+//            return;
+//        }
+//        if (index == goodsIdList.size() - 1) {
+//            index = 0;
+//        } else {
+//            index++;
+//        }
+//        goodsId = goodsIdList.get(index);
+//        setLeftRightState();
+//        reload();
+//    }
+//
+//    @Override
+//    public void onClick(View v) {
+//        switch (v.getId()) {
+//            case R.id.mtp_goods:
+//                if (goodsIdList == null || goodsIdList.isEmpty() || goodsIdList.size() == 1) {
+//                    // 如果只有一个商品 不弹出商品选择
+//                    return;
+//                }
+//
+//                CustomDialog customDialog = new CustomDialog(this, new OnCustomClickItemListener() {
+//                    @Override
+//                    public void onItemClick(int position, Object object, AdapterView<?> arg0) {
+//                        goodsId = goodsIdList.get(position);
+//                        reload();
+//                    }
+//                }).setCustomTitle(R.string.chart_choice_goods).setCustomMessage(goodsNames);
+//                if (this != null && !this.isFinishing()) {
+//                    customDialog.show();
+//                }
+//                break;
+//
+//            case R.id.mtp_left:
+//                leftClick();
+//                break;
+//
+//            case R.id.mtp_right:
+//                rightClick();
+//                break;
+//
+//            case R.id.mtp_chart_back:// 退出本页
+//                finish();
+//                break;
+//            case R.id.mtp_chart_buy:// 买入
+//                // 卖出
+//
+//                break;
+//            case R.id.mtp_chart_sell:
+//
+//                break;
+//            case R.id.mtp_chart_buy_close:
+//
+//                break;
+//            case R.id.mtp_chart_sell_close:
+//
+//                break;
+//            case R.id.mtp_choice_add:// 删除、添加自选
+//                Drawable drawable = getResources().getDrawable(R.mipmap.search_add);
+//                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+//
+//                Drawable drawable2 = getResources().getDrawable(R.mipmap.search_sub);
+//                drawable2.setBounds(0, 0, drawable2.getIntrinsicWidth(), drawable2.getIntrinsicHeight());
+//                if (SqliteOperateInstance.getInstance().checkDBMarketChoice(String.valueOf(goodsId))) {
+//                    int ret = SqliteOperateInstance.getInstance().delDBMarketChoice(String.valueOf(goodsId));
+//                    if (ret == 0) {
+//                        Snackbar.make(buy_sale, R.string.p_rm_choice_un_success, Snackbar.LENGTH_SHORT).show();
+//                        mtp_choice_add.setText(getString(R.string.p_add_success));
+//                    } else {
+//                        Snackbar.make(buy_sale, R.string.p_rm_choice_success, Snackbar.LENGTH_SHORT).show();
+//                        mtp_choice_add.setCompoundDrawables(null, drawable, null, null);
+//                        mtp_choice_add.setText(getString(R.string.chart_add_choice));
+//                    }
+//                } else {
+//                    String ret = SqliteOperateInstance.getInstance().insertDBMarketChoice(String.valueOf(goodsId));
+//                    if (ret.equals("")) {// 失败,
+//                        Snackbar.make(buy_sale, R.string.p_add_choice_un_success, Snackbar.LENGTH_SHORT).show();
+//                        mtp_choice_add.setText(getString(R.string.chart_add_choice));
+//                    } else {// 成功
+//                        mtp_choice_add.setCompoundDrawables(null, drawable2, null, null);
+//                        Snackbar.make(buy_sale, R.string.p_add_choice_success, Snackbar.LENGTH_SHORT).show();
+//                        mtp_choice_add.setText(getString(R.string.p_add_success));
+//                    }
+//                }
+//
+//                break;
+//            case R.id.mtp_chart_attorn_buy:// 买
+//            {
+//                if (goodsInfoAndQuotes.getTradeMode() == 99) {
+//                    // 99行情不能下单
+//                    PolApplication.getInstance().showToast(getString(R.string.market_stop_trade));
+//                } else if (goodsInfoAndQuotes.getTradeMode() == MTPEnums.TRADEMODE_OPTION) {
+//
+//                    Intent intent = new Intent();
+//                    if (Config.ZYSTATE) {
+//                        intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, OptionTrading.class);
+//                    } else {
+//                        intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, OptionTradeActivity.class);
+//                    }
+//
+//                    intent.putExtra("goodsId", goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//                    startActivityForResult(intent, 1024);
+//                } else if (goodsInfoAndQuotes.getTradeMode() == MTPEnums.TRADEMODE_TRADEMODESALE) {
+//                    // 定金交易
+//                    Intent intent = new Intent();
+//                    intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, DepositTradeActivity.class);
+//                    intent.putExtra("goodsId", goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//                    startActivityForResult(intent, 1026);
+//                } else {
+//                    Intent intent = new Intent();
+//                    intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, Trade.class);
+////                    long s = 1230871123123123L;
+//                    if (Config.MANAGEMENT) {
+//                        intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, ManagementTradeActivity.class);
+//                        intent.putExtra("goodsId", goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//                    } else{
+//                        intent.putExtra("goodsId", goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//                    }
+////                    intent.putExtra("matchOrderId", s);
+//                    startActivityForResult(intent, 1025);
+//                }
+//            }
+//                break;
+//            case R.id.mtp_chart_attorn_sell:
+//
+//                break;
+//            case R.id.mtp_want_purchase:
+//
+//                break;
+//            case R.id.mtp_want_sell:
+//
+//                break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    @Override
+//    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+//        super.onActivityResult(requestCode, resultCode, data);
+//        if (requestCode == 1024 && resultCode == 2048) {// 2048 表示期权
+//
+//            try {
+//
+//                if (timeChartFragment != null) {
+//                    timeChartFragment.activityResult();
+//                }
+//
+//
+//                // fixme 1 请求委托单
+//                queryEntrust();
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//        } else if (requestCode == 1025 && resultCode == 2049) {// 下单成功的返回
+//            initReq(QueryStatements.SEARCHTRADEPOSITIONDETAIL);// 汇总
+//            initReq(QueryStatements.SEARCHTRADEHOLDERDETAIL);// 明细
+//            kLineRefresh();
+//            isActivityResult = true;
+//        } else {
+//            if (timeChartFragment != null) {
+//                timeChartFragment.activityResult();
+//            }
+//            kLineRefresh();
+//            isActivityResult = true;
+//        }
+//    }
+//
+//    /**
+//     * 请求单据
+//     *
+//     * @param statement
+//     */
+//    public void initReq(String statement) {
+//        MessageHeadBase base = new MessageHeadBase();
+//        TaAccountInfoData taAccountInfo = GlobalDataCollention.getInstance().getCurr_accountInfoData();
+//        base.setAccountID(taAccountInfo.getAccountId());
+//        HashMap<String, String> map = new HashMap<>();
+//        map.put("accountId", String.valueOf(taAccountInfo.getAccountId()));
+//        SendMessageController.getQueryCommonMode().query(base, statement, map);
+//
+//    }
+//
+//    private void queryEntrust() {
+//        MessageHeadBase base = new MessageHeadBase();
+//        TaAccountInfoData taAccountInfo = GlobalDataCollention.getInstance().getCurr_accountInfoData();
+//        base.setAccountID(taAccountInfo.getAccountId());
+//        HashMap<String, String> map = new HashMap<>();
+//        map.put("accountId", String.valueOf(taAccountInfo.getAccountId()));
+//        SendMessageController.getQueryCommonMode().query(base, QueryStatements.SEARCHTRADEORDERDETAIL, map);
+//    }
+//
+//    /**
+//     * @param del
+//     */
+//    private void delChoice(boolean del) {
+//        if (del) {
+//            mtp_choice_add.setText(getString(R.string.chart_del_choice));
+//        } else {
+//            mtp_choice_add.setText(getString(R.string.chart_add_choice));
+//        }
+//    }
+//
+//    /**
+//     * 选择
+//     *
+//     * @param id
+//     */
+//    private void setTabSelect(int id) {
+//        mtp_time_chart.setSelected(id == R.id.mtp_time_chart);
+//        mtp_one_chart.setSelected(id == R.id.mtp_one_chart);
+//        mtp_five_chart.setSelected(id == R.id.mtp_five_chart);
+//        mtp_thirty_chart.setSelected(id == R.id.mtp_thirty_chart);
+//        mtp_one_hour_chart.setSelected(id == R.id.mtp_one_hour_chart);
+//        mtp_two_hour_chart.setSelected(id == R.id.mtp_two_hour_chart);
+//        mtp_four_hour_chart.setSelected(id == R.id.mtp_four_hour_chart);
+//        mtp_one_day_chart.setSelected(id == R.id.mtp_one_day_chart);
+//
+//        mtp_time_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_one_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_five_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_thirty_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_one_hour_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_two_hour_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_four_hour_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_one_day_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//
+//        hideShow(mtp_time_chart);
+//        hideShow(mtp_one_chart);
+//        hideShow(mtp_five_chart);
+//        hideShow(mtp_thirty_chart);
+//        hideShow(mtp_one_hour_chart);
+//        hideShow(mtp_two_hour_chart);
+//        hideShow(mtp_four_hour_chart);
+//        hideShow(mtp_one_day_chart);
+//    }
+//
+//    /**
+//     * 显示或隐藏下方的蓝色长条
+//     *
+//     * @param textView
+//     */
+//    private void hideShow(TextView textView) {
+//        mtp_time_chart_b.setVisibility(mtp_time_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_one_chart_b.setVisibility(mtp_one_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_five_chart_b.setVisibility(mtp_five_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_thirty_chart_b.setVisibility(mtp_thirty_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_one_hour_chart_b.setVisibility(mtp_one_hour_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_two_hour_chart_b.setVisibility(mtp_two_hour_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_four_hour_chart_b.setVisibility(mtp_four_hour_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_one_day_chart_b.setVisibility(mtp_one_day_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//    }
+//
+//    /**
+//     * 当前显示的tab。 <li>点击事件触犯时,优先变化次值。
+//     *
+//     * @return
+//     */
+//    private TextView getCuurentTab() {
+//        return currentTab;
+//    }
+//
+//    /**
+//     * 横竖屏状态变化触发事件
+//     */
+//    @Override
+//    public void onConfigurationChanged(Configuration newConfig) {
+//        super.onConfigurationChanged(newConfig);
+//        orientation = getResources().getConfiguration().orientation;
+//        if (orientation == Configuration.ORIENTATION_PORTRAIT) {// 竖屏
+//            // MTPApplication.getInstance().showToast("竖屏");
+//            buy_sale.setVisibility(View.VISIBLE);
+//            mtp_back.setVisibility(View.VISIBLE);
+//            mtpChartControl.setOrientation(orientation);
+//            if (timeChartFragment != null) {
+//                timeChartFragment.setOrientation(orientation);
+//                timeChartFragment.setDetailVisible(View.VISIBLE);
+//            }
+//            // requestTimeChartData(MTPEnums.HistoryData_Minute5, MTPEnums.R_TIME_5);
+//            requestTimeChartData(MTPEnums.HistoryData_Minute, R_TIME_1);
+//        } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {// 横屏
+//            // MTPApplication.getInstance().showToast("横屏");
+//            buy_sale.setVisibility(View.GONE);
+//            mtp_back.setVisibility(View.GONE);
+//            mtpChartControl.setOrientation(orientation);
+//            if (timeChartFragment != null) {
+//                timeChartFragment.setOrientation(orientation);
+//                timeChartFragment.setDetailVisible(View.GONE);
+//            }
+//            requestTimeChartData(MTPEnums.HistoryData_Minute, R_TIME_1);
+//        }
+//    }
+//
+//    /**
+//     * 行情刷新
+//     */
+//    public void onRefresh() {
+//        refreshBSHL();
+//        makePankou();
+//        int decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//        if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//            if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPrice())) {
+//                mtp_now_price.setText("--");
+//                mtp_now_price.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//            } else {
+//                mtp_now_price.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPrice(), decimalPlace));
+////                if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                    // 红涨
+////                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_up_color));
+////                } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                    // 绿跌
+////                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_down_color));
+////                }
+//                TextViewColorUtils.setMyTextColor(mtp_now_price, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//            }
+//
+//            if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+//                mtp_pre_settle.setText("--");
+//            } else {
+//                mtp_pre_settle.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPreSettle(), decimalPlace));
+//            }
+//        }
+//    }
+//
+//    public MTPChartControl getMtpChartControl() {
+//        return mtpChartControl;
+//    }
+//
+//    public void setMtpChartControl(MTPChartControl mtpChartControl) {
+//        this.mtpChartControl = mtpChartControl;
+//    }
+//
+//    public GoodsInfoAndQuotes getGoodsInfoAndQuotes() {
+//        return goodsInfoAndQuotes;
+//    }
+//
+//    public void setGoodsInfoAndQuotes(GoodsInfoAndQuotes goodsInfoAndQuotes) {
+//        this.goodsInfoAndQuotes = goodsInfoAndQuotes;
+//    }
+//
+//    @Override
+//    protected void onRestart() {
+//        super.onRestart();
+//        if (timeChartFragment != null && supportAttorn()) {
+//            timeChartFragment.fetchAttorn();
+//        }
+//    }
+//
+//    @Override
+//    protected void onResume() {
+//        super.onResume();
+//        if (!isOncreate) {
+//            switch (dataType) {
+//                case ChartConstant.TIME: {
+//                    requestTimeChartData();
+//                    requestHistoryTikData();
+//                }
+//                break;
+//                default:
+//                    requestKLastchartData();
+//                    break;
+//            }
+//        }
+//        isOncreate = false;
+//        refreshBSHL();
+//        makePankou();
+//        if (goodsInfoAndQuotes != null && goodsInfoAndQuotes.getQuoteDay() != null) {
+//            int decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//            if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//                if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPrice())) {
+//                    mtp_now_price.setText("--");
+//                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//                } else {
+//                    mtp_now_price.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPrice(), decimalPlace));
+////                    if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                        // 红涨
+////                        mtp_now_price.setTextColor(getResources().getColor(R.color.p_up_color));
+////                    } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                        // 绿跌
+////                        mtp_now_price.setTextColor(getResources().getColor(R.color.p_down_color));
+////                    }
+//                    TextViewColorUtils.setMyTextColor(mtp_now_price, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//                }
+//
+//                if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+//                    mtp_pre_settle.setText("--");
+//                } else {
+//                    mtp_pre_settle.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPreSettle(), decimalPlace));
+//                }
+//            }
+//        }
+//
+//        showBottom();
+//        delistingModeShow();
+//    }
+//
+//
+//    @Override
+//    public void onMessageEventThread(MessageEvent messageEvent) {
+//        super.onMessageEventThread(messageEvent);
+//        if (FunCode.QUOTE == messageEvent.getFunCode() || messageEvent.getFunCode() == FunCode.FID_OrderDealedNtf) {
+//            List<String> symbols = (List<String>) messageEvent.getMessageInfo();
+//            if (messageEvent.getFunCode() == FunCode.FID_OrderDealedNtf) {
+//                // 重新请求历史数据
+//                requestHistoryTikData();
+//            }
+//            // 行情累加
+//            if (symbols.contains(goodsInfoAndQuotes.getExchangeHqCode() + "_" + goodsInfoAndQuotes.getGoodsInfo().getGoodsCode())) {
+//                // FIXME : 刷新当前的UI
+//                onRefresh();
+//                // 如果是混合或者竞价, 一定要是成交量不为0才更新图表
+//                if (getTradeMode() == MTPEnums.TRADEMODE_BIDDING) {
+//                    // 混合或者竞价,有量才尝试更新图表
+//                    try { // 现在不需要判断 有成交量才更新图表 !!!! 2017/04/26 yuji
+//                        mtpChartControl.appendNewQupte(this);
+//                        LogUtils.e("tt", "tt 更新啊");
+//                    } catch (Exception e) {
+//                        LogUtils.e("tt", "tt 更新报错啊");
+//                        e.printStackTrace();
+//                    }
+//                } else if (getTradeMode() == MTPEnums.TRADEMODE_MARKETMAKE ||
+//                        getTradeMode() == MTPEnums.TRADEMODE_OPTION) {
+//                    mtpChartControl.appendNewQupte(this);
+//                }
+//                if (kChartFragment != null) {
+//                    kLineRefresh();
+//                }
+//                if (timeChartFragment != null) {// 刷新分时图的非历史行情数据
+//                    timeChartFragment.onRefresh(true);
+//                }
+//
+//            }
+//        } else if (FunCode.QUOTEDAYRESPONSE == messageEvent.getFunCode()) {
+//            // 盘面返回处理
+//            onRefresh();
+//            if (kChartFragment != null) {// 刷新K线图的非历史行情数据
+//                kChartFragment.onRefresh();
+//            }
+//            if (timeChartFragment != null) {// 刷新分时图的非历史行情数据
+//                timeChartFragment.onRefresh(false);
+//            }
+//
+//        } else if (FunCode.HISTORYQUOTERESPONSE == messageEvent.getFunCode()) {
+//
+//        } else if (FunCode.HISTORYQUOTERESPONSEDAY == messageEvent.getFunCode()) {
+//
+//        } else if (QueryStatements.QueryQuoteSourceGroupRunStep.equals(messageEvent.getQueryCommonId())) {
+//            // 99行情的结算计划
+//            settlementState = false;
+//            SettlementDataBack();
+//        } else if (QueryStatements.QuerySummerTimeGroupConfig.equals(messageEvent.getQueryCommonId())){
+//            summerState = false;
+//            SettlementDataBack();
+//        } else if (FunCode.MARKETRUNQUERYRSP == messageEvent.getFunCode()) {
+//            SettlementData();
+//        } else if (messageEvent.getFunCode() == FunCode.MARKETSTATUSDNTF) {
+//            // FIXME : 开休市通知, 重新请求结算
+//            // 缓冲加载
+//            new Handler().postDelayed(new Runnable() {
+//                @Override
+//                public void run() {
+//                    requestSettlementPlan();
+//                }
+//            }, 1000);
+//        } else if (FunCode.QueryAskStoreOrder.equals(messageEvent.getQueryCommonId())) {  //卖挂牌
+////            ArrayList<ListingAskStoreOrderData> arrayList = GlobalDataCollention.getInstance().getAskStoreOrderDatas();
+////            if (arrayList.size() > 0) {
+////                mtp_chart_attorn_buy.setVisibility(View.VISIBLE);
+////            } else {
+////                if (!Global.AttornBuy) {
+////                    mtp_chart_attorn_buy.setVisibility(View.GONE);
+////                }
+////            }
+//
+//        } else if (QueryStatements.QueryOptionGoodRemainQty.equals(messageEvent.getQueryCommonId())) {// 可售数量
+//            timeChartFragment.activityResult();   //会引发死循环
+//        }
+//
+//    }
+//
+//    private boolean settlementState = true;  //结算计划
+//    private boolean summerState = true;  //夏令时
+//
+//    /**
+//     * 补日线的时间
+//     * @return
+//     */
+//    private Date dayOfTime(boolean isFresh) {
+//        try {
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//            if (isFresh) { // 刷新数据的根据当前时间判断
+//                String todayDate = sdf.format(new Date());
+//                return sdf.parse(todayDate);
+//            } else {
+//                if (goodsInfoAndQuotes.getTradeMode() == MTPEnums.TRADEMODE_MARKETMAKE) {
+//                    MMQuoteDay quoteDay = (MMQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//                    if (quoteDay != null) {
+//                        StringBuilder sb = new StringBuilder(quoteDay.getExchangeTime());//构造一个StringBuilder对象
+//                        if (!quoteDay.getExchangeTime().contains("-")) {
+//                            sb.insert(4, "-");
+//                            sb.insert(7, "-");
+//                            sb.append(" 00:00");
+//                        }
+//                        return sdf.parse(sb.toString());
+//                    }
+//                } else {
+//                    BidQuoteDay quoteDay = (BidQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//                    if (quoteDay != null) {
+//                        StringBuilder sb = new StringBuilder(quoteDay.getExchangeTime());//构造一个StringBuilder对象
+//                        if (!quoteDay.getExchangeTime().contains("-")) {
+//                            sb.insert(4, "-");
+//                            sb.insert(7, "-");
+//                            sb.append(" 00:00");
+//                        }
+//                        return sdf.parse(sb.toString());
+//                    }
+//                }
+//            }
+//
+//        } catch (ParseException e) {
+//            e.printStackTrace();
+//        }
+//        return null;
+//    }
+//
+//    /**
+//     * K线刷新问题
+//     */
+//    private void kLineRefresh() {
+//        if (kChartFragment != null) {
+//            if (dataType == 1440) {
+//                // 刷新最后一根日线
+//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//                Date startTime = dayOfTime(true);
+//                if (mtpChartControl.get().mOHLCList != null && mtpChartControl.get().mOHLCList.size() > 0) {
+//                    OHLCEntity ohlcEntity = mtpChartControl.get().mOHLCList.get(mtpChartControl.get().mOHLCList.size() - 1);
+//                    try {
+//                        Date quoteDate = dayOfTime(false);// 行情时间
+//                        if (sdf.parse(ohlcEntity.getTime()).equals(startTime) && (sdf.parse(ohlcEntity.getTime()).before(quoteDate) || sdf.parse(ohlcEntity.getTime()).equals(quoteDate))) {
+//                            if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//                                // 如果今天没有开盘就用昨收补
+//                                if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) == 0) {
+//                                    ohlcEntity.setOpen(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                    ohlcEntity.setHigh(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                    ohlcEntity.setLow(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                    ohlcEntity.setClose(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//
+//                                } else {
+//                                    ohlcEntity.setOpen(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()));
+//                                    ohlcEntity.setHigh(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getHighest()));
+//                                    ohlcEntity.setLow(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()));
+//                                    ohlcEntity.setClose(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPrice()));
+//                                }
+//                            }
+//                        }
+//                    } catch (ParseException e) {
+//                        e.printStackTrace();
+//                    }
+//                }
+//
+//            }
+//            kChartFragment.onRefresh();
+//        }
+//    }
+//
+//    /**
+//     * 判断是否需要New一个hiscycle
+//     *
+//     * @param startTime
+//     * @return
+//     */
+//    private boolean isNeedNewFill(Date startTime) {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//        // 是否需要重新new数据
+//        boolean isNeedFill = false;
+//        if (mtpChartControl.get().mOHLCList != null && mtpChartControl.get().mOHLCList.size() > 0) {
+//            OHLCEntity ohlcEntity = mtpChartControl.get().mOHLCList.get(mtpChartControl.get().mOHLCList.size() - 1);
+//            try {
+//                isNeedFill = sdf.parse(ohlcEntity.getTime()).equals(startTime);
+//            } catch (ParseException e) {
+//                e.printStackTrace();
+//            }
+//        }
+//        return isNeedFill;
+//    }
+//
+//    /**
+//     * 结算计划返回 同时更新 夏令时
+//     */
+//    public void SettlementDataBack(){
+//        if(!settlementState && !summerState) {
+//            NintyNineData();
+//            summerState = true;
+//            settlementState = true;
+//        }
+//
+//    }
+//
+//    /**
+//     * 处理99行情
+//     */
+//    public void NintyNineData(){
+//        String tradeData = "";
+//        if( GlobalDataCollention.getInstance().getMarketRun().size() > 0){
+//            for(MarketRunStatusData data : GlobalDataCollention.getInstance().getMarketRun()){
+//                if(data.getMarketid().equals("0")){
+//                    //取系统当前交易日
+//                    tradeData = data.getTradedate();
+//                }
+//            }
+//            //过滤
+//            //1:判断今天是星期几
+//            int weekDay = TimeUtils.getWeek(tradeData, "yyyyMMdd");
+//            if(weekDay == -1)
+//                return;
+//            ArrayList<SourceGroupData> usedList = new ArrayList<>();
+//            //开始过滤
+//            ArrayList<SourceGroupData> sourceGroupDataList = GlobalDataCollention.getInstance().getSourceGroupDataList();
+//            // 99行情取得的结算计划
+//            for(SourceGroupData sourceGroupData : sourceGroupDataList){
+//                if(sourceGroupData.getMarketid().equals(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getMarketID()))
+//                        && !sourceGroupData.getSectionid().equals("0")
+//                        && sourceGroupData.getTradeweekday().equals(String.valueOf(weekDay))
+//                        && sourceGroupData.getGoodsgroupid().equals(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGroupId()))){
+////                        && settlementDatas.getS){
+//                    usedList.add(sourceGroupData);
+//                }
+//            }
+//
+//            boolean summerState = true;
+//            //有满足条件的数据
+//            if(usedList.size() > 0){
+//                //判断是否是夏令时
+//                ArrayList<SummerData> summerDataList = GlobalDataCollention.getInstance().getSummerDataList();
+//                for(SummerData summerData: summerDataList){
+//                    if(summerData.getMarketid().equals(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getMarketID()))
+//                            && summerData.getGoodsgroupid().equals(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGroupId()))){
+//                        //判断tradeDay是否在  StratDate 到 EndDate 之间
+//                        // 1 结束时间小于开始时间 2 开始时间与结束时间相同 3 结束时间大于开始时间
+//                        if(TimeUtils.getTimeCompareSize(summerData.getStartdate() , tradeData , "yyyyMMdd") == 3
+//                                || TimeUtils.getTimeCompareSize(tradeData , summerData.getEnddate() , "yyyyMMdd") == 1){
+//                            summerState = false; //如果有一个数满足夏令时  就认为当前状态是夏令时  统一时间-1
+//                        }
+//                    }
+//                }
+//            }
+//
+//            //满足夏令时 starttime和endtime记得-1
+//            if(!summerState){
+//                //在夏令时内 则开休市时间减少一个小时
+//                for(SourceGroupData data :usedList){
+//                    try {
+//                        //减少一个小时 有可能减到上一天
+//                        // FIXME: 2018/11/6 1:00 以内减一个小时  weekday也要减一天
+//                        data.setStarttime(TimeUtils.longToString(TimeUtils.stringToDate(data.getStarttime(),"HH:mm").getTime() - 60 * 60 * 1000, "HH:mm"));
+//                        data.setEndtime(TimeUtils.longToString(TimeUtils.stringToDate(data.getEndtime(),"HH:mm").getTime() - 60 * 60 * 1000, "HH:mm"));
+//                        if(TimeUtils.checkTimeIs23(data.getStarttime())) {
+//                            if (data.getStartweekday().equals("0")) {
+//                                data.setStartweekday("6");
+//                            } else {
+//                                data.setStartweekday(String.valueOf(Integer.valueOf(data.getStartweekday()) - 1));
+//                            }
+//                        }
+//
+//                        if(TimeUtils.checkTimeIs23(data.getEndtime())) {
+//                            if (data.getEndweekday().equals("0")) {
+//                                data.setEndweekday("6");
+//                            } else {
+//                                data.setEndweekday(String.valueOf(Integer.valueOf(data.getEndweekday()) - 1));
+//                            }
+//                        }
+//
+//                    } catch (ParseException e) {
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
+//
+//            ArrayList<SettlementData> mList = GlobalDataCollention.getInstance().getSettlementDataList();
+//            mList.clear();
+//            //把99行情的数据 怼到之前结算计划里面去
+//            for(SourceGroupData data :usedList){
+//                SettlementData sData = new SettlementData();
+//                sData.setEndTime(data.getEndtime());
+//                sData.setStartTime(data.getStarttime());
+//                sData.setTradeDate(tradeData);
+//                if(data.getEndweekday().length() > 0
+//                        && MathUtil.isNumeric(data.getEndweekday())) {
+//                    sData.setEndWeekDay(Integer.valueOf(data.getEndweekday()));
+//                }
+//                if(data.getMarketid().length() > 0
+//                        && MathUtil.isNumeric(data.getMarketid())) {
+//                    sData.setMarketId(Integer.valueOf(data.getMarketid()));
+//                }
+//                if(data.getRunstep().length() > 0
+//                        && MathUtil.isNumeric(data.getRunstep())) {
+//                    sData.setRunStep(Integer.valueOf(data.getRunstep()));
+//                }
+//                if(data.getStartweekday().length() > 0
+//                        && MathUtil.isNumeric(data.getStartweekday())) {
+//                    sData.setStartWeekDay(Integer.valueOf(data.getStartweekday()));
+//                }
+//                if(data.getTradeweekday().length() > 0
+//                        && MathUtil.isNumeric(data.getTradeweekday()))
+//                sData.setTradeWeekDay(Integer.valueOf(data.getTradeweekday()));
+//                mList.add(sData); //压入数据集
+//            }
+//            //处理完 99 行情才开始处理结算计划
+//            // FIXME: 2018/10/26   现在有个问题 之前结算计划的groupId是marketId 现在要改 等服务改完我这里才能改
+//            SettlementData();
+//        }
+//    }
+//
+//    public void SettlementData(){
+//        // 结算计划返回
+//        SettlementPlan plan = null;
+//        // 获取到的结算计划
+//        ArrayList<SettlementData> mList = GlobalDataCollention.getInstance().getSettlementDataList();
+//        if (mList != null && mList.size() > 0) {
+//            //(有结算计划的情况下) 开始和结束时间列表
+//            List<StartEnd> startAndEndList = new ArrayList<StartEnd>();
+//            plan = new SettlementPlan();
+//
+////                    List<SettlementData> marketData = new ArrayList<>();  //用于储存同意市场的结算计划
+//            if(Config.MANAGEMENT){
+//                if( GlobalDataCollention.getInstance().getSaveMarketInfo().get(0) != null) {
+//                    groupId = GlobalDataCollention.getInstance().getSaveMarketInfo().get(0).getMarketID();
+//                }
+//            }else {
+//                if (groupId == 0) {
+//                    groupId = GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsId).getGoodsInfo().getMarketID();
+//                }
+//            }
+//
+//            StartEnd startEnd = new StartEnd();
+//
+//            String tradeData = GlobalDataCollention.getInstance().getParamValues().get(String.valueOf(MTPEnums.TRADEDATE));
+//
+//            //把结算计划里  需要的marketId信息拿出来
+//            ArrayList<StartEnd> tem = new ArrayList<>();
+//            Date timeStart = null;
+//            Date timeEnd = null;
+//            String tradeDate = "";
+//            for (SettlementData settlementData : mList) {
+//                if (settlementData.getMarketId() == groupId && settlementData.getRunStep() != 4/*行权时间阶段*/) {
+//                    try {
+//                        startEnd = new StartEnd();
+//                        Date currentStartTime = DateUtils.converToDate(tradeData + settlementData.getStartTime(), settlementData.getStartWeekDay() - settlementData.getTradeWeekDay());
+//                        Date currentEndTime = DateUtils.converToDate(tradeData + settlementData.getEndTime(), settlementData.getEndWeekDay() - settlementData.getTradeWeekDay());
+//
+//                        // FIXME: 2018/11/5 这里有个问题  !!!! 星期天weekday返回的是 0 下面的逻辑会出问题  所以先把0转换成7
+//                        if(settlementData.getStartWeekDay() == 0){ //代表星期天
+//                            settlementData.setStartWeekDay(7);
+//                        }
+//
+//                        if(settlementData.getTradeWeekDay() == 0){
+//                            settlementData.setTradeWeekDay(7);
+//                        }
+//
+//                        if(settlementData.getEndWeekDay() == 0){
+//                            settlementData.setTradeWeekDay(7);
+//                        }
+//
+//                        if(settlementData.getStartWeekDay() > settlementData.getTradeWeekDay()){  //代表是上周
+//                            currentStartTime = DateUtils.converToDate(tradeData + settlementData.getStartTime(), settlementData.getStartWeekDay() - 7 + settlementData.getTradeWeekDay() - 2);
+//                            currentEndTime = DateUtils.converToDate(tradeData + settlementData.getEndTime(), settlementData.getEndWeekDay() - 7 + settlementData.getTradeWeekDay() - 2);
+//                        }else{  //其他情况是本周
+//                            currentStartTime = DateUtils.converToDate(tradeData + settlementData.getStartTime(), settlementData.getStartWeekDay() - settlementData.getTradeWeekDay());
+//                            currentEndTime = DateUtils.converToDate(tradeData + settlementData.getEndTime(), settlementData.getEndWeekDay() - settlementData.getTradeWeekDay());
+//                        }
+//
+//                        // FIXME: 2018/11/5 改完了记得改回来
+//
+//                        if(settlementData.getStartWeekDay() == 7){ //代表星期天
+//                            settlementData.setStartWeekDay(0);
+//                        }
+//
+//                        if(settlementData.getTradeWeekDay() == 7){
+//                            settlementData.setTradeWeekDay(0);
+//                        }
+//
+//                        if(settlementData.getEndWeekDay() == 7){
+//                            settlementData.setTradeWeekDay(0);
+//                        }
+//
+//                        startEnd.setStartTime(currentStartTime);
+//                        startEnd.setEndTime(currentEndTime);
+//                        tem.add(startEnd);
+//
+//                        timeStart = (timeStart == null) ? currentStartTime :
+//                                (timeStart.compareTo(currentStartTime) < 0 ? timeStart : currentStartTime);
+//
+//                        timeEnd = (timeEnd == null) ? currentEndTime :
+//                                (timeEnd.compareTo(currentEndTime) > 0 ? timeEnd : currentEndTime);
+//                    } catch (Exception e) {
+//                        e.printStackTrace();
+//                    }
+//                    tradeDate = settlementData.getTradeDate();
+//                }
+//            }
+//
+//            Collections.sort(tem, new Comparator<StartEnd>() {
+//                @Override
+//                public int compare(StartEnd o1, StartEnd o2) {
+//                    if (o1.getStartTime().compareTo(o2.getStartTime()) > 0) {
+//                        return 1;
+//                    } else if (o1.getStartTime().compareTo(o2.getStartTime()) < 0) {
+//                        return -1;
+//                    }
+//                    return 0;
+//                }
+//            });
+//
+//            plan.setList(tem);
+//            plan.setOpenTime(timeStart);
+//            plan.setReckonTime(timeEnd);
+//            try {
+//                plan.setTradeDate(DateUtils.converToDateType2(tradeDate));
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//        } else {
+//            String tradeData = GlobalDataCollention.getInstance().getParamValues().get(String.valueOf(MTPEnums.TRADEDATE));
+//            /**
+//             * 没有改市场数据
+//             */
+//            StartEnd startEnd = new StartEnd();
+//            plan = new SettlementPlan();
+//                try {
+//                    if (startEnd.getEndTime() == null || startEnd.getStartTime() == null) {
+//                        startEnd.setStartTime(DateUtils.converToDateType2(tradeData, "yyyyMMdd"));
+//
+//                        Calendar cal = Calendar.getInstance();
+//                        cal.setTime(DateUtils.converToDateType2(tradeData,"yyyyMMdd"));
+//                        cal.add(Calendar.DATE, 1); //加一天
+//
+//                        startEnd.setEndTime(cal.getTime());
+//                    }
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//                try {
+//                    plan.setList(new ArrayList<>());
+//                    plan.getList().add(startEnd);
+//                    plan.setTradeDate(DateUtils.converToDateType2(tradeData));
+//                    plan.setOpenTime(startEnd.getStartTime());
+//                    plan.setReckonTime(startEnd.getEndTime());
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+////            showToast(R.string.chart_time_no_settlementplan);
+////            return;
+//        }
+//
+////            }
+//        this.settlementPlan = plan;
+//        OTCChartControl.getInstance(this).setSettlementPlan(plan);
+//        requestHistoryTikData();
+//
+//        if (Configuration.ORIENTATION_LANDSCAPE == orientation) {
+//            requestTimeChartData(MTPEnums.HistoryData_Minute, R_TIME_1);
+//        } else {
+//            // 如果是竖屏,使用5分钟周期数据画分时图
+//            // requestTimeChartData(MTPEnums.HistoryData_Minute5, R_TIME_5);
+//            requestTimeChartData(MTPEnums.HistoryData_Minute, R_TIME_1);
+//            LogUtils.e("time", "发出请求" + System.currentTimeMillis());
+//        }
+//
+//    }
+//
+//
+//    /**
+//     * 图标触摸事件处理
+//     */
+//    @Override
+//    public void notifyEvent(int eventId, GridChart chart) {
+//        switch (eventId) {
+//            case ITouchEventNotify.EVENT_CROSSONTOUCH: {
+//                if (dataType == ChartConstant.TIME) {
+//                    try {
+//                        // 触摸图表处理
+//                        ChartDataContainer container = mtpChartControl.get();
+//                        // 表示当前触摸点x坐标
+//                        float postX = chart.getClickPostX();// +
+//                        // chart.getAxisMarginLeft();
+//                        // 得到在list中的下标
+//                        int index = chart.getAxisXPos(postX);
+//                        // if (index >= ((LineChart) chart).getDatasNum()) {
+//                        // index = ((LineChart) chart).getDatasNum() - 1;
+//                        // }
+//                        if (container == null || container.mOHLCList == null) {
+//                            return;
+//                        }
+//                        int currentLength = container.mSize;
+//                        LogUtils.e("chart", index + "  ");
+//                        if (index <= currentLength) {
+//                            LogUtils.e("chart", "触发了");
+//                            mtpChartControl.setOHLC(chart_title, container.mOHLCList.get(index).getOpen(), container.mOHLCList.get(index)
+//                                    .getHigh(), container.mOHLCList.get(index).getLow(), container.mOHLCList.get(index).getClose());
+//                        }
+//                    } catch (Exception e) {
+//                        e.printStackTrace();
+//                    }
+//                } else {
+//                    try {
+//                        // 触摸图表处理
+//                        ChartDataContainer container = mtpChartControl.get();
+//                        // 表示当前触摸点x坐标
+//                        float postX = chart.getClickPostX();// +
+//                        // chart.getAxisMarginLeft();
+//                        // 得到在list中的下标
+//                        chart.setMaxDatasLength(chart.getWidth() - chart.getAxisMarginLeft() - chart.getAxisMarginRight());
+//                        int index = chart.getAxisXPos(postX);
+//                        if (container == null || container.mOHLCList == null) {
+//                            return;
+//                        }
+//                        int currentLength = container.mSize;
+//                        LogUtils.e("chart", index + "  ");
+//                        if (index <= currentLength) {
+//                            mtpChartControl.setOHLC(chart_title, container.mOHLCList.get(index).getOpen(), container.mOHLCList.get(index)
+//                                    .getHigh(), container.mOHLCList.get(index).getLow(), container.mOHLCList.get(index).getClose());
+//                            kChartFragment.showTargetTitle(index);
+//                        }
+//                    } catch (Exception e) {
+//                        // TODO Auto-generated catch block
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
+//            break;
+//            case ITouchEventNotify.EVENT_UP: {
+//                // 手离开图表
+//                if (dataType == ChartConstant.TIME) {
+//                    // 触摸离开,显示均价和现价
+//                    if (timeChartFragment != null) {
+//                        try {
+//                            timeChartFragment.setTimeText(chart_title);
+//                        } catch (Exception e) {
+//                            // TODO Auto-generated catch block
+//                            e.printStackTrace();
+//                        }
+//                    }
+//                } else {
+//                    try {
+//                        kChartFragment.showKTitle(chart_title);
+//                        kChartFragment.showTargetTitle(0);
+//                    } catch (Exception e) {
+//                        // TODO Auto-generated catch block
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
+//            break;
+//            case ITouchEventNotify.EVENT_LEFTEND: {
+//                // 当拉到图表的最左边的处理
+//                if (dataType != ChartConstant.TIME) {
+//                    try {
+//                        if (kChartFragment.isShowing()) {
+//                            // 防止正在请求数据的时候再次请求
+//                            return;
+//                        }
+//                        reset = false;
+//                        switch (currentTab.getId()) {
+//                            case R.id.mtp_one_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute, MTPEnums.R_K_1);
+//                                break;
+//                            case R.id.mtp_five_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute5, MTPEnums.R_K_5);
+//                                break;
+//                            case R.id.mtp_thirty_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                                break;
+//                            case R.id.mtp_one_hour_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                                break;
+//                            case R.id.mtp_two_hour_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                                break;
+//                            case R.id.mtp_four_hour_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                                break;
+//                            case R.id.mtp_one_day_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Day, MTPEnums.R_K_DAY);
+//                                break;
+//                            default:
+//                                break;
+//                        }
+//                    } catch (Exception e) {
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    /**
+//     * 请求历史数据
+//     */
+//    @Override
+//    public void reRequestHistoryDatas() {
+//        if (System.currentTimeMillis() - lastRqMillisecond < 60000) {
+//            return;
+//        }
+//        switch (dataType) {
+//            case ChartConstant.TIME: {
+//                requestSettlementPlan();
+//                LogUtils.e("req", "重新请求分时");
+//            }
+//            break;
+//            case ChartConstant.K_1: {
+//                requestKChartData(MTPEnums.HistoryData_Minute, MTPEnums.R_K_1);
+//                LogUtils.e("req", "重新请求1");
+//            }
+//            break;
+//            case ChartConstant.K_5: {
+//                requestKChartData(MTPEnums.HistoryData_Minute5, MTPEnums.R_K_5);
+//                LogUtils.e("req", "重新请求5");
+//            }
+//            break;
+//            case ChartConstant.K_30: {
+//                requestKChartData(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                LogUtils.e("req", "重新请求30");
+//            }
+//            break;
+//            case ChartConstant.K_60: {
+//                requestKChartData(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                LogUtils.e("req", "重新请求60");
+//            }
+//            break;
+//            case ChartConstant.K_120: {
+//                requestKChartData(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                LogUtils.e("req", "重新请求60");
+//            }
+//            break;
+//            case ChartConstant.K_240: {
+//                requestKChartData(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                LogUtils.e("req", "重新请求60");
+//            }
+//            break;
+//            case ChartConstant.K_DAY: {
+//                requestKChartData(MTPEnums.HistoryData_Day, MTPEnums.R_K_DAY);
+//                LogUtils.e("req", "重新请求1day");
+//            }
+//            break;
+//
+//            default:
+//                break;
+//        }
+//        LogUtils.e("req", "重新请求");
+//        lastRqMillisecond = System.currentTimeMillis();
+//    }
+//
+//    @Override
+//    // 行情累加以后,在这里通知fragment刷新
+//    public void reFreshChartAfterAdd(boolean useHandle, boolean isNew) {
+//        if (!useHandle) {
+//            if (ChartConstant.TIME == dataType) {
+//                // timeChartFragment.refresh(chart_title);
+//                timeChartFragment.draw(true, chart_title);
+//            }
+//
+//            if (ChartConstant.TIME != dataType) {
+//                if (isNew) {
+//                    kChartFragment.mtp_chart_k.setStartIndex(kChartFragment.mtp_chart_k.getStartIndex() + 1);
+//                    kChartFragment.mtp_chart_target.setStartIndex(kChartFragment.mtp_chart_target.getStartIndex() + 1);
+//                }
+//                kChartFragment.onHistoryDataCallBack(chart_title, false, false);
+//            }
+//        } else {
+//            if (ChartConstant.TIME == dataType) {
+//                Message message = Message.obtain();
+//                message.what = 0;
+//                handler.sendMessage(message);
+//            }
+//        }
+//    }
+//
+//    private Handler handler = new Handler(Looper.myLooper()) {
+//        @Override
+//        public void handleMessage(Message msg) {
+//            switch (msg.what) {
+//                case 0:
+//                    reFreshChartAfterAdd(false, false);
+//                    break;
+//
+//                default:
+//                    break;
+//            }
+//            super.handleMessage(msg);
+//        }
+//    };
+//
+//    /**
+//     * 数据成功获取后的处理,可考虑 改用runOnUiThread(action);
+//     *
+//     * @param obj
+//     */
+//    private void successHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        AsyncResultData resultData = (AsyncResultData) data;
+//        if (resultData.getGoodsId() != goodsId) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        int type = resultData.getHandleType();
+//        if (dataType == ChartConstant.K_120) {
+//            type = MTPEnums.R_K_120;
+//        } else if (dataType == ChartConstant.K_60) {
+//            type = MTPEnums.R_K_60;
+//        } else if (dataType == ChartConstant.K_240) {
+//            type = MTPEnums.R_K_240;
+//        }
+//        switch (type) {
+//            case R_R_TIME: {
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // 处理重新请求的分时数据
+//                    ReRequestTimeDataResult result = (ReRequestTimeDataResult) resultData;
+//                    // 将复杂的数据操作,在control中做
+//                    mtpChartControl.loseTimeDataBack(result.getStartTime(), result.getEndTime(), result.getGoodsId());
+//                    timeChartFragment.draw(true, chart_title);
+//                    timeChartFragment.showLineChart();
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_TIK: {
+//                if (currentTab.getId() == R.id.mtp_time_chart && timeChartFragment != null) {
+//                    timeChartFragment.inputTik();
+//                }
+//            }
+//            break;
+//            case R_TIME_1:
+//            case MTPEnums.R_TIME_5: {
+//                // 分时图数据处理
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    HisDataResultData hisDataResultData = (HisDataResultData) resultData;
+//                    LogUtils.e("chart", "收到分时图数据,将要处理");
+//                    timeChartFragment.dimiss();
+//                    mtpChartControl.inputTimeData();
+//                    timeChartFragment.draw(true, chart_title);
+//                    timeChartFragment.showLineChart();
+//                    timeChartFragment.setNoneState(View.GONE);
+//                    // if (getTradeMode() == MTPEnums.BIDDING) {
+//                    mtpChartControl.startExecutorService(this);
+//                    // }
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5:
+//                // 5分钟
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute5);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_30:
+//                // 30分钟
+//                if (currentTab.getId() == R.id.mtp_thirty_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute30);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_60:
+//                // 60分钟
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute60);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_120:
+//                if (currentTab.getId() == R.id.mtp_two_hour_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute120);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_240:
+//                // 240分钟
+//                if (currentTab.getId() == R.id.mtp_four_hour_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute240);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, true, true);
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_DAY:
+//                // 240分钟
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Day);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, true, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    /**
+//     * ui线程超时处理
+//     *
+//     * @param obj
+//     */
+//    private void timeOutHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        AsyncResultData asyncResultData = (AsyncResultData) data;
+//        if (asyncResultData.getGoodsId() != goodsId) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        switch (asyncResultData.getHandleType()) {
+//            case R_R_TIME:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // 超时不需要做别的,下一次会再请求
+//                }
+//                break;
+//            case MTPEnums.R_TIK:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    showToast(R.string.load_tik_timeout);
+//                }
+//                break;
+//            case MTPEnums.R_TIME_5:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    showToast(R.string.p_time_out);
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.hideLineChart();
+//                    timeChartFragment.setNoneState(View.VISIBLE);
+//                    drwaTimeChart = false;
+//                }
+//                break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5: {
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_30: {
+//                if (currentTab.getId() == R.id.mtp_thirty_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_120:
+//            case MTPEnums.R_K_240:
+//            case MTPEnums.R_K_60: {
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_DAY: {
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    private void nullHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        AsyncResultData asyncResultData = (AsyncResultData) data;
+//        if (asyncResultData.getGoodsId() != goodsId) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        switch (asyncResultData.getHandleType()) {
+//            case R_TIME_1:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {// FIXME : 要处理
+//                    HisDataResultData resultData = (HisDataResultData) asyncResultData;
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.showLineChart();
+//                    timeChartFragment.setNoneState(View.GONE);
+//                    drwaTimeChart = true;
+//                    // mtpChartControl.timeDataNullHandle(resultData.getStartTime(),
+//                    // resultData.getEndTime());
+//                    mtpChartControl.charttimeDataInit();
+//                    mtpChartControl.startExecutorService(this);
+//                    timeChartFragment.draw(true, chart_title);
+//
+//                }
+//                break;
+//            case R_R_TIME:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // 处理重新请求的分时数据
+//                    ReRequestTimeDataResult result = (ReRequestTimeDataResult) asyncResultData;
+//                    // 将复杂的数据操作,在control中做
+//                    mtpChartControl.loseTimeDataNull(result.getStartTime(), result.getEndTime(), goodsId);
+//                    timeChartFragment.draw(true, chart_title);
+//                }
+//                break;
+//            case MTPEnums.R_TIK:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // MTPApplication.getInstance().showToast(R.string.load_tik_null);
+//                }
+//                break;
+//            case MTPEnums.R_TIME_5:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // MTPApplication.getInstance().showToast(R.string.load_null);
+//                    HisDataResultData resultData = (HisDataResultData) asyncResultData;
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.showLineChart();
+//                    timeChartFragment.setNoneState(View.GONE);
+//                    drwaTimeChart = true;
+//                    mtpChartControl.timeDataNullHandle(resultData.getStartTime(), resultData.getEndTime());
+//                    mtpChartControl.startExecutorService(this);
+//                    timeChartFragment.draw(true, chart_title);
+//                    // timeChartFragment.setNoneState(View.GONE);
+//                    // if (getTradeMode() == MTPEnums.BIDDING) {
+//
+//                    // }
+//                }
+//                break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5: {
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_30: {
+//                if (currentTab.getId() == R.id.mtp_thirty_chart ||
+//                        currentTab.getId() == R.id.mtp_one_hour_chart ||
+//                        currentTab.getId() == R.id.mtp_two_hour_chart ||
+//                        currentTab.getId() == R.id.mtp_four_hour_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//        /*R_K_120、R_K_240、R_K_60实际上用的是30分钟的标识,所以不会提示这里,FIXME  见case R_K_30:*/
+//            case MTPEnums.R_K_120:
+//            case MTPEnums.R_K_240:
+//            case MTPEnums.R_K_60: {
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_DAY: {
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    /**
+//     * 数据异常的处理
+//     *
+//     * @param obj
+//     */
+//    private void errorHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        HisDataResultData hisDataResultData = (HisDataResultData) data;
+//        if (hisDataResultData.getGoodsId() != goodsId) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        if (hisDataResultData.getGoodsId() != goodsId) {
+//            return;
+//        }
+//        switch (hisDataResultData.getHandleType()) {
+//            case R_R_TIME:
+//                // 数据错误不要作别的,下次会做处理
+//                break;
+//            case MTPEnums.R_TIK:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    showToast(R.string.load_error);
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.hideLineChart();
+//                    timeChartFragment.setNoneState(View.VISIBLE);
+//                }
+//                break;
+//            case MTPEnums.R_TIME_5:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    showToast(R.string.load_error);
+//                    timeChartFragment.dimiss();
+//                    // 如果是数据有问题,停止绘制,直到重新请求数据
+//                    drwaTimeChart = false;
+//                }
+//                break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5: {
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_30: {
+//                if (currentTab.getId() == R.id.mtp_thirty_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_120:
+//            case MTPEnums.R_K_240:
+//            case MTPEnums.R_K_60: {
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_DAY: {
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    /**
+//     * 网络错误处理
+//     *
+//     * @param obj
+//     */
+//    private void netErrorHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        int type = 0;
+//        try {
+//            if (data instanceof HisDataResultData) {
+//                HisDataResultData hisDataResultData = (HisDataResultData) data;
+//                if (hisDataResultData.getGoodsId() != goodsId) {
+//                    AsyncCallBackManager.getInstance().remove((Long) obj);
+//                    return;
+//                }
+//                if (hisDataResultData.getGoodsId() != goodsId) {
+//                    return;
+//                }
+//                type = hisDataResultData.getHandleType();
+//            } else if (data instanceof ReRequestTimeDataResult) {
+//                ReRequestTimeDataResult hisDataResultData = (ReRequestTimeDataResult) data;
+//                if (hisDataResultData.getGoodsId() != goodsId) {
+//                    AsyncCallBackManager.getInstance().remove((Long) obj);
+//                    return;
+//                }
+//                if (hisDataResultData.getGoodsId() != goodsId) {
+//                    return;
+//                }
+//                type = hisDataResultData.getHandleType();
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//        switch (type) {
+//            case MTPEnums.R_TIK:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+////                    showToast(R.string.load_net_error);
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.hideLineChart();
+//                    timeChartFragment.setNoneState(View.VISIBLE);
+//                }
+//                break;
+//            case R_TIME_1:
+//            case MTPEnums.R_TIME_5:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+////                    showToast(R.string.load_net_error);
+//                    timeChartFragment.dimiss();
+//                    drwaTimeChart = false;
+//                }
+//                break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5: {
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_30: {
+//                if (currentTab.getId() == R.id.mtp_thirty_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_120:
+//            case MTPEnums.R_K_240:
+//            case MTPEnums.R_K_60: {
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_DAY: {
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    Handler myHandler = new Handler(Looper.myLooper()) {
+//        public void handleMessage(Message msg) {
+//            switch (msg.what) {
+//                case Success: {
+//                    successHandle(msg.obj);
+//                }
+//                break;
+//                case ResponseError: {
+//                    errorHandle(msg.obj);
+//                }
+//                break;
+//
+//                case ResponseNull: {
+//                    nullHandle(msg.obj);
+//                }
+//                break;
+//                case TimeOut: {
+//                    timeOutHandle(msg.obj);
+//                }
+//                break;
+//
+//                case NetError: {
+//                    netErrorHandle(msg.obj);
+//                }
+//                break;
+//                default:
+//                    break;
+//            }
+//            AsyncCallBackManager.getInstance().remove((Long) msg.obj);
+//        }
+//    };
+//
+//    private void handleTimeOut(long serialNumber) {
+//        Message message = myHandler.obtainMessage(TimeOut);
+//        message.obj = serialNumber;
+//        message.sendToTarget();
+//    }
+//
+//    private void handleNetError(long serialNumber) {
+//        Message message = myHandler.obtainMessage(NetError);
+//        message.obj = serialNumber;
+//        message.sendToTarget();
+//    }
+//
+//    private void handleResponse(HistoryQuoteResponse gramObj, long serialNumber) {
+//        HistoryQuoteResponse response = gramObj;
+//        if (response == null) {
+//            // 解析失败,通知页面
+//            Message message = myHandler.obtainMessage(ResponseError);
+//            message.obj = serialNumber;
+//            message.sendToTarget();
+//            return;
+//        }
+//
+//        String symbol = response.getExchangeCode() + "_" + response.getGoodsCode().trim();
+//
+//
+//        if (goodsIdList != null && goodsIdList.size() > 0 && goodsIdList.size() >= (index + 1)) {
+//            goodsId = goodsIdList.get(index);
+//        }
+//
+//        if (!GlobalDataCollention.getInstance().getSymbolGoodsIdMap().get(symbol).contains(goodsId + "")) {
+//            // 如果不是返回当前的商品,直接返回
+//            return;
+//        }
+//
+//        if (response.getContent() == null) {
+//            // 数据为空,通知页面
+//            Message message = myHandler.obtainMessage(ResponseNull);
+//            message.obj = serialNumber;
+//            message.sendToTarget();
+//            return;
+//        }
+//        switch (response.getType()) {
+//            // 周期数据处理
+//            case MTPEnums.HistoryData_Second:
+//            case MTPEnums.HistoryData_Minute:
+//            case MTPEnums.HistoryData_Minute5: {
+//                ArrayList<HistoryCycle> cycleList = HistoryCycle.toObject(response);
+//                LogUtils.e("dayquote",
+//                        "得到" + response.getExchangeCode() + response.getGoodsCode() + "历史数据" + response.getType() + cycleList.size() + "条");
+//                MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), response.getType(),
+//                        cycleList);
+//            }
+//            break;
+//            case MTPEnums.HistoryData_Minute30:
+//            case MTPEnums.HistoryData_Minute60:
+//            case MTPEnums.HistoryData_Minute120:
+//            case MTPEnums.HistoryData_Minute240:
+//            case MTPEnums.HistoryData_Day: {
+//
+//                ArrayList<HistoryCycle> cycleList = new ArrayList<>();
+//
+//                // 转换为对象
+//                if (response.getType() == MTPEnums.HistoryData_Day) {
+//                    cycleList = HistoryCycle.toDayObject(response);
+//                } else {
+//                    cycleList = HistoryCycle.toObject(response);
+//                }
+//                // 日线是没有今天的数据的需要补
+//                if (response.getType() == MTPEnums.HistoryData_Day) {
+//                    Date startTime = dayOfTime(false);
+//                    if (cycleList.get(0).getStartTime().before(startTime)) {
+//                        HistoryCycle todayCycle = null;
+//                        if (isNeedNewFill(startTime)) {
+//                            todayCycle = cycleList.get(0);
+//                        } else {
+//                            todayCycle = new HistoryCycle();
+//                        }
+//                        if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//                            // 如果今天没有开盘就用昨收补
+//                            if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) == 0) {
+//                                todayCycle.setOpened(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                todayCycle.setHighest(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                todayCycle.setLowest(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                todayCycle.setClosed(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                            } else {
+//                                todayCycle.setOpened(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()));
+//                                todayCycle.setHighest(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getHighest()));
+//                                todayCycle.setLowest(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()));
+//                                todayCycle.setClosed(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPrice()));
+//                            }
+//                            todayCycle.setStartTime(startTime);
+//                        }
+//                        cycleList.add(todayCycle);
+//                    }
+//                }
+//
+//                //获取盘面数据
+//                QuoteDayBase base = GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsId).getQuoteDay();
+//
+//                if (cycleList != null && cycleList.size() > 1) {
+//                    if (base.getLastTime() != null && changeDatas(base.getLastTime()).getTime() == changeDatas(cycleList.get(0).getStartTime()).getTime()) {
+//                        //覆盖高低收
+//                        if (response.getType() == MTPEnums.HistoryData_Minute30) {
+////                            cycleList.get(cycleList.size() - 1).setHighest(Double.valueOf(base.getHighest()));
+////                            cycleList.get(cycleList.size() - 1).setLowest(Double.valueOf(base.getLowest()));
+////                            cycleList.get(cycleList.size() - 1).setClosed(Double.valueOf(base.getPreClose()));
+//                            cycleList.get(0).setClosed(Double.valueOf(base.getPrice()));
+//                        } else {
+//                            cycleList.get(0).setHighest(Double.valueOf(base.getHighest()));
+//                            cycleList.get(0).setLowest(Double.valueOf(base.getLowest()));
+//                            cycleList.get(0).setClosed(Double.valueOf(base.getPrice()));
+//                        }
+//                    } else {
+//                        //获取盘面数据
+//                        HistoryCycle lastCycle = new HistoryCycle();
+//
+//                        if (Double.valueOf(base.getOpened()) == 0) {
+//                            lastCycle.setOpened(Double.valueOf(base.getPreClose()));
+//                        } else {
+//                            lastCycle.setOpened(Double.valueOf(base.getOpened()));
+//                        }
+//
+//                        lastCycle.setClosed(Double.valueOf(base.getPreClose()));
+//
+//                        if (Double.valueOf(base.getLowest()) == 0) {
+//                            lastCycle.setLowest(Double.valueOf(base.getPreClose()));
+//                        } else {
+//                            lastCycle.setLowest(Double.valueOf(base.getLowest()));
+//                        }
+//
+//                        if (Double.valueOf(base.getHighest()) == 0) {
+//                            lastCycle.setHighest(Double.valueOf(base.getPreClose()));
+//                        } else {
+//                            lastCycle.setHighest(Double.valueOf(base.getHighest()));
+//                        }
+//
+//                        lastCycle.setSettlePrice(Double.valueOf(base.getSettle()));
+//                        if (GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsId).getTradeMode() == MTPEnums.TRADEMODE_BIDDING) {
+//                            lastCycle.setTotleTurnover(Double.valueOf(((BidQuoteDay) base).getTotalTurnover()));
+//                            lastCycle.setTotleVolume(Double.valueOf(((BidQuoteDay) base).getTotalVolume()));
+//                        }
+//                        lastCycle.setStartTime(changeDatas(cycleList.get(0).getStartTime()));
+//                    }
+//                }
+//                LogUtils.e("dayquote",
+//                        "得到" + response.getExchangeCode() + response.getGoodsCode() + "历史数据" + response.getType() + cycleList.size() + "条");
+//                // 将得到的数据存起来
+//                if (dataType == ChartConstant.K_60) {
+//                    KLineControl kLineControl = new KLineControl();
+//                    cycleList = kLineControl.thirdToHourLine(cycleList, 2, Config.IS_FRONT);
+//                    MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), MTPEnums.HistoryData_Minute60,
+//                            cycleList);
+//                } else if (dataType == ChartConstant.K_120) {
+//                    KLineControl kLineControl = new KLineControl();
+//                    cycleList = kLineControl.thirdToHourLine(cycleList, 4, Config.IS_FRONT);
+//                    MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), MTPEnums.HistoryData_Minute120,
+//                            cycleList);
+//                } else if (dataType == ChartConstant.K_240) {
+//                    KLineControl kLineControl = new KLineControl();
+//                    cycleList = kLineControl.thirdToHourLine(cycleList, 8, Config.IS_FRONT);
+//                    MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), MTPEnums.HistoryData_Minute240,
+//                            cycleList);
+//                } else {
+//                    MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), response.getType(),
+//                            cycleList);
+//                }
+//                // 成功处理完数据,可通知页面
+//                break;
+//            }
+//            // tik数据处理
+//            case MTPEnums.HistoryData_Tik: {
+//                ArrayList<HistoryTik> tikList = HistoryTik.toObject(response);
+//                LogUtils.e("dayquote", "得到" + response.getExchangeCode() + response.getGoodsCode() + "tik数据" + response.getType() + "-"
+//                        + tikList.size() + "条");
+//                MarketDataTools.inputHistoryTik(response.getExchangeCode(), response.getGoodsCode().trim(), tikList);
+//                // 成功处理完数据,可通知页面
+//                break;
+//            }
+//            default:
+//                break;
+//        }
+//
+//        Message message = myHandler.obtainMessage(Success);
+//        message.obj = serialNumber;
+//        message.sendToTarget();
+//    }
+//
+//    @Override
+//    protected void onDestroy() {
+//        super.onDestroy();
+//        mtpChartControl.disposed();
+//    }
+//
+//
+//    /******************************* 网络请求 ******************************/
+//
+//    /**
+//     * 重新请求分时图
+//     *
+//     * @param startTime
+//     */
+//    @Override
+//    public void requestTimeData(Date startTime, Date endTime, long goodsId) {
+//        if (lastRqMillisecond > 0 && System.currentTimeMillis() - lastRqMillisecond <= 60000) {
+//            return;
+//        }
+//        lastRqMillisecond = System.currentTimeMillis();
+//        ChartReqsManager.requestTimeData(startTime, endTime, goodsId, goodsInfoAndQuotes, this);
+//    }
+//
+//
+//    /**
+//     * 增量请求
+//     *
+//     * @param type
+//     */
+//    private void requestKChartDataMore(int type, final int handleType) {
+//        ChartReqsManager.requestKChartDataMore(type, handleType, goodsInfoAndQuotes, this);
+//    }
+//
+//    /**
+//     * 增量请求当前最新后面的数据
+//     *
+//     * @param type
+//     */
+//    private void requestKChartDataLast(int type, final int handleType) {
+//        ChartReqsManager.requestKChartDataLast(dataType, type, handleType, getGoodsInfoAndQuotes(), this);
+//    }
+//
+//    /**
+//     * 请求最新20笔tik
+//     */
+//    public void requestHistoryTikData() {
+//        ChartReqsManager.requestHistoryTikData(goodsInfoAndQuotes, this);
+//    }
+//
+//    /**
+//     * 请求历史行情
+//     *
+//     * @param type
+//     * @param handleType 操作类型,用来回调的时候准确地找到之前是做的什么请求
+//     */
+//    public void requestKChartData(int type, final int handleType) {
+//        /***********
+//         *  !!!!!!!!!!!!!!!!!! 注意  注意  注意  这里有个坑  别跳
+//         *  如果是请求日线历史的情况  : 大小类号有改变
+//         *  回收的消息包  解析的时候  要增加一个价格  导致包长度增加四位
+//         */
+//        ChartReqsManager.requestKChartData(type
+//                , handleType
+//                , goodsInfoAndQuotes
+//                , this);
+//    }
+//
+//
+//    /**
+//     * 请求分时图的历史行情。
+//     */
+//    public void requestTimeChartData(int type, final int handleType) {
+//        ChartReqsManager.requestTimeChartData(settlementPlan, type, handleType, goodsInfoAndQuotes, this);
+//    }
+//
+//
+//    @Override
+//    public void onSuccess(HistoryQuoteResponse response, long serialNumber) {
+//        handleResponse(response, serialNumber);
+//    }
+//
+//    @Override
+//    public void onTimeOut(long serialNumber) {
+//        handleTimeOut(serialNumber);
+//    }
+//
+//    @Override
+//    public void onRequestNetError(long serialNumber) {
+//        handleNetError(serialNumber);
+//    }
+//
+//    public Date changeDatas(Date dateOld) {
+//        String sDateTime = new SimpleDateFormat("yyyy-MM-dd").format(dateOld);// 把date类型的时间转换为string
+//
+//        //服务器时间是UTC时间 所以这里转换一下
+//        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+//        Date date = null;
+//        try {
+//            return formatter.parse(sDateTime);
+//
+//        } catch (ParseException e) {
+//            e.printStackTrace();
+//        }
+//        return null;
+//    }
+//}

+ 494 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/AttornDataControl.java

@@ -0,0 +1,494 @@
+package cn.muchinfo.rma.view.base.chart.old.controls;
+//
+//import android.content.Context;
+//import android.view.LayoutInflater;
+//import android.view.View;
+//import android.widget.TextView;
+//
+//import java.util.ArrayList;
+//
+//import mtp.polymer.com.QuoteCollention;
+//import mtp.polymer.com.R;
+//import mtp.polymer.com.businesslayer.constant.FunCode;
+//import mtp.polymer.com.businesslayer.message.MessageEvent;
+//import mtp.polymer.com.businesslayer.message.MessageingManager;
+//import mtp.polymer.com.businesslayer.message.OnMessageListener;
+//import mtp.polymer.com.businesslayer.resolver.data.market.BidQuoteDay;
+//import mtp.polymer.com.businesslayer.resolver.marketdata.data.GoodsInfoAndQuotes;
+//import mtp.polymer.com.global.Config;
+//import mtp.polymer.com.main.chart.data.ListingAskStoreOrderData;
+//import mtp.polymer.com.main.chart.data.ListingBidStoreOrderData;
+//import mtp.polymer.com.tools.MathUtil;
+//import mtp.polymer.com.tools.MyUtils;
+//
+///**
+// * 挂牌转让
+// * 独自维护生命周期
+// *
+// * @author Administrator
+// */
+//public class AttornDataControl implements OnMessageListener {
+//    private Context mContext;
+//    private View view;
+//    private GoodsInfoAndQuotes goodsInfoAndQuotes;
+//    private TextView nh_sale;
+//    private TextView nh_buy;
+//    // 买卖五档
+//    private TextView mtp_value_sale_five;
+//    private TextView mtp_sum_sale_five;
+//    private TextView mtp_value_sale_four;
+//    private TextView mtp_sum_sale_four;
+//    private TextView mtp_value_sale_three;
+//    private TextView mtp_sum_sale_three;
+//    private TextView mtp_value_sale_two;
+//    private TextView mtp_sum_sale_two;
+//    private TextView mtp_value_sale_one;
+//    private TextView mtp_sum_sale_one;
+//
+//    private TextView mtp_value_buy_one;
+//    private TextView mtp_sum_buy_one;
+//    private TextView mtp_value_buy_two;
+//    private TextView mtp_sum_buy_two;
+//    private TextView mtp_value_buy_three;
+//    private TextView mtp_sum_buy_three;
+//    private TextView mtp_value_buy_four;
+//    private TextView mtp_sum_buy_four;
+//    private TextView mtp_value_buy_five;
+//    private TextView mtp_sum_buy_five;
+//    private TextView loading_view_text;
+//
+//    private AttornDataControl() {
+//    }
+//
+//    private void initViews() {
+//        view = LayoutInflater.from(mContext).inflate(R.layout.chart_attorn, null);
+//
+//        nh_sale = view.findViewById(R.id.nh_sale);
+//        nh_buy = view.findViewById(R.id.nh_buy);
+//
+//        mtp_value_sale_five = view.findViewById(R.id.mtp_value_sale_five);
+//        mtp_sum_sale_five = view.findViewById(R.id.mtp_sum_sale_five);
+//
+//        mtp_value_sale_four = view.findViewById(R.id.mtp_value_sale_four);
+//        mtp_sum_sale_four = view.findViewById(R.id.mtp_sum_sale_four);
+//
+//        mtp_value_sale_three = view.findViewById(R.id.mtp_value_sale_three);
+//        mtp_sum_sale_three = view.findViewById(R.id.mtp_sum_sale_three);
+//
+//        mtp_value_sale_two = view.findViewById(R.id.mtp_value_sale_two);
+//        mtp_sum_sale_two = view.findViewById(R.id.mtp_sum_sale_two);
+//
+//        mtp_value_sale_one = view.findViewById(R.id.mtp_value_sale_one);
+//        mtp_sum_sale_one = view.findViewById(R.id.mtp_sum_sale_one);
+//
+//        mtp_value_buy_one = view.findViewById(R.id.mtp_value_buy_one);
+//        mtp_sum_buy_one = view.findViewById(R.id.mtp_sum_buy_one);
+//
+//        mtp_value_buy_two = view.findViewById(R.id.mtp_value_buy_two);
+//        mtp_sum_buy_two = view.findViewById(R.id.mtp_sum_buy_two);
+//
+//        mtp_value_buy_three = view.findViewById(R.id.mtp_value_buy_three);
+//        mtp_sum_buy_three = view.findViewById(R.id.mtp_sum_buy_three);
+//
+//        mtp_value_buy_four = view.findViewById(R.id.mtp_value_buy_four);
+//        mtp_sum_buy_four = view.findViewById(R.id.mtp_sum_buy_four);
+//
+//        mtp_value_buy_five = view.findViewById(R.id.mtp_value_buy_five);
+//        mtp_sum_buy_five = view.findViewById(R.id.mtp_sum_buy_five);
+//    }
+//
+//    public View getView() {
+//        return view;
+//    }
+//
+//    /**
+//     * 实例化
+//     *
+//     * @param context
+//     * @param goodsid
+//     */
+//    public AttornDataControl(Context context, String goodsid) {
+//        MessageingManager.getInstance().regiter(this);
+//        this.mContext = context;
+//        initViews();
+//        fetchForRefresh(goodsid);
+//    }
+//
+//    /**
+//     * 实例化
+//     *
+//     * @param context
+//     * @param goodsInfoAndQuotes
+//     */
+//    public AttornDataControl(Context context, GoodsInfoAndQuotes goodsInfoAndQuotes) {
+//        MessageingManager.getInstance().regiter(this);
+//        this.mContext = context;
+//        initViews();
+//        this.goodsInfoAndQuotes = goodsInfoAndQuotes;
+//        if (supportAttorn()) {
+//            fetchForRefresh(goodsInfoAndQuotes.getGoodsInfo().getGoodsId() + "");
+//        }
+//    }
+//
+//
+//    /**
+//     * 是否支持挂牌转让
+//     *
+//     * @return
+//     */
+//    public boolean supportAttorn() {
+//        return Config.QUOTED_TRANSFER;
+////		if (goodsInfoAndQuotes == null) {
+////			return false;
+////		}
+////		return goodsInfoAndQuotes.getTradeMode() == MTPEnums.BIDDING &&
+////				goodsInfoAndQuotes.getGoodsInfo().getMoneyMode() == MTPEnums.MONEYMODE_PAY &&
+////				MTPApplication.getInstance().isBidAttornMode(goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//    }
+//
+//    public void destory() {
+//        MessageingManager.getInstance().unRegiter(this);
+//    }
+//
+//    public void clearAndGone() {
+//        mtp_value_sale_five.setText("");
+//        mtp_sum_sale_five.setText("");
+//        mtp_value_sale_four.setText("");
+//        mtp_sum_sale_four.setText("");
+//        mtp_value_sale_three.setText("");
+//        mtp_sum_sale_three.setText("");
+//        mtp_value_sale_two.setText("");
+//        mtp_sum_sale_two.setText("");
+//        mtp_value_sale_one.setText("");
+//        mtp_sum_sale_one.setText("");
+//
+//        mtp_value_buy_one.setText("");
+//        mtp_sum_buy_one.setText("");
+//        mtp_value_buy_two.setText("");
+//        mtp_sum_buy_two.setText("");
+//        mtp_value_buy_three.setText("");
+//        mtp_sum_buy_three.setText("");
+//        mtp_value_buy_four.setText("");
+//        mtp_sum_buy_four.setText("");
+//        mtp_value_buy_five.setText("");
+//        mtp_sum_buy_five.setText("");
+//
+//        mtp_value_sale_five.setVisibility(View.GONE);
+//        mtp_sum_sale_five.setVisibility(View.GONE);
+//        mtp_value_sale_four.setVisibility(View.GONE);
+//        mtp_sum_sale_four.setVisibility(View.GONE);
+//        mtp_value_sale_three.setVisibility(View.GONE);
+//        mtp_sum_sale_three.setVisibility(View.GONE);
+//        mtp_value_sale_two.setVisibility(View.GONE);
+//        mtp_sum_sale_two.setVisibility(View.GONE);
+//        mtp_value_sale_one.setVisibility(View.GONE);
+//        mtp_sum_sale_one.setVisibility(View.GONE);
+//
+//        mtp_value_buy_one.setVisibility(View.GONE);
+//        mtp_sum_buy_one.setVisibility(View.GONE);
+//        mtp_value_buy_two.setVisibility(View.GONE);
+//        mtp_sum_buy_two.setVisibility(View.GONE);
+//        mtp_value_buy_three.setVisibility(View.GONE);
+//        mtp_sum_buy_three.setVisibility(View.GONE);
+//        mtp_value_buy_four.setVisibility(View.GONE);
+//        mtp_sum_buy_four.setVisibility(View.GONE);
+//        mtp_value_buy_five.setVisibility(View.GONE);
+//        mtp_sum_buy_five.setVisibility(View.GONE);
+//    }
+//
+//    /**
+//     * 重新获取数据
+//     */
+//    public void fetchForRefresh(String goodsid) {
+////		try {
+////			SendMessageController.getCommonMode().queryAskStoreOrder(goodsid, MTPApplication.getInstance().getTransferHubCenter());
+////		} catch (Exception e) {
+////			e.printStackTrace();
+////		}
+////		try {
+////			SendMessageController.getCommonMode().queryBidStoreOrder(goodsid, MTPApplication.getInstance().getTransferHubCenter());
+////		} catch (Exception e) {
+////			e.printStackTrace();
+////		}
+//        clearAndGone();
+//        dealBidQueue();
+//        dealAskQueue();
+//
+//    }
+//
+//    private synchronized void dealBidQueue() {
+//
+//        BidQuoteDay quoteTik = (BidQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//        if (quoteTik == null) {
+//            return;
+//        }
+//        String bidQueueInfo = quoteTik.getBidQueueInfo();
+//
+////		String bidQueueInfo = "万俊甫,55023,12182038123810238,10,25.22;";
+//        if (bidQueueInfo != null && !bidQueueInfo.equals("")) {// 买委托列队
+//            boolean ret = QuoteCollention.getInstance().addBidStoreOrderDatas(bidQueueInfo);// 添加到本地列队中...
+//            if (ret) {
+//                // 请求
+//                try {
+////					SendMessageController.getCommonMode().queryBidStoreOrder(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGoodsId()),
+////							MTPApplication.getInstance().getTransferHubCenter());
+////					Toast.makeText(mContext, "AttornDataControl.行情中有该账号的数据,重新请求", Toast.LENGTH_SHORT).show();
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            } else {
+//                clearDown();
+//                reFreshBidData();
+//            }
+//        } else {
+//            clearDown();
+//            QuoteCollention.getInstance().getBidStoreOrderDatas().clear();
+//            reFreshBidData();
+//        }
+//    }
+//
+//    private synchronized void dealAskQueue() {
+//        BidQuoteDay quoteTik = (BidQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//        if (quoteTik == null) {
+//            return;
+//        }
+//        String askQueueInfo = quoteTik.getAskQueueInfo();
+////		String askQueueInfo = "万俊甫1,55022,12182038123810233,11,25.11;";
+//        if (askQueueInfo != null && !askQueueInfo.equals("")) {// 卖委托列队
+//            boolean ret = QuoteCollention.getInstance().addAskStoreOrderDatas(askQueueInfo);
+//            if (ret) {
+//                // 请求
+//                try {
+////					SendMessageController.getCommonMode().queryAskStoreOrder(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGoodsId()),
+////							MTPApplication.getInstance().getTransferHubCenter());
+////					Toast.makeText(mContext, "Attorn ask.行情中有该账号的数据,重新请求", Toast.LENGTH_SHORT).show();
+//
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            } else {
+//                clearUp();
+//                reFreshAskData();
+//            }
+//        } else {
+//            QuoteCollention.getInstance().getAskStoreOrderDatas().clear();
+//            clearUp();
+//            reFreshAskData();
+//        }
+//    }
+//
+//    @Override
+//    public void onMessageEventThread(MessageEvent messageEvent) {
+//        if (FunCode.QUOTE == messageEvent.getFunCode()) {
+//            boolean canGo = false;
+//            if (messageEvent.getMessageInfo() instanceof ArrayList) {
+//                ArrayList<String> arrayList = (ArrayList) messageEvent.getMessageInfo();
+//                for (int a = 0; a < arrayList.size(); a++) {
+//                    String goodsCode = "";
+//                    if (arrayList.get(a).contains("_")) {
+//                        goodsCode = arrayList.get(a).split("_")[1];
+//                        if (goodsInfoAndQuotes.getGoodsInfo().getGoodsCode().equals(goodsCode)) {
+//                            canGo = true;
+//                            break;
+//                        }
+//                    }
+//                }
+//            }
+//            if (canGo) {
+//                dealBidQueue();
+//                dealAskQueue();
+//            }
+//
+//        } else if (FunCode.QueryAskStoreOrder.equals(messageEvent.getQueryCommonId())) {// 市场上全部的竞价卖持仓
+//            clearUp();
+//            reFreshAskData();
+//        } else if (FunCode.QueryBidStoreOrder.equals(messageEvent.getQueryCommonId())) {// 市场上全部的竞价买持仓
+//            clearDown();
+//            reFreshBidData();
+//        }
+//    }
+//
+//    private void reFreshBidData() {
+//        ArrayList<ListingBidStoreOrderData> arrayList = QuoteCollention.getInstance().getBidStoreOrderDatas();
+//        ListingBidStoreOrderData askStoreOrderData = null;
+//        String name = "";
+//        String price = "";
+//        String count = "";
+//        int decimalPlace = 0;
+//
+////			if (arrayList.size() == 0) {
+////				nh_buy.setVisibility(View.GONE);
+////			}
+//        for (int i = 0; i < arrayList.size(); i++) {
+//            if (i >= 5) {
+//                return;
+//            }
+//            askStoreOrderData = arrayList.get(i);
+//            decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//            name = askStoreOrderData.getAccountname();
+//            if (name != null && name.length() > 1) {
+//                name = MyUtils.makeNameSecret(name);
+//            }
+//
+//            price = MathUtil.roundNum(askStoreOrderData.getOrderprice(), decimalPlace);
+//
+//            count = askStoreOrderData.getEnableqty();
+//            switch (i + 5) {
+//                case 0:
+//                    showItem(mtp_value_sale_five, mtp_sum_sale_five, name, price, count);
+//                    break;
+//                case 1:
+//                    showItem(mtp_value_sale_four, mtp_sum_sale_four, name, price, count);
+//                    break;
+//                case 2:
+//                    showItem(mtp_value_sale_three, mtp_sum_sale_three, name, price, count);
+//                    break;
+//                case 3:
+//                    showItem(mtp_value_sale_two, mtp_sum_sale_two, name, price, count);
+//                    break;
+//                case 4:
+//                    showItem(mtp_value_sale_one, mtp_sum_sale_one, name, price, count);
+//                    break;
+//                case 5:
+//                    showItem(mtp_value_buy_one, mtp_sum_buy_one, name, price, count);
+//                    break;
+//                case 6:
+//                    showItem(mtp_value_buy_two, mtp_sum_buy_two, name, price, count);
+//                    break;
+//                case 7:
+//                    showItem(mtp_value_buy_three, mtp_sum_buy_three, name, price, count);
+//                    break;
+//                case 8:
+//                    showItem(mtp_value_buy_four, mtp_sum_buy_four, name, price, count);
+//                    break;
+//                case 9:
+//                    showItem(mtp_value_buy_five, mtp_sum_buy_five, name, price, count);
+//                    break;
+//                default:
+//                    break;
+//            }
+//        }
+//    }
+//
+//    /**
+//     * 隐藏名字后面的文字
+//     *
+//     * @return 哇哈哈->哇**
+//     */
+//    public static String makeNameSecret(String name) {
+//        if (name == null || "".equals(name)) {
+//            return "";
+//        }
+//        if (name.length() == 1) {
+//            return name;
+//        }
+//        char tem = '*';
+//        char[] value = name.toCharArray();
+//        for (int a = 0; a < value.length; a++) {
+//            if (a != 0) {
+//                value[a] = tem;
+//            }
+//        }
+//        name = new String(value);
+//        return name;
+//    }
+//
+//
+//    private void clearUp() {
+//        mtp_value_sale_five.setVisibility(View.GONE);
+//        mtp_sum_sale_five.setVisibility(View.GONE);
+//        mtp_value_sale_four.setVisibility(View.GONE);
+//        mtp_sum_sale_four.setVisibility(View.GONE);
+//        mtp_value_sale_three.setVisibility(View.GONE);
+//        mtp_sum_sale_three.setVisibility(View.GONE);
+//        mtp_value_sale_two.setVisibility(View.GONE);
+//        mtp_sum_sale_two.setVisibility(View.GONE);
+//        mtp_value_sale_one.setVisibility(View.GONE);
+//        mtp_sum_sale_one.setVisibility(View.GONE);
+//
+//    }
+//
+//    private void clearDown() {
+//        mtp_value_buy_one.setVisibility(View.GONE);
+//        mtp_sum_buy_one.setVisibility(View.GONE);
+//        mtp_value_buy_two.setVisibility(View.GONE);
+//        mtp_sum_buy_two.setVisibility(View.GONE);
+//        mtp_value_buy_three.setVisibility(View.GONE);
+//        mtp_sum_buy_three.setVisibility(View.GONE);
+//        mtp_value_buy_four.setVisibility(View.GONE);
+//        mtp_sum_buy_four.setVisibility(View.GONE);
+//        mtp_value_buy_five.setVisibility(View.GONE);
+//        mtp_sum_buy_five.setVisibility(View.GONE);
+//    }
+//
+//
+//    private void reFreshAskData() {
+//        ArrayList<ListingAskStoreOrderData> arrayList = QuoteCollention.getInstance().getAskStoreOrderDatas();
+//        ListingAskStoreOrderData askStoreOrderData = null;
+//        String name = "";
+//        String price = "";
+//        String count = "";
+//        int decimalPlace = 0;
+////			if (arrayList.size() == 0) {
+////				nh_sale.setVisibility(View.GONE);
+////			}
+//        for (int i = 0; i < arrayList.size(); i++) {
+//            if (i >= 5) {// 最多就只显示10个持仓
+//                return;
+//            }
+//            askStoreOrderData = arrayList.get(i);
+//            decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//            name = askStoreOrderData.getAccountname();
+//            if (name != null && name.length() > 1) {
+//                name = MyUtils.makeNameSecret(name);
+//            }
+//
+//            price = MathUtil.roundNum(askStoreOrderData.getOrderprice(), decimalPlace);
+//
+//            count = askStoreOrderData.getEnableqty();
+//            switch (i) {
+//                case 0:
+//                    showItem(mtp_value_sale_five, mtp_sum_sale_five, name, price, count);
+//                    break;
+//                case 1:
+//                    showItem(mtp_value_sale_four, mtp_sum_sale_four, name, price, count);
+//                    break;
+//                case 2:
+//                    showItem(mtp_value_sale_three, mtp_sum_sale_three, name, price, count);
+//                    break;
+//                case 3:
+//                    showItem(mtp_value_sale_two, mtp_sum_sale_two, name, price, count);
+//                    break;
+//                case 4:
+//                    showItem(mtp_value_sale_one, mtp_sum_sale_one, name, price, count);
+//                    break;
+//                case 5:
+//                    showItem(mtp_value_buy_one, mtp_sum_buy_one, name, price, count);
+//                    break;
+//                case 6:
+//                    showItem(mtp_value_buy_two, mtp_sum_buy_two, name, price, count);
+//                    break;
+//                case 7:
+//                    showItem(mtp_value_buy_three, mtp_sum_buy_three, name, price, count);
+//                    break;
+//                case 8:
+//                    showItem(mtp_value_buy_four, mtp_sum_buy_four, name, price, count);
+//                    break;
+//                case 9:
+//                    showItem(mtp_value_buy_five, mtp_sum_buy_five, name, price, count);
+//                    break;
+//                default:
+//                    break;
+//            }
+//        }
+//    }
+//
+//    private void showItem(TextView namePrice, TextView count, String name, String price, String countValue) {
+//        namePrice.setVisibility(View.VISIBLE);
+//        count.setVisibility(View.VISIBLE);
+//
+//        namePrice.setText(name + "  " + price);
+//        count.setText(MathUtil.roundNoNum(countValue, 0));
+//    }
+//
+//}

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/MTPChartControl.java → RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/MTPChartControl.java

@@ -1,4 +1,4 @@
-package cn.muchinfo.rma.view.base.chart.old;
+package cn.muchinfo.rma.view.base.chart.old.controls;
 
 import android.app.Activity;
 import android.content.res.Configuration;

+ 33 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/OTCChartControl.java

@@ -0,0 +1,33 @@
+package cn.muchinfo.rma.view.base.chart.old.controls;
+
+import android.app.Activity;
+
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+public class OTCChartControl extends MTPChartControl {
+    protected static OTCChartControl _instance;
+    private static Lock _lock = new ReentrantLock();
+
+    public static OTCChartControl getInstance(Activity activity) {
+        if (_instance == null) {
+            _lock.lock();
+            if (_instance == null) {
+                _instance = new OTCChartControl(activity);
+            }
+            _lock.unlock();
+        }
+
+        return _instance;
+    }
+
+
+    private OTCChartControl(Activity activity) {
+        super(activity);
+    }
+
+//	public void clear() {
+//		_instance = null;
+//		disposed();
+//	}
+}

+ 1 - 21
RMA/chart/src/main/java/com/desfate/chart/ui/old/OTC/timeCharts/KChartFragment.java → RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/timeCharts/KChartFragment.java

@@ -1,24 +1,4 @@
-package com.desfate.chart.ui.old.OTC.timeCharts;
-
-import android.content.res.Resources.NotFoundException;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.os.CountDownTimer;
-import android.text.Html;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.view.animation.LinearInterpolator;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.PopupWindow;
-import android.widget.TextView;
-
-import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.List;
+package cn.muchinfo.rma.view.base.chart.old.timeCharts;
 
 //
 ///**

+ 1 - 30
RMA/chart/src/main/java/com/desfate/chart/ui/old/OTC/timeCharts/TimeChartFragment.java → RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/timeCharts/TimeChartFragment.java

@@ -1,33 +1,4 @@
-package com.desfate.chart.ui.old.OTC.timeCharts;
-
-import android.content.res.Configuration;
-import android.content.res.Resources.NotFoundException;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.os.CountDownTimer;
-import android.os.Handler;
-import android.util.TypedValue;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.view.animation.LinearInterpolator;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedList;
-import java.util.List;
+package cn.muchinfo.rma.view.base.chart.old.timeCharts;
 
 
 /**

+ 390 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/CustomPopWindow.java

@@ -0,0 +1,390 @@
+package cn.muchinfo.rma.view.base.chart.old.views;
+
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Build;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.PopupWindow;
+
+/**
+ *
+ * 自定义PopWindow类,封装了PopWindow的一些常用属性,用Builder模式支持链式调用
+ * Created by zhouwei on 16/11/28.
+ */
+
+public class CustomPopWindow implements PopupWindow.OnDismissListener{
+    private static final String TAG = "CustomPopWindow";
+    private static final float DEFAULT_ALPHA = 0.7f;
+    private Context mContext;
+    private int mWidth;
+    private int mHeight;
+    private boolean mIsFocusable = true;
+    private boolean mIsOutside = true;
+    private int mResLayoutId = -1;
+    private View mContentView;
+    private PopupWindow mPopupWindow;
+    private int mAnimationStyle = -1;
+
+    private boolean mClippEnable = true;//default is true
+    private boolean mIgnoreCheekPress = false;
+    private int mInputMode = -1;
+    private PopupWindow.OnDismissListener mOnDismissListener;
+    private int mSoftInputMode = -1;
+    private boolean mTouchable = true;//default is ture
+    private View.OnTouchListener mOnTouchListener;
+
+    private Window mWindow;//当前Activity 的窗口
+    /**
+     * 弹出PopWindow 背景是否变暗,默认不会变暗。
+     */
+    private boolean mIsBackgroundDark = false;
+
+    private float mBackgroundDrakValue = 0;// 背景变暗的值,0 - 1
+    /**
+     * 设置是否允许点击 PopupWindow之外的地方,关闭PopupWindow
+     */
+    private boolean enableOutsideTouchDisMiss = true;// 默认点击pop之外的地方可以关闭
+
+    private CustomPopWindow(Context context){
+        mContext = context;
+    }
+
+    public int getWidth() {
+        return mWidth;
+    }
+
+    public int getHeight() {
+        return mHeight;
+    }
+
+    /**
+     *
+     * @param anchor
+     * @param xOff
+     * @param yOff
+     * @return
+     */
+    public CustomPopWindow showAsDropDown(View anchor, int xOff, int yOff){
+        if(mPopupWindow!=null){
+            mPopupWindow.showAsDropDown(anchor,xOff,yOff);
+        }
+        return this;
+    }
+
+    public CustomPopWindow showAsDropDown(View anchor){
+        if(mPopupWindow!=null){
+            mPopupWindow.showAsDropDown(anchor);
+        }
+        return this;
+    }
+
+
+    @TargetApi(Build.VERSION_CODES.KITKAT)
+    public CustomPopWindow showAsDropDown(View anchor, int xOff, int yOff, int gravity){
+        if(mPopupWindow!=null){
+            mPopupWindow.showAsDropDown(anchor,xOff,yOff,gravity);
+        }
+        return this;
+    }
+
+
+    /**
+     * 相对于父控件的位置(通过设置Gravity.CENTER,下方Gravity.BOTTOM等 ),可以设置具体位置坐标
+     * @param parent 父控件
+     * @param gravity
+     * @param x the popup's x location offset
+     * @param y the popup's y location offset
+     * @return
+     */
+    public CustomPopWindow showAtLocation(View parent, int gravity, int x, int y){
+        if(mPopupWindow!=null){
+            mPopupWindow.showAtLocation(parent,gravity,x,y);
+        }
+        return this;
+    }
+
+    /**
+     * 添加一些属性设置
+     * @param popupWindow
+     */
+    private void apply(PopupWindow popupWindow){
+        popupWindow.setClippingEnabled(mClippEnable);
+        if(mIgnoreCheekPress){
+            popupWindow.setIgnoreCheekPress();
+        }
+        if(mInputMode!=-1){
+            popupWindow.setInputMethodMode(mInputMode);
+        }
+        if(mSoftInputMode!=-1){
+            popupWindow.setSoftInputMode(mSoftInputMode);
+        }
+        if(mOnDismissListener!=null){
+            popupWindow.setOnDismissListener(mOnDismissListener);
+        }
+        if(mOnTouchListener!=null){
+            popupWindow.setTouchInterceptor(mOnTouchListener);
+        }
+        popupWindow.setTouchable(mTouchable);
+
+
+
+    }
+
+    private PopupWindow build(){
+
+        if(mContentView == null){
+            mContentView = LayoutInflater.from(mContext).inflate(mResLayoutId,null);
+        }
+
+        // 2017.3.17 add
+        // 获取当前Activity的window
+        Activity activity = (Activity) mContentView.getContext();
+        if(activity!=null && mIsBackgroundDark){
+            //如果设置的值在0 - 1的范围内,则用设置的值,否则用默认值
+            final  float alpha = (mBackgroundDrakValue > 0 && mBackgroundDrakValue < 1) ? mBackgroundDrakValue : DEFAULT_ALPHA;
+            mWindow = activity.getWindow();
+            WindowManager.LayoutParams params = mWindow.getAttributes();
+            params.alpha = alpha;
+            mWindow.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+            mWindow.setAttributes(params);
+        }
+
+
+        if(mWidth != 0 && mHeight!=0 ){
+            mPopupWindow = new PopupWindow(mContentView,mWidth,mHeight);
+        }else{
+            mPopupWindow = new PopupWindow(mContentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        }
+        if(mAnimationStyle!=-1){
+            mPopupWindow.setAnimationStyle(mAnimationStyle);
+        }
+
+        apply(mPopupWindow);//设置一些属性
+
+        if(mWidth == 0 || mHeight == 0){
+            mPopupWindow.getContentView().measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+            //如果外面没有设置宽高的情况下,计算宽高并赋值
+            mWidth = mPopupWindow.getContentView().getMeasuredWidth();
+            mHeight = mPopupWindow.getContentView().getMeasuredHeight();
+        }
+
+        // 添加dissmiss 监听
+        mPopupWindow.setOnDismissListener(this);
+
+        //2017.6.27 add:fix 设置  setOutsideTouchable(false)点击外部取消的bug.
+        // 判断是否点击PopupWindow之外的地方关闭 popWindow
+        if(!enableOutsideTouchDisMiss){
+            //注意这三个属性必须同时设置,不然不能disMiss,以下三行代码在Android 4.4 上是可以,然后在Android 6.0以上,下面的三行代码就不起作用了,就得用下面的方法
+            mPopupWindow.setFocusable(true);
+            mPopupWindow.setOutsideTouchable(false);
+            mPopupWindow.setBackgroundDrawable(null);
+            //注意下面这三个是contentView 不是PopupWindow
+            mPopupWindow.getContentView().setFocusable(true);
+            mPopupWindow.getContentView().setFocusableInTouchMode(true);
+            mPopupWindow.getContentView().setOnKeyListener(new View.OnKeyListener() {
+                @Override
+                public boolean onKey(View v, int keyCode, KeyEvent event) {
+                    if (keyCode == KeyEvent.KEYCODE_BACK) {
+                        mPopupWindow.dismiss();
+
+                        return true;
+                    }
+                    return false;
+                }
+            });
+            //在Android 6.0以上 ,只能通过拦截事件来解决
+            mPopupWindow.setTouchInterceptor(new View.OnTouchListener() {
+                @Override
+                public boolean onTouch(View v, MotionEvent event) {
+
+                    final int x = (int) event.getX();
+                    final int y = (int) event.getY();
+
+                    if ((event.getAction() == MotionEvent.ACTION_DOWN)
+                            && ((x < 0) || (x >= mWidth) || (y < 0) || (y >= mHeight))) {
+                        Log.e(TAG,"out side ");
+                        Log.e(TAG,"width:"+mPopupWindow.getWidth()+"height:"+mPopupWindow.getHeight()+" x:"+x+" y  :"+y);
+                        return true;
+                    } else if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
+                        Log.e(TAG,"out side ...");
+                        return true;
+                    }
+                    return false;
+                }
+            });
+        }else{
+            mPopupWindow.setFocusable(mIsFocusable);
+            mPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+            mPopupWindow.setOutsideTouchable(mIsOutside);
+        }
+        // update
+        mPopupWindow.update();
+
+        return mPopupWindow;
+    }
+
+    @Override
+    public void onDismiss() {
+        dissmiss();
+    }
+
+    /**
+     * 关闭popWindow
+     */
+    public void dissmiss(){
+
+        if(mOnDismissListener!=null){
+            mOnDismissListener.onDismiss();
+        }
+
+        //如果设置了背景变暗,那么在dissmiss的时候需要还原
+        if(mWindow!=null){
+            WindowManager.LayoutParams params = mWindow.getAttributes();
+            params.alpha = 1.0f;
+            mWindow.setAttributes(params);
+        }
+        if(mPopupWindow!=null && mPopupWindow.isShowing()){
+            mPopupWindow.dismiss();
+        }
+    }
+
+    public PopupWindow getPopupWindow() {
+        return mPopupWindow;
+    }
+
+    public static class PopupWindowBuilder{
+        private CustomPopWindow mCustomPopWindow;
+
+        public PopupWindowBuilder(Context context){
+            mCustomPopWindow = new CustomPopWindow(context);
+        }
+        public PopupWindowBuilder size(int width,int height){
+            mCustomPopWindow.mWidth = width;
+            mCustomPopWindow.mHeight = height;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setFocusable(boolean focusable){
+            mCustomPopWindow.mIsFocusable = focusable;
+            return this;
+        }
+
+
+
+        public PopupWindowBuilder setView(int resLayoutId){
+            mCustomPopWindow.mResLayoutId = resLayoutId;
+            mCustomPopWindow.mContentView = null;
+            return this;
+        }
+
+        public PopupWindowBuilder setView(View view){
+            mCustomPopWindow.mContentView = view;
+            mCustomPopWindow.mResLayoutId = -1;
+            return this;
+        }
+
+        public PopupWindowBuilder setOutsideTouchable(boolean outsideTouchable){
+            mCustomPopWindow.mIsOutside = outsideTouchable;
+            return this;
+        }
+
+        /**
+         * 设置弹窗动画
+         * @param animationStyle
+         * @return
+         */
+        public PopupWindowBuilder setAnimationStyle(int animationStyle){
+            mCustomPopWindow.mAnimationStyle = animationStyle;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setClippingEnable(boolean enable){
+            mCustomPopWindow.mClippEnable =enable;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setIgnoreCheekPress(boolean ignoreCheekPress){
+            mCustomPopWindow.mIgnoreCheekPress = ignoreCheekPress;
+            return this;
+        }
+
+        public PopupWindowBuilder setInputMethodMode(int mode){
+            mCustomPopWindow.mInputMode = mode;
+            return this;
+        }
+
+        public PopupWindowBuilder setOnDissmissListener(PopupWindow.OnDismissListener onDissmissListener){
+            mCustomPopWindow.mOnDismissListener = onDissmissListener;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setSoftInputMode(int softInputMode){
+            mCustomPopWindow.mSoftInputMode = softInputMode;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setTouchable(boolean touchable){
+            mCustomPopWindow.mTouchable = touchable;
+            return this;
+        }
+
+        public PopupWindowBuilder setTouchIntercepter(View.OnTouchListener touchIntercepter){
+            mCustomPopWindow.mOnTouchListener = touchIntercepter;
+            return this;
+        }
+
+        /**
+         * 设置背景变暗是否可用
+         * @param isDark
+         * @return
+         */
+        public PopupWindowBuilder enableBackgroundDark(boolean isDark){
+            mCustomPopWindow.mIsBackgroundDark = isDark;
+            return this;
+        }
+
+        /**
+         * 设置背景变暗的值
+         * @param darkValue
+         * @return
+         */
+        public PopupWindowBuilder setBgDarkAlpha(float darkValue){
+            mCustomPopWindow.mBackgroundDrakValue = darkValue;
+            return this;
+        }
+
+        /**
+         * 设置是否允许点击 PopupWindow之外的地方,关闭PopupWindow
+         * @param disMiss
+         * @return
+         */
+        public PopupWindowBuilder enableOutsideTouchableDissmiss(boolean disMiss){
+            mCustomPopWindow.enableOutsideTouchDisMiss = disMiss;
+            return this;
+        }
+
+
+        public CustomPopWindow create(){
+            //构建PopWindow
+            mCustomPopWindow.build();
+            return mCustomPopWindow;
+        }
+
+    }
+
+}

+ 30 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/ScrollListView.java

@@ -0,0 +1,30 @@
+package cn.muchinfo.rma.view.base.chart.old.views;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.ListView;
+
+/**
+ * Created by chuck on 2015/11/26.
+ */
+public class ScrollListView extends ListView {
+    private float mDownY;
+
+    public ScrollListView(Context context) {
+        super(context);
+    }
+
+    public ScrollListView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public ScrollListView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec
+                , MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST));
+    }
+}

+ 289 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/TenMarketQuotationView.java

@@ -0,0 +1,289 @@
+package cn.muchinfo.rma.view.base.chart.old.views;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+//
+//
+///**
+// * 十档行情页面
+// */
+//public class TenMarketQuotationView extends FrameLayout {
+//
+//    private ScrollListView buy_listview;
+//    private ScrollListView sell_listview;
+//    private TextView buy_title;
+//    private TextView sell_title;
+//    private TextView select_quatation;
+//    private CustomPopWindow mCustomPopWindow;
+//
+//    private List<TenMarketData> buyList = new ArrayList<>();
+//    private List<TenMarketData> sellList = new ArrayList<>();
+//
+//    private TenMarketAdapter buyAdapter;
+//    private TenMarketAdapter sellAdapter;
+//    private int QuoteGear;
+//
+//    private int decimalPlace = 1;
+//    private double preSettle = 0;
+//    private int selectNum = 0;
+//
+//    public TenMarketQuotationView(Context context, @Nullable AttributeSet attrs) {
+//        super(context, attrs);
+//        inflate(getContext(), R.layout.manage_ten_market_view, this);
+//        findView();
+//        init();
+//    }
+//
+//    public void findView() {
+//        buy_listview = findViewById(R.id.buy_listview);
+//        sell_listview = findViewById(R.id.sell_listview);
+//        buy_title = findViewById(R.id.buy_title);
+//        sell_title = findViewById(R.id.sell_title);
+//        select_quatation = findViewById(R.id.select_quatation);
+//
+//        select_quatation.setOnClickListener(view ->
+//                showPopwindow()
+//        );
+//    }
+//
+//
+////    public void hideSelect(boolean b) {
+////        select_quatation.setVisibility(b ? GONE : VISIBLE);
+////    }
+//
+//
+//    public void showPopwindow() {
+//        if (QuoteGear != 0 && QuoteGear != 1){
+//            View contentView = LayoutInflater.from(getContext()).inflate(R.layout.quosition_pop_menu,null);
+//            //处理popWindow 显示内容
+//            handleLogic(contentView);
+//            //创建并显示popWindow
+//            mCustomPopWindow= new CustomPopWindow.PopupWindowBuilder(getContext())
+//                    .setView(contentView)
+//                    .create()
+//                    .showAsDropDown(select_quatation,0,20);
+//        }
+//
+//    }
+//
+//    /**
+//     * 处理弹出显示内容、点击事件等逻辑
+//     * 咱也不知道为啥突然不要下拉框 ,极有可能某一天突然又改回来,代码还是暂时留在这里吧
+//     *
+//     * @param contentView
+//     */
+//    private void handleLogic(View contentView) {
+//        OnClickListener listener = v -> {
+//            if (mCustomPopWindow != null) {
+//                mCustomPopWindow.dissmiss();
+//            }
+//            switch (v.getId()) {
+//                case R.id.menu1:
+//                    selectNum = 1;
+//                    showList(1);
+//                    break;
+//                case R.id.menu2:
+//                    selectNum = 5;
+//                    showList(5);
+//                    break;
+//                case R.id.menu3:
+//                    selectNum = 10;
+//                    showList(10);
+//                    break;
+//            }
+//        };
+//        contentView.findViewById(R.id.menu1).setOnClickListener(listener);
+//        contentView.findViewById(R.id.menu2).setOnClickListener(listener);
+//        contentView.findViewById(R.id.menu3).setOnClickListener(listener);
+//    }
+//
+//    public void showList(int selenum) {
+//        if (buyList.size() == 0 || sellList.size() == 0){
+//            return;
+//        }
+//        if (selenum == 1) {
+//            buy_title.setText(R.string.buy_one);
+//            sell_title.setText(R.string.sale_one);
+//            select_quatation.setText("1");
+//        } else if (selenum == 5) {
+//            buy_title.setText(R.string.buy_five);
+//            sell_title.setText(R.string.sale_five);
+//            select_quatation.setText("5");
+//        } else if (selenum == 10) {
+//            buy_title.setText(R.string.buy_ten);
+//            sell_title.setText(R.string.sale_ten);
+//            select_quatation.setText("10");
+//        }
+//        List<TenMarketData> selectBuyList = new ArrayList<>();
+//        List<TenMarketData> selectSellList = new ArrayList<>();
+//        for (int i = 0; i < selenum; i++) {
+//            selectBuyList.add(this.buyList.get(i));
+//            selectSellList.add(this.sellList.get(i));
+//        }
+//        buyAdapter.setdata(selectBuyList);
+//        sellAdapter.setdata(selectSellList);
+//    }
+//
+//    public void init() {
+//        buyAdapter = new TenMarketAdapter(buyList, getContext(), 1);
+//        buy_listview.setAdapter(buyAdapter);
+//
+//        sellAdapter = new TenMarketAdapter(sellList, getContext(), 2);
+//        sell_listview.setAdapter(sellAdapter);
+//    }
+//
+//    public void setDatas(List<TenMarketData> buyList, List<TenMarketData> sellList, int decimalPlace, String preSettle, int QuoteGear) {
+//        this.decimalPlace = decimalPlace;
+//        this.buyList = buyList;
+//        this.sellList = sellList;
+//        this.preSettle = Double.parseDouble(preSettle);
+//        this.QuoteGear = QuoteGear;
+//        selectNum = QuoteGear;
+//        if (selectNum != 0){
+//            showList(selectNum);
+//        }
+//
+//    }
+//
+//    class TenMarketAdapter extends BaseAdapter {
+//        HolderView holderView;
+//        List<TenMarketData> valueList;
+//        int type = 0;
+//        Context context;
+//
+//        TenMarketAdapter(List<TenMarketData> valueList, Context context, int type) {
+//            this.valueList = valueList;
+//            this.context = context;
+//            this.type = type;
+//        }
+//
+//        public void setdata(List<TenMarketData> valueList) {
+//            this.valueList = valueList;
+//            notifyDataSetChanged();
+//        }
+//
+//        @Override
+//        public int getCount() {
+//            return valueList.size();
+//        }
+//
+//        @Override
+//        public TenMarketData getItem(int position) {
+//            return valueList.get(position);
+//        }
+//
+//        @Override
+//        public long getItemId(int position) {
+//            return position;
+//        }
+//
+//        @Override
+//        public View getView(int position, View convertView, ViewGroup parent) {
+//
+//            if (convertView == null) {
+//                holderView = new HolderView();
+//                convertView = LayoutInflater.from(context).inflate(R.layout.item_manage_ten, null);
+//                holderView.id_tv = convertView.findViewById(R.id.id_tv);
+//                holderView.price_tv = convertView.findViewById(R.id.price_tv);
+//                holderView.num_tv = convertView.findViewById(R.id.num_tv);
+//                holderView.order_volume = convertView.findViewById(R.id.order_volume);
+//                convertView.setTag(holderView);
+//            } else {
+//                holderView = (HolderView) convertView.getTag();
+//            }
+//
+//            TenMarketData data = valueList.get(position);
+//            if (type == 1) {
+//                holderView.id_tv.setBackgroundColor(context.getResources().getColor(R.color.manager_blue_bg));
+//            } else {
+//                holderView.id_tv.setBackgroundColor(context.getResources().getColor(R.color.manager_yellow_bg));
+//            }
+//            if (data != null) {
+//                if (data.getPrice() == null || data.getPrice().equals("0.0")) {
+//                    holderView.price_tv.setText("--");
+//                } else {
+//                    holderView.price_tv.setText(Utils.roundNum(data.getPrice(), decimalPlace));
+//                    if (Double.parseDouble(data.getPrice()) > preSettle) {// 红
+//                        holderView.price_tv.setTextColor(getResources().getColor(R.color.manager_up_color));
+//                    } else if (Double.parseDouble(data.getPrice()) < preSettle) {// 绿
+//                        holderView.price_tv.setTextColor(getResources().getColor(R.color.manager_down_color));
+//                    } else {// 百色
+//                        holderView.price_tv.setTextColor(getResources().getColor(R.color.manager_normal_color));
+//                    }
+//                }
+//                if (MathUtil.isValidDouble(data.getPrice())) {
+//                    if (Double.valueOf(data.getPrice()) == 0) {
+//                        holderView.price_tv.setText("--");
+//                    }
+//                }
+//
+//                holderView.id_tv.setText(String.valueOf(position + 1));
+//                holderView.num_tv.setText(PolApplication.shortNum(data.getAllNum()));
+//                holderView.order_volume.setText(PolApplication.getOrderVolume(data.getOrderVolume()));
+//            }
+//            return convertView;
+//        }
+//
+//        class HolderView {
+//            TextView id_tv;
+//            TextView price_tv;
+//            TextView num_tv;
+//            TextView order_volume;
+//        }
+//    }
+//
+////    @Override
+////    public boolean onInterceptTouchEvent(MotionEvent ev) {
+////        return true;
+////    }
+//
+//    public static class TenMarketData {
+//        String price;
+//        String allNum;
+//        String nums;
+//
+//        String orderVolume;
+//
+//        public String getOrderVolume() {
+//            return orderVolume;
+//        }
+//
+//        public void setOrderVolume(String orderVolume) {
+//            this.orderVolume = orderVolume;
+//        }
+//
+//        public String getPrice() {
+//            return price;
+//        }
+//
+//        public void setPrice(String price) {
+//            this.price = price;
+//        }
+//
+//        public String getAllNum() {
+//            return allNum;
+//        }
+//
+//        public void setAllNum(String allNum) {
+//            this.allNum = allNum;
+//        }
+//
+//        public String getNums() {
+//            return nums;
+//        }
+//
+//        public void setNums(String nums) {
+//            this.nums = nums;
+//        }
+//    }
+//
+//}

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

@@ -9,6 +9,7 @@ import androidx.recyclerview.widget.RecyclerView
 import androidx.viewpager.widget.PagerAdapter
 import androidx.viewpager.widget.ViewPager
 import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.ExposureHistoryData
 import cn.muchinfo.rma.global.data.FinancialManageData
 import cn.muchinfo.rma.global.data.NumberSpotData
 import cn.muchinfo.rma.lifecycle.bindOptional
@@ -42,7 +43,7 @@ class ExposureFragment : BaseFragment<ExposureViewModel>() {
     private lateinit var viewPager: ViewPager
 
     /** tab标题 ***/
-    private val tabsArray: List<String> by lazy { arrayListOf("实时敞口", "现货数量", "期货数量", "历史敞口") }
+    private val tabsArray: List<String> by lazy { arrayListOf("实时敞口", "现货头寸", "期货头寸", "历史敞口") }
 
     /** 实时敞口 **/
     private val realTimeExposureUI by lazy { RealTimeExposureUI(this, viewModel) }
@@ -93,6 +94,11 @@ class ExposureFragment : BaseFragment<ExposureViewModel>() {
         }
     }
 
+    //切换底部tab时刷新数据
+    fun reFresh(){
+        realTimeExposureUI.reFresh()
+    }
+
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
@@ -105,7 +111,7 @@ class ExposureFragment : BaseFragment<ExposureViewModel>() {
                     verticalLayout {
                         gravity = Gravity.CENTER_VERTICAL
                         textView {
-                            text = "采购"
+                            text = "敞口"
                             textColorInt = R.color.white
                             textSizeAuto = 36
                         }.lparams(wrapContent, wrapContent) {
@@ -145,7 +151,7 @@ class ExposureFragment : BaseFragment<ExposureViewModel>() {
                     marginStart = autoSize(32)
                     marginEnd = autoSize(32)
                 }
-                viewPager {
+                noScrollViewPager {
                     background = resources.getDrawable(R.color.white)
                     viewPager = this
                     adapter = pagerAdapter
@@ -179,6 +185,10 @@ class RealTimeExposureUI(
         ExposureContentAdapter(baseFragment.context)
     }
 
+    fun reFresh(){
+        viewModule.queryRealtimeExposure()
+    }
+
     @SuppressLint("RtlHardcoded")
     val root = _FrameLayout(baseFragment.context!!).apply {
         verticalLayout {
@@ -530,9 +540,49 @@ class HistoryExposureUI(
     private val baseFragment: Fragment,
     private val viewModule: ExposureViewModel
 ) {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    private val numberFutureAdapter: BaseAdapter<ExposureHistoryData, HistoryExposureViewholder> = BaseAdapter { _, _ -> HistoryExposureViewholder(baseFragment, viewModule) }
+
+    init {
+        viewModule.queryHisExposure()
+    }
+
     val root = _FrameLayout(baseFragment.context!!).apply {
         verticalLayout {
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(true)
+                    setEnableLoadMore(false)
+                    setOnRefreshListener {
+                        viewModule.queryHisExposure()
+                    }
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = numberFutureAdapter
+                    }.lparams(matchParent, matchParent)
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
 
+            viewModule.exposureHistoryDataList.bindOptional(context){
+                if (it?.isEmpty() == true || it?.size == 0){
+                    statusLayout.showEmpty()
+                }else {
+                    if (swipeToLayout.getIsRefreshing()){
+                        swipeToLayout.finishRefresh()
+                    }
+                    numberFutureAdapter.setNewData(it)
+                }
+            }
         }
     }
 }

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

@@ -118,8 +118,8 @@ class ExposureViewModel : BaseViewModel(){
         val newList = arrayListOf<ExposureRealTimeDetailsData>()
         respData.forEach {
             val newRightData = arrayListOf<String>()
-            newRightData.add(it.enumdicname + "\n" + it.qty)
-            newRightData.add(NumberUtils.roundNum(it.changeQty,2))
+            newRightData.add(it.wrstandardname + "\n" + it.qty + it.enumdicname)
+            newRightData.add(NumberUtils.roundNum(it.changeQty,2) + it.enumdicname)
             newRightData.add(it.relateNo ?: "")
             newRightData.add(NumberUtils.roundNum(it.convertfactor,2) + "\n" + NumberUtils.roundNum(it.convertratio,2))
             val newData = it.copy(rightData = newRightData)
@@ -194,12 +194,12 @@ class ExposureViewModel : BaseViewModel(){
         val newList = arrayListOf<RealExposureData>()
         respData.forEach {
             val newRightData = arrayListOf<String>()
-            newRightData.add(NumberUtils.roundNum(it.TotalSpotQty,2) + "\n" + it.MiddleGoodsHedgeRatio?.toPercentage())
-            newRightData.add(NumberUtils.roundNum(it.TotalNeedHedgeQty,2) + "\n" + NumberUtils.roundNum(it.TotalFutureQty,2))
+            newRightData.add(NumberUtils.roundNum(it.TotalSpotQty,2) + it.ENUMDICNAME + "\n" + it.MiddleGoodsHedgeRatio?.toPercentage())
+            newRightData.add(NumberUtils.roundNum(it.TotalNeedHedgeQty,2) + it.ENUMDICNAME + "\n" + NumberUtils.roundNum(it.TotalFutureQty,2) + it.ENUMDICNAME)
             newRightData.add(NumberUtils.roundNum(it.NeedHedgeExposoure,2) + "\n" + it.NeedHedgeRatio?.toPercentage())
             newRightData.add(NumberUtils.roundNum(it.TotalExposure,2) + "\n" +it.TotalHedgeRatio?.toPercentage())
-            newRightData.add(NumberUtils.roundNum(it.OriTotalSpotQty,2) + "\n" + NumberUtils.roundNum(it.DiffSpotQty,2))
-            newRightData.add(NumberUtils.roundNum(it.OriTotalFutuQty,2) + "\n" + NumberUtils.roundNum(it.DiffFutuQty,2))
+            newRightData.add(NumberUtils.roundNum(it.OriTotalSpotQty,2) + it.ENUMDICNAME + "\n" + NumberUtils.roundNum(it.DiffSpotQty,2) + it.ENUMDICNAME)
+            newRightData.add(NumberUtils.roundNum(it.OriTotalFutuQty,2) + it.ENUMDICNAME + "\n" + NumberUtils.roundNum(it.DiffFutuQty,2) + it.ENUMDICNAME)
             val newData = it.copy(rightData = newRightData)
             newList.add(newData)
         }

+ 81 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/HistoryExposureViewholder.kt

@@ -0,0 +1,81 @@
+package cn.muchinfo.rma.view.base.exposure
+
+import android.view.Gravity
+import android.view.MotionEvent
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.Fragment
+import butterknife.OnTouch
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.ExposureHistoryData
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAScrollablePlotArea
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+class HistoryExposureViewholder(
+    private val baseFragment: Fragment,
+    private val viewModel: ExposureViewModel
+) : BaseViewHolder<ExposureHistoryData>(baseFragment.activity!!) {
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+
+        verticalLayout {
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                view {
+                    background = resources.getDrawable(R.color.rma_blue_color)
+                }.lparams(autoSize(4), autoSize(45)) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    text = "标准铜(吨)"
+                    textSizeAuto = 34
+                    textColorInt = R.color.rma_blue_color
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(84))
+
+            chartview {
+
+                val aaChartModel = AAChartModel()
+                    .chartType(AAChartType.Areaspline)
+                    .title("")
+                    .yAxisTitle("")
+                    .legendEnabled(false)
+                    .yAxisGridLineWidth(0f)
+                    .animationType(AAChartAnimationType.EaseOutQuart)
+                    .legendEnabled(true)
+                    .gradientColorEnable(true)
+                    .markerRadius(2f)
+                    .markerSymbol(AAChartSymbolType.Circle)
+                    .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
+                    .scrollablePlotArea(
+                        AAScrollablePlotArea()
+                            .minWidth(3000)
+                            .scrollPositionX(1f))
+
+                data.bindOptional(context){
+                    val list = it?.data
+                    val totalexposureelement = AASeriesElement()
+                        .lineWidth(2f)
+                        .name("总敞口")
+                        .step(true)
+                        .data(list?.map { it.totalexposure }!!.toTypedArray())
+                    val needhedgeexposoureelement = AASeriesElement()
+                        .name("应套保敞口")
+                        .step(true)
+                        .data(list.map { it.needhedgeexposoure }.toTypedArray())
+                    aaChartModel.categories(list.map { it.reckondate }.toTypedArray())
+                    aaChartModel.series(arrayOf(totalexposureelement,needhedgeexposoureelement))
+                    aa_drawChartWithChartModel(aaChartModel)
+                }
+            }.lparams(matchParent, autoSize(416))
+
+        }.lparams(matchParent, autoSize(500))
+    }
+
+}

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

@@ -65,7 +65,7 @@ class RealTimeExposureDetailsActivity : BaseActivity<ExposureViewModel>() , Expo
                 gravity = Gravity.CENTER_VERTICAL
                 backgroundColorResource = R.color.rma_blue_color
                 textView {
-                    text = "套保品种 : " + data.ENUMDICNAME + "(" + data.MiddleGoodsCode + ")"
+                    text = "套保品种 : " + data.MiddleGoodsName + "(" + data.MiddleGoodsCode + ")"
                     textSizeAuto = 32
                     textColorInt = R.color.white
                 }.lparams(wrapContent, wrapContent){

+ 17 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/entrusts/EntrustChildFragment.kt

@@ -1,9 +1,11 @@
 package cn.muchinfo.rma.view.base.future.entrusts
 
+import android.app.Dialog
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.lifecycle.MutableLiveData
 import androidx.recyclerview.widget.RecyclerView
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.futureOrders.FutureEntrustData
@@ -11,6 +13,9 @@ import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseFragment
 import cn.muchinfo.rma.view.base.future.enums.CustomerEnums
+import mtp.polymer.com.autowidget.dialog.createLoadingDialog
+import mtp.polymer.com.autowidget.utils.TaskUiModel
+import mtp.polymer.com.autowidget.utils.bindTaskStatus
 import org.jetbrains.anko.linearLayout
 import org.jetbrains.anko.matchParent
 import org.jetbrains.anko.support.v4.UI
@@ -20,6 +25,12 @@ import org.jetbrains.anko.support.v4.UI
  */
 class EntrustChildFragment(type: CustomerEnums.EntrustType) : BaseFragment<EntrustChildViewModel>() {
     private var type: CustomerEnums.EntrustType? = type
+    private var loadingDialog: Dialog? = null
+
+    /**
+     * 撤单请求状态
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
 
     companion object {
         fun getInstance(type: CustomerEnums.EntrustType) = EntrustChildFragment(type)
@@ -36,6 +47,8 @@ class EntrustChildFragment(type: CustomerEnums.EntrustType) : BaseFragment<Entru
     ): View? {
         return UI {
             linearLayout {
+                loadingDialog = createLoadingDialog(hintStr = "请求中")
+                loadingDialog?.bindTaskStatus(context!!, loadingDialogStatus)
                 statusLayout(contentBlock = {
                     statusLayout = this
                     swipeToLoadLayout {
@@ -50,7 +63,7 @@ class EntrustChildFragment(type: CustomerEnums.EntrustType) : BaseFragment<Entru
                         recyclerView {
                             idEntrustList = this
                             background = resources.getDrawable(R.color.white, context.theme)
-                            adapter = viewModel.getAdapter()
+                            adapter = viewModel.getAdapter(this@EntrustChildFragment)
                         }.lparams(matchParent, matchParent)
                     }
                 }, emptyBlock = {
@@ -87,6 +100,9 @@ class EntrustChildFragment(type: CustomerEnums.EntrustType) : BaseFragment<Entru
         if (!hidden) viewModel.queryOrder()
     }
 
+    fun refresh(){
+        viewModel.queryOrder()
+    }
 //region
 
 //endregion

+ 37 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/entrusts/EntrustChildViewModel.kt

@@ -5,6 +5,7 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.TextView
+import androidx.fragment.app.Fragment
 import androidx.lifecycle.MutableLiveData
 import androidx.recyclerview.widget.RecyclerView
 import cn.muchinfo.rma.R
@@ -12,10 +13,17 @@ import cn.muchinfo.rma.business.future.FutureManager
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.futureOrders.FutureEntrustData
 import cn.muchinfo.rma.global.isBlankString
+import cn.muchinfo.rma.netManage.base.InteractiveException
+import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.autoWidget.textColorInt
 import cn.muchinfo.rma.view.base.BaseViewModel
 import cn.muchinfo.rma.view.base.future.enums.CustomerEnums
+import cn.muchinfo.rma.view.base.future.holds.HoldFragment
 import cn.muchinfo.rma.view.base.future.interfaces.OnItemClickListener
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mtp.polymer.com.autowidget.dialog.createWarningDialog
+import mtp.polymer.com.autowidget.utils.TaskUiModel
 import org.jetbrains.anko.backgroundColor
 import java.text.SimpleDateFormat
 import java.util.*
@@ -38,23 +46,25 @@ class EntrustChildViewModel : BaseViewModel() {
     /**
      * 获取配置器。
      */
-    fun getAdapter(): RecyclerView.Adapter<EntrustAdapter.EntrustHolder> {
-        return EntrustAdapter(context)
+    fun getAdapter(fragment : Fragment): RecyclerView.Adapter<EntrustAdapter.EntrustHolder> {
+        return EntrustAdapter(context,fragment)
     }
 
     /**
      * 通用的适配器。
      */
-    inner class EntrustAdapter(context: Context?) : RecyclerView.Adapter<EntrustAdapter.EntrustHolder>() {
+    inner class EntrustAdapter(context: Context?,fragment : Fragment) : RecyclerView.Adapter<EntrustAdapter.EntrustHolder>() {
         private var list: ArrayList<FutureEntrustData>? = null
         private var inflater: LayoutInflater? = null
         private var context: Context? = null
+        private var fragment : Fragment? = null
         private var selectedColor: Int = 0
 
         init {
             this.list = GlobalDataCollection.instance?.futureHisEntrustData
             this.inflater = LayoutInflater.from(context)
             this.context = context
+            this.fragment = fragment
             selectedColor = context?.getColor(R.color.p_list_item_select_color)!!
         }
 
@@ -108,7 +118,30 @@ class EntrustChildViewModel : BaseViewModel() {
 
             }
             entrust.idCancel?.setOnClickListener {
-
+                fragment?.createWarningDialog {
+                    setTitle("温馨提示")
+                    setMessage("确定撤销该笔委托吗?")
+                    addAction("取消") { dialog, _ -> dialog.dismiss() }
+                    addAction("确定") { dialog, _ ->
+                        (fragment as EntrustChildFragment).loadingDialogStatus.postValue(
+                            TaskUiModel.inFlight())
+                        GlobalScope.launch {
+                            MyApplication.getInstance()?.futureManager?.cancelOrder(orderId = itemData.orderid?.toLong() ?: 0,accountId = GlobalDataCollection.instance?.accountId ?: 0,marketId = itemData.marketid,goodsId = itemData.goodsid) { isCompleted, err ->
+                                if (isCompleted) {
+                                    (fragment as EntrustChildFragment).loadingDialogStatus.postValue(
+                                        TaskUiModel.success(msg = "请求成功"))
+                                    (fragment as EntrustChildFragment).refresh()
+                                }else{
+                                    (fragment as EntrustChildFragment).loadingDialogStatus.postValue(
+                                        TaskUiModel.failed(
+                                        InteractiveException(errorMessage = err?.message!!)
+                                    ))
+                                }
+                            }
+                        }
+                        dialog.dismiss()
+                    }
+                }?.show()
             }
 
             if (list?.get(position)?.selected == true) {

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

@@ -13,7 +13,7 @@ import kotlinx.android.synthetic.main.order_detail.*
 /**
  * 单据详情页面
  */
-class OrderDetail() : BaseActivity<OrderDetailModel>() {
+class OrderDetail : BaseActivity<OrderDetailModel>() {
 
     var data: ArrayList<OrderDetailData>? = null
     var titleName: String? = ""
@@ -42,6 +42,6 @@ class OrderDetail() : BaseActivity<OrderDetailModel>() {
 
         val layoutManager = LinearLayoutManager(this@OrderDetail)
         id_order_detail_list?.layoutManager = layoutManager
-        id_order_detail_list?.adapter = viewModel.getCostInfoAdapter()
+        id_order_detail_list?.adapter = viewModel.getCostInfoAdapter(context = this)
     }
 }

+ 3 - 3
RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/orderDeatails/OrderDetailModel.kt

@@ -23,7 +23,7 @@ class OrderDetailModel: BaseViewModel() {
     /**
      * 获取配置器。
      */
-    fun getCostInfoAdapter(): RecyclerView.Adapter<OrderDetailAdapter.CostInfoHolder> {
+    fun getCostInfoAdapter(context: Context): RecyclerView.Adapter<OrderDetailAdapter.CostInfoHolder> {
         return OrderDetailAdapter(context, orderDetailList)
     }
 
@@ -35,9 +35,9 @@ class OrderDetailModel: BaseViewModel() {
         private var inflater: LayoutInflater? = null
         private var context: Context? = null
         init {
+            this.context = context
             this.list = list
             this.inflater = LayoutInflater.from(context)
-            this.context = context
         }
 
         override fun getItemCount(): Int {
@@ -45,7 +45,7 @@ class OrderDetailModel: BaseViewModel() {
         }
 
         class CostInfoHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!) {
-            var detailItem = itemView as DetailItem?
+            var detailItem = itemView?.findViewById<DetailItem>(R.id.id_item)
         }
 
         override fun onBindViewHolder(holder: CostInfoHolder, position: Int) {

+ 13 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/trade/GoodsTradeActivity.kt

@@ -20,6 +20,7 @@ import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.global.data.futureOrders.FutureHoldData
 import cn.muchinfo.rma.global.database.AppDatabase
+import cn.muchinfo.rma.global.database.DataBase
 import cn.muchinfo.rma.global.room.Builder
 import cn.muchinfo.rma.global.toPercentage
 import cn.muchinfo.rma.lifecycle.bindOptional
@@ -38,6 +39,7 @@ import cn.muchinfo.rma.view.eventbus.MessageEvent
 import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
 import cn.muchinfo.rma.view.eventbus.TradeMessageEvent
 import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.LogUtils
 import com.blankj.utilcode.util.TimeUtils
 import com.blankj.utilcode.util.ToastUtils
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
@@ -228,8 +230,11 @@ class GoodsTradeActivity : BaseActivity<GoodsTradeViewModel>() {
         val goodsids = quoteMessageEvent.goodsid
         //如果推送的goodsid包含当前页面的goodsid,则进行页面刷新
         if (goodsids.contains(goodsId?.toInt())){
-            val goodsInfo = GlobalDataCollection.instance?.goodsInfoList?.findLast { it.goodsid == goodsId?.toInt() }
-            viewModel.quoteDayData.postValue(GlobalDataCollection.instance?.goodsInfoAndQuotesList?.find { goodsInfo?.outgoodscode == it.outgoodscode }?.quoteDayData)
+            val goodsInfo = Builder.getDatabase<AppDatabase>().goodsInfoDao.getGoodsInfo(goodsId?.toInt() ?: 0)
+            val quote = GlobalDataCollection.instance?.goodsInfoAndQuotesList?.find { goodsInfo?.outgoodscode == it.outgoodscode }?.quoteDayData
+            if (quote != null){
+                viewModel.quoteDayData.postValue(quote)
+            }
         }
     }
 
@@ -426,6 +431,12 @@ class GoodsTradeActivity : BaseActivity<GoodsTradeViewModel>() {
                                     emptyView()
                                     numberEditText {
                                         priceInputEdittext = this
+                                        setOnTextChangeListener { view, value ->
+//                                            if (value.isNotEmpty()){
+//                                                viewModel.priceOrderType.postValue(FutureConstent.eOrderPriceSelectType_BidPrice)
+//
+//                                            }
+                                        }
                                         //拿到商品信息后对输入框进行初始化
                                         goodsInfoData.bindOptional(context) {
                                             setDecimal(it?.decimalplace ?: 2)

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

@@ -348,7 +348,7 @@ class HomeFragment : BaseFragment<HomeViewModel>() {
                                     }
 
                                     textView {
-                                        text = "业务管理"
+                                        text = "业务审核"
                                         textColorInt = R.color.black
                                         textSizeAuto = 26
                                     }.lparams(wrapContent, wrapContent) {
@@ -370,7 +370,7 @@ class HomeFragment : BaseFragment<HomeViewModel>() {
                                     }
 
                                     textView {
-                                        text = "财务管理"
+                                        text = "财务审核"
                                         textColorInt = R.color.black
                                         textSizeAuto = 26
                                     }.lparams(wrapContent, wrapContent) {

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

@@ -86,7 +86,7 @@ class BusinessManagementActivity : BaseActivity<BusinessManagementViewModel>(){
             topBar {
                 commonLeftButton()
                 commonTitle {
-                    text = "管理"
+                    text = "业务审核"
                 }
                 commonMenuButton(R.mipmap.rma_search) {
                     val intent = Intent()

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

@@ -136,7 +136,7 @@ class MidpointsAuditActivity : BaseActivity<BusinessManagementViewModel>(){
                                 gravity = Gravity.CENTER_VERTICAL
                                 linearLayout {
                                     textView {
-                                        text = "价类型"
+                                        text = "价类型"
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {
@@ -156,7 +156,7 @@ class MidpointsAuditActivity : BaseActivity<BusinessManagementViewModel>(){
                                 }.lparams(autoSize(450), wrapContent)
                                 linearLayout {
                                     textView {
-                                        text = "商品名称"
+                                        text = "现货品种"
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {

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

@@ -63,7 +63,7 @@ class AddHedgeGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
         if (type == "2" || type == "3" || type == "5") {
             viewModel.queryMiddleGoodsDetail(data.middlegoodsid ?: "") {
                 selectAvalidGoodsData.postValue(this)
-                viewModel.queryGGConvertConfig(this.goodsgroupid ?: "")
+                viewModel.queryGGConvertConfig(this.srcgoodsgroupid ?: "")
             }
         }
     }
@@ -202,8 +202,8 @@ class AddHedgeGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
                             }
 
                             textView {
-                                selectAvalidGoodsData.bindOptional(context) {
-                                    text = it?.goodunitname?.isBlankString()
+                                viewModel.ggConvertConfigDataList.bindOptional(context) {
+                                    text = it?.get(0)?.dstunitidname
                                 }
                                 text = "请选择套保品种自动填入"
                                 textSizeAuto = 31

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

@@ -267,8 +267,14 @@ class AddSpotGoodsActivity : BaseActivity<CommodityInformationViewModel>() {
 
                             textView {
                                 selectUnitType.bindOptional(context) {
-                                    text = it?.value
-                                    textColorInt = R.color.rma_black_33
+                                    if (it?.value.isNullOrEmpty()){
+                                        text = data.enumdicname
+                                        textColorInt = R.color.rma_black_33
+                                    }else{
+                                        text = it?.value
+                                        textColorInt = R.color.rma_black_33
+                                    }
+
                                 }
                                 text = "请选择单位"
                                 textSizeAuto = 31

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

@@ -107,6 +107,13 @@ class CommodityInformationViewModel : BaseViewModel() {
      */
     val showGgConvertConfigDataList : MutableLiveData<List<GGConvertConfigData>> = MutableLiveData()
 
+    /**
+     * 变更记录列表
+     */
+    val middleChangeLogDataList : MutableLiveData<List<MiddleGoodsChangeLogData>> = MutableLiveData()
+
+
+
 
     /**
      * 新增套保品种时的套保品种名称选择
@@ -175,11 +182,12 @@ class CommodityInformationViewModel : BaseViewModel() {
         }
         MyApplication.getInstance()?.commodityManager?.queryGGConvertConfig(params = params) { isSuccess, respData, _ ->
             if (isSuccess) {
-                if (goodsgroupid.isNotEmpty()){
-                    ggConvertConfigDataList.postValue(respData)
-                }else{
-                    showGgConvertConfigDataList.postValue(respData)
-                }
+                ggConvertConfigDataList.postValue(respData)
+//                if (goodsgroupid.isNotEmpty()){
+//
+//                }else{
+//                    showGgConvertConfigDataList.postValue(respData)
+//                }
 
             }
         }
@@ -811,4 +819,22 @@ class CommodityInformationViewModel : BaseViewModel() {
         }
     }
 
+    /**
+     * 查询套保变更记录
+     * @param RelatedId String
+     */
+    fun queryMiddleGoodsChangeLog(middlegoodsid : String){
+
+        val params = mutableMapOf<String, String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("middlegoodsid", middlegoodsid)
+        }
+
+        MyApplication.getInstance()?.commonManager?.queryMiddleGoodsChangeLog(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                middleChangeLogDataList.postValue(respData)
+            }
+        }
+    }
+
 }

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

@@ -101,7 +101,7 @@ class CommodityMiddleViewHolder(
                  linearLayout {
                      textView {
                          data.bindOptional(context){
-                             text = it?.needhedgeratio?.toPercentage()
+                             text = it?.needhedgeratio + "%"
                          }
                          textColorInt = R.color.rma_black_33
                          textSizeAuto = 34

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

@@ -82,7 +82,7 @@ class FuturesVarietiesUI(
                 verticalLayout {
                     gravity = Gravity.RIGHT
                     textView {
-                        text = "期货交易所/品种/"
+                        text = "目标期货交易所/品种/"
                         textSizeAuto = 24
                         textColorInt = R.color.hint_text_color
                     }.lparams(wrapContent, wrapContent) {

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

@@ -9,6 +9,7 @@ import androidx.viewpager.widget.PagerAdapter
 import androidx.viewpager.widget.ViewPager
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.ChangeLogData
+import cn.muchinfo.rma.global.data.MiddleGoodsChangeLogData
 import cn.muchinfo.rma.global.data.MiddleGoodsData
 import cn.muchinfo.rma.global.data.WrStandardData
 import cn.muchinfo.rma.global.isBlankString
@@ -115,12 +116,14 @@ class HedgeSpeciesDetailsActivity : BaseActivity<CommodityInformationViewModel>(
                 }
                 textView {
                     if (data.isvalid == "1"){
+                        textColorInt = R.color.rma_green_color
                         text = "正常"
                     }else{
-                        text = "无效"
+                        textColorInt = R.color.rma_yellow_text_color
+                        text = "停用"
                     }
                     textSizeAuto = 31
-                    textColorInt = R.color.rma_yellow_text_color
+
                 }.lparams(wrapContent, wrapContent) {
                     marginStart = autoSize(20)
                 }
@@ -193,7 +196,7 @@ class GoodsDetailsUI(
             viewItemUI()
             contentItem(itemTile = "单位",itemContent = data.enumdicname ?: "")
             viewItemUI()
-            contentItem(itemTile = "套保比例",itemContent = data.needhedgeratio?.toPercentage() ?: "")
+            contentItem(itemTile = "套保比例",itemContent = data.needhedgeratio ?: "")
             viewModel.avalidGoodsDetailsData.bindOptional(context){list ->
                 list?.forEach {
                     viewItemUI()
@@ -203,32 +206,7 @@ class GoodsDetailsUI(
             }
             viewItemUI()
 
-//            if (data.remark?.isNotEmpty() == true){
-//                linearLayout {
-//                    gravity = Gravity.CENTER_VERTICAL
-//                    background = resources.getDrawable(R.color.white)
-//                    linearLayout {
-//                        gravity = Gravity.CENTER_VERTICAL
-//                        textView {
-//                            text = "备注"
-//                            textSizeAuto = 31
-//                            textColorInt = R.color.rma_gray_color
-//                        }.lparams(wrapContent, wrapContent){
-//                            marginStart = autoSize(35)
-//                        }
-//                    }.lparams(autoSize(250), autoSize(120))
-//
-//                    textView {
-//                        text = data.remark
-//                        textSizeAuto = 31
-//                        textColorInt = R.color.rma_black_33
-//                    }.lparams(wrapContent, wrapContent){
-//                        marginStart = autoSize(35)
-//                        marginEnd = autoSize(35)
-//                    }
-//
-//                }.lparams(matchParent, autoSize(240))
-//            }
+//            contentItem(itemTile = "备注",itemContent = data.relatedgoodsid?.toPercentage() ?: "")
 
         }
     }
@@ -251,10 +229,10 @@ class ChangeRecordUI(
     private lateinit var swipeToLayout: SwipeToLoadLayout
     private lateinit var statusLayout: StatusLayout
 
-    private val spotVarietiesNormalAdapter: BaseAdapter<ChangeLogData, ChangeLogViewHolder> = BaseAdapter { _, _ -> ChangeLogViewHolder(activity) }
+    private val spotVarietiesNormalAdapter: BaseAdapter<MiddleGoodsChangeLogData, ChangeLogViewHolder> = BaseAdapter { _, _ -> ChangeLogViewHolder(activity) }
 
     init {
-        viewModel.queryChangeLog(RelatedId = "")
+        viewModel.queryMiddleGoodsChangeLog(middlegoodsid = data.middlegoodsid ?: "")
     }
 
     val root = _FrameLayout(activity).apply {
@@ -295,7 +273,7 @@ class ChangeRecordUI(
                     setEnableRefresh(true)
                     setEnableLoadMore(false)
                     setOnRefreshListener {
-                        viewModel.queryChangeLog(RelatedId = "")
+                        viewModel.queryMiddleGoodsChangeLog(middlegoodsid = data.middlegoodsid ?: "")
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
@@ -308,7 +286,7 @@ class ChangeRecordUI(
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
 
-            viewModel.changeLogDataList.bindOptional(context){
+            viewModel.middleChangeLogDataList.bindOptional(context){
                 if (it?.isEmpty() == true || it?.size == 0){
                     statusLayout.showEmpty()
                 }else {

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

@@ -56,11 +56,13 @@ class SpotVarietiesDetailsActivity : BaseActivity<CommodityInformationViewModel>
                         textView {
                             if (data.isvalid == "1"){
                                 text = "正常"
+                                textColorInt = R.color.rma_green_color
                             }else{
-                                text = "无效"
+                                text = "停用"
+                                textColorInt = R.color.rma_yellow_text_color
                             }
                             textSizeAuto = 31
-                            textColorInt = R.color.rma_yellow_text_color
+
                         }.lparams(wrapContent, wrapContent) {
                             marginStart = autoSize(20)
                         }
@@ -79,22 +81,22 @@ class SpotVarietiesDetailsActivity : BaseActivity<CommodityInformationViewModel>
                     viewModel.wrStandardDetails.bindOptional(context){
                         it?.gtList?.forEach {
                             viewItemUI()
-                            contentItem(itemTile = "型号" + viewModel.wrStandardDetails.value?.gtList?.indexOf(it)?.plus(1),itemContent = it.modelid)
+                            contentItem(itemTile = "型号" + viewModel.wrStandardDetails.value?.gtList?.indexOf(it)?.plus(1),itemContent = it.modelname)
                         }
                     }
 
                     viewModel.wrStandardDetails.bindOptional(context){
                         it?.gbList?.forEach {
                             viewItemUI()
-                            contentItem(itemTile = "品牌" + viewModel.wrStandardDetails.value?.gbList?.indexOf(it)?.plus(1),itemContent = it.brandid)
+                            contentItem(itemTile = "品牌" + viewModel.wrStandardDetails.value?.gbList?.indexOf(it)?.plus(1),itemContent = it.brandname)
                         }
                     }
 
                     viewModel.wrStandardDetails.bindOptional(context){
                         it?.wrsList?.forEach {
                             viewItemUI()
-                            contentItem(itemTile = "套保品种" + viewModel.wrStandardDetails.value?.wrsList?.indexOf(it)?.plus(1),itemContent = it.middlegoodsid)
-                            contentItem(itemTile = "套保系数" + viewModel.wrStandardDetails.value?.wrsList?.indexOf(it)?.plus(1),itemContent = it.convertratio.toPercentage())
+                            contentItem(itemTile = "套保品种" + viewModel.wrStandardDetails.value?.wrsList?.indexOf(it)?.plus(1),itemContent = it.middlegoodsname)
+                            contentItem(itemTile = "套保系数" + viewModel.wrStandardDetails.value?.wrsList?.indexOf(it)?.plus(1),itemContent = it.convertratio)
                         }
                     }
 

+ 3 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/commodity/viewholder/ChangeLogViewHolder.kt

@@ -4,6 +4,7 @@ import android.view.Gravity
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.data.ChangeLogData
+import cn.muchinfo.rma.global.data.MiddleGoodsChangeLogData
 import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.global.isShowTimeString
 import cn.muchinfo.rma.global.toPercentage
@@ -16,7 +17,7 @@ import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import org.jetbrains.anko.*
 
 class ChangeLogViewHolder(private val activity: AppCompatActivity) :
-    BaseViewHolder<ChangeLogData>(activity) {
+    BaseViewHolder<MiddleGoodsChangeLogData>(activity) {
     override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
 
     override fun _FrameLayout.createContentView() {
@@ -43,7 +44,7 @@ class ChangeLogViewHolder(private val activity: AppCompatActivity) :
             textView {
                 gravity = Gravity.CENTER
                 data.bindOptional(context) {
-                    text = it?.logvalue?.toPercentage()
+                    text = it?.aftervalue?.toPercentage()
                 }
                 textColorInt = R.color.hint_text_color
                 textSizeAuto = 31

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

@@ -40,7 +40,7 @@ class HedgeFutureVarietyViewholder(
 
                 textView {
                     data.bindOptional(context){
-                        text = it?.dstname
+                        text = it?.srcname
                     }
                     text = "请选择套保品种自动填入"
                     textSizeAuto = 31

+ 12 - 6
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractDataViewHolder.kt

@@ -264,10 +264,16 @@ class ContractDataViewHolder(
                         intent.setClass(context,AddContractActivity::class.java)
                         ActivityUtils.startActivity(intent)
                     }
-                    visibility = if (type == "1") {
-                        View.VISIBLE
-                    } else {
-                        View.GONE
+                    data.bindOptional(context) {
+                        visibility = if (type == "1") {
+                            if (it?.contracctstatus == "1") {
+                                View.VISIBLE
+                            } else {
+                                View.GONE
+                            }
+                        } else {
+                            View.GONE
+                        }
                     }
                     backgroundResource = R.drawable.rma_item_click_bg
                     gravity = Gravity.CENTER
@@ -309,8 +315,8 @@ class ContractDataViewHolder(
                         ActivityUtils.startActivity(intent)
                     }
                     data.bindOptional(context) {
-                        visibility = if (type == "2") {
-                            if (it?.contracctstatus == "4" || it?.contracctstatus == "6") {
+                        visibility = if (type == "1") {
+                            if (it?.contracctstatus == "4") {
                                 View.VISIBLE
                             } else {
                                 View.GONE

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

@@ -350,6 +350,29 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
 
         viewItemUI()
 
+         linearLayout {
+            //只有在一口价时才显示
+            visibility = if (data.pricetype == "1") { View.VISIBLE } else { View.GONE }
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                text = "金        额"
+                textSizeAuto = 31
+                textColorInt = R.color.p_normal_summary_txt_color
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(59)
+            }
+
+            textView {
+                text = data.amount + "元"
+                textColorInt = R.color.rma_black_33
+                textSizeAuto = 31
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(80)
+            }
+        }.lparams(matchParent, autoSize(132))
+
+        viewItemUI()
+
         linearLayout {
             visibility = if (data.pricetype == "1") {
                 View.GONE
@@ -377,10 +400,10 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
         viewItemUI()
 
         linearLayout {
-            if (data.pricetype == "1") {
-                visibility = View.GONE
-            } else {
+            if (data.pricetype == "3") {
                 visibility = View.VISIBLE
+            } else {
+                visibility = View.GONE
             }
             gravity = Gravity.CENTER_VERTICAL
             textView {
@@ -406,7 +429,7 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
 
             gravity = Gravity.CENTER_VERTICAL
             textView {
-                text = "  贴  水"
+                text = "  贴  水"
                 textSizeAuto = 31
                 textColorInt = R.color.p_normal_summary_txt_color
             }.lparams(wrapContent, wrapContent) {
@@ -414,7 +437,7 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
             }
 
             textView {
-                text = data.pricemove + "元"
+                text = data.pricemove + "元/" + data.enumdicname
                 textColorInt = R.color.rma_black_33
                 textSizeAuto = 31
             }.lparams(wrapContent, wrapContent) {
@@ -451,10 +474,10 @@ fun _LinearLayout.contractDetailThreeView(data: ContractData) {
         viewItemUI()
 
         linearLayout {
-            if (data.deliveryenddate?.isNotEmpty() == true) {
-                visibility = View.VISIBLE
-            } else {
+            if (data.pricetype == "1") {
                 visibility = View.GONE
+            } else {
+                visibility = View.VISIBLE
             }
             gravity = Gravity.CENTER_VERTICAL
             textView {

+ 17 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/customerdata/AddCustomerDataActivity.kt

@@ -14,6 +14,7 @@ import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.UserInfoData
+import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.global.utils.SelectIUtils
 import cn.muchinfo.rma.lifecycle.bindOptional
 import cn.muchinfo.rma.netManage.base.InteractiveException
@@ -197,6 +198,11 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
                             gravity = Gravity.CENTER_VERTICAL
 
                             textView {
+                                if (status == "6"){
+                                    visibility = View.INVISIBLE
+                                }else{
+                                    visibility = View.VISIBLE
+                                }
                                 text = "*"
                                 textColorInt = R.color.rma_star_color
                                 textSizeAuto = 31
@@ -242,6 +248,11 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
                             gravity = Gravity.CENTER_VERTICAL
 
                             textView {
+                                if (status == "6"){
+                                    visibility = View.INVISIBLE
+                                }else{
+                                    visibility = View.VISIBLE
+                                }
                                 text = "*"
                                 textColorInt = R.color.rma_star_color
                                 textSizeAuto = 31
@@ -303,7 +314,7 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
                             textView {
                                 cardType.bindOptional(context) {
                                     it.let {
-                                        text = it?.value
+                                        text = it?.value?.isBlankString()
                                     }
                                 }
                                 document_type_text = this
@@ -340,7 +351,7 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
 
                             editText {
                                 if (status != "1"){
-                                    setText(data.cardnum)
+                                    setText(data.cardnum?.isBlankString())
                                 }
                                 if (status != "1" && status != "2"){
                                     isEnabled = false
@@ -499,7 +510,7 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
 
                             editText {
                                 if (status != "1"){
-                                    setText(data.mobile)
+                                    setText(data.mobile?.isBlankString())
                                 }
                                 if (status != "1" && status != "2"){
                                     isEnabled = false
@@ -533,7 +544,7 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
 
                             editText {
                                 if (status != "1"){
-                                    setText(data.telphone)
+                                    setText(data.telphone?.isBlankString())
                                 }
                                 if (status != "1" && status != "2"){
                                     isEnabled = false
@@ -888,6 +899,8 @@ class AddCustomerDataActivity : BaseActivity<CustomerDataViewModel>() {
         if (cardType.value?.id?.isNullOrEmpty() == false) {
             // FIXME: - 证件类型要从数据库枚举中获取
             params["cardtype"] = cardType.value?.id?.toInt() ?: 0
+        }else{
+            params["cardtype"] = -1
         }
         // 证件号码
         if (!card_umber.text.isNullOrEmpty()) {

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

@@ -102,7 +102,7 @@ class FinancialActivity : BaseActivity<FinancialViewModel>(){
             topBar {
                 commonLeftButton()
                 commonTitle {
-                    text = "管理"
+                    text = "财务审核"
                 }
                 commonMenuButton(R.mipmap.rma_search) {
                     val intent = Intent()

+ 5 - 5
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/financial/FinancialViewholder.kt

@@ -104,7 +104,7 @@ class FinancialViewholder(private val activity: AppCompatActivity, private val v
                         topMargin = autoSize(15)
                     }
 
-                }.lparams(autoSize(150), autoSize(120))
+                }.lparams(autoSize(250), autoSize(120))
 
                 verticalLayout {
                     textView {
@@ -132,7 +132,7 @@ class FinancialViewholder(private val activity: AppCompatActivity, private val v
                         ellipsize = TextUtils.TruncateAt.END
                     }.lparams(wrapContent, wrapContent) {
                         topMargin = autoSize(25)
-                        gravity = Gravity.RIGHT
+
                     }
                     textView {
                          data.bindOptional(context){
@@ -145,7 +145,7 @@ class FinancialViewholder(private val activity: AppCompatActivity, private val v
                                     text = it.payamount +  "/" + it.deductamount
                                 }
                             }else{
-                                text = it?.invoiceAmount
+                                text = it?.InvoiceAmount
                             }
 
                         }
@@ -153,7 +153,7 @@ class FinancialViewholder(private val activity: AppCompatActivity, private val v
                         textColorInt = R.color.hint_text_color
                     }.lparams(wrapContent, wrapContent){
                         topMargin = autoSize(15)
-                        gravity = Gravity.RIGHT
+
                     }
                 }.lparams(autoSize(145), autoSize(120))
 
@@ -170,7 +170,7 @@ class FinancialViewholder(private val activity: AppCompatActivity, private val v
                     }.lparams(wrapContent, wrapContent) {
                         topMargin = autoSize(25)
                         marginEnd = autoSize(35)
-                        gravity = Gravity.RIGHT
+
                     }
 
                 }.lparams(autoSize(250), autoSize(120))

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

@@ -245,7 +245,7 @@ class InvoiceRegisterActivity : BaseActivity<FinancialViewModel>() {
                                     linearLayout {
                                         emptyView()
                                         textView {
-                                            text = data.invoiceAmount
+                                            text = data.InvoiceAmount
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33
                                         }.lparams(wrapContent, wrapContent)

+ 15 - 3
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/financial/PaymentReviewActivity.kt

@@ -206,6 +206,8 @@ class PaymentReviewActivity : BaseActivity<FinancialViewModel>() {
                                             text = "款项类型"
                                         } else if (type == "2") {
                                             text = "类型"
+                                        }else if (type == "3") {
+                                            text = "类型"
                                         }
 
                                         textColorInt = R.color.p_normal_summary_txt_color
@@ -231,6 +233,12 @@ class PaymentReviewActivity : BaseActivity<FinancialViewModel>() {
                                                 }else if (data.contracttype == "2"){
                                                     text = "开票"
                                                 }
+                                            }else if (type == "3") {
+                                                if (data.contracttype == "1"){
+                                                    text = "收票"
+                                                }else if (data.contracttype == "2"){
+                                                    text = "开票"
+                                                }
                                             }
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33
@@ -278,6 +286,8 @@ class PaymentReviewActivity : BaseActivity<FinancialViewModel>() {
                                             text = "登记金额"
                                         }else if (type == "2"){
                                             text = "发票金额"
+                                        }else if (type == "3"){
+                                            text = "发票金额"
                                         }
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
@@ -290,12 +300,14 @@ class PaymentReviewActivity : BaseActivity<FinancialViewModel>() {
                                         textView {
                                             if (type == "1"){
                                                 if (data.payamount.isNullOrEmpty()){
-                                                    text = data.deductamount
+                                                    text = data.deductamount?.isBlankString()
                                                 }else{
-                                                    text = data.payamount
+                                                    text = data.payamount?.isBlankString()
                                                 }
                                             }else if (type == "2"){
-                                                text = data.invoiceAmount
+                                                text = data.InvoiceAmount?.isBlankString()
+                                            }else if (type == "3"){
+                                                text = data.InvoiceAmount?.isBlankString()
                                             }
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33

+ 13 - 9
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/hedge/AddHedgePlanActivity.kt

@@ -109,7 +109,11 @@ class AddHedgePlanActivity : BaseActivity<HedgePlanViewModel>() {
             topBar {
                 commonLeftButton()
                 commonTitle {
-                    text = "新增套保计划"
+                    if (type == "1"){
+                        text = "新增套保计划"
+                    }else {
+                        text = "修改套保计划"
+                    }
                 }
             }
 
@@ -283,20 +287,20 @@ class AddHedgePlanActivity : BaseActivity<HedgePlanViewModel>() {
                         linearLayout {
 
                             gravity = Gravity.CENTER_VERTICAL
-                            textView {
-                                text = "*"
-                                textColorInt = R.color.rma_star_color
-                                textSizeAuto = 31
-                            }.lparams(wrapContent, wrapContent) {
-                                marginStart = autoSize(37)
-                            }
+//                            textView {
+//                                text = "*"
+//                                textColorInt = R.color.rma_star_color
+//                                textSizeAuto = 31
+//                            }.lparams(wrapContent, wrapContent) {
+//                                marginStart = autoSize(37)
+//                            }
 
                             textView {
                                 text = "标仓系数"
                                 textSizeAuto = 31
                                 textColorInt = R.color.rma_black_33
                             }.lparams(wrapContent, wrapContent) {
-                                marginStart = autoSize(10)
+                                marginStart = autoSize(59)
                             }
 
                             textView {

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

@@ -236,6 +236,7 @@ class UnSubmitUI(
                     if (swipeToLayout.getIsRefreshing()) {
                         swipeToLayout.finishRefresh()
                     }
+                    statusLayout.showSuccess()
                     unSubmitAdapter.setNewData(it)
                 }
             }
@@ -297,6 +298,7 @@ class ToAuditUI(
                     if (swipeToLayout.getIsRefreshing()) {
                         swipeToLayout.finishRefresh()
                     }
+                    statusLayout.showSuccess()
                     unSubmitAdapter.setNewData(it)
                 }
             }
@@ -354,6 +356,7 @@ class ExecutionUI(
                     if (swipeToLayout.getIsRefreshing()) {
                         swipeToLayout.finishRefresh()
                     }
+                    statusLayout.showSuccess()
                     unSubmitAdapter.setNewData(it)
                 }
             }

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

@@ -115,12 +115,13 @@ class HedgePlanViewHolder(private val activity: AppCompatActivity,private val vi
                     gravity = Gravity.CENTER_VERTICAL
                     textView {
                         data.bindOptional(context){
-                            text = it?.planqty
+                            text = it?.planqty + it?.enumdicname
                         }
                         textSizeAuto = 22
                         textColorInt = R.color.hint_text_color
                     }.lparams(wrapContent, wrapContent){
                         gravity = Gravity.RIGHT
+                        marginEnd = autoSize(30)
                     }
                 }.lparams(autoSize(145), autoSize(120))
 

+ 25 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/InvoiceRegistrationActivity.kt

@@ -209,7 +209,7 @@ class InvoiceRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 gravity = Gravity.CENTER_VERTICAL
                                 linearLayout {
                                     textView {
-                                        text = "款总额"
+                                        text = "款总额"
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {
@@ -219,7 +219,7 @@ class InvoiceRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                     linearLayout {
                                         emptyView()
                                         textView {
-                                            text = data.loanamount
+                                            text = data.pricedamount?.toDouble()?.plus(data.reckonadjustamount?.toDouble() ?: 0.0).toString()
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33
                                         }.lparams(wrapContent, wrapContent)
@@ -288,7 +288,12 @@ class InvoiceRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }.lparams(autoSize(450), wrapContent)
                                 linearLayout {
                                     textView {
-                                        text = "已收款"
+                                        if (data.contracttype == "1"){
+                                            text = "已付款"
+                                        }else{
+                                            text = "已收款"
+                                        }
+
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {
@@ -339,7 +344,12 @@ class InvoiceRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }.lparams(autoSize(450), wrapContent)
                                 linearLayout {
                                     textView {
-                                        text = "已开票额"
+                                        if (data.contracttype == "1"){
+                                            text = "已收票额"
+                                        }else{
+                                            text = "已开票额"
+                                        }
+
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {
@@ -398,7 +408,11 @@ class InvoiceRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                             linearLayout {
                                 gravity = Gravity.CENTER_VERTICAL
                                 textView {
-                                    text = "开票金额"
+                                    if (data.contracttype == "1"){
+                                        text = "收票金额"
+                                    }else{
+                                        text = "开票金额"
+                                    }
                                     textSizeAuto = 31
                                     textColorInt = R.color.rma_black_33
                                 }.lparams(wrapContent, wrapContent){
@@ -441,7 +455,11 @@ class InvoiceRegistrationActivity : BaseActivity<RegistrationViewModel>() {
 
                             linearLayout {
                                 textView {
-                                    text = "待开票金额:"
+                                    if (data.contracttype == "1"){
+                                        text = "待收票金额:"
+                                    }else{
+                                        text = "待开票金额:"
+                                    }
                                     textColorInt = R.color.text_hit_color
                                     textSizeAuto = 29
                                 }.lparams(wrapContent, wrapContent){
@@ -449,7 +467,7 @@ class InvoiceRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }
 
                                 textView {
-                                    text = data.daikaiamount
+                                    text = data.daikaiamount + "元"
                                     textSizeAuto = 29
                                     textColorInt = R.color.rma_blue_color
                                 }.lparams(wrapContent, wrapContent){

+ 14 - 8
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/PaymentRegistrationActivity.kt

@@ -9,6 +9,7 @@ import android.widget.EditText
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.ViewEnumUtils
 import cn.muchinfo.rma.global.data.ContractData
+import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.protobuf.protoclasses.ErmcpMI1
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseActivity
@@ -152,7 +153,7 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }.lparams(autoSize(450), wrapContent)
                                 linearLayout {
                                     textView {
-                                        text = "暂定价"
+                                        text = "暂定价贷款总额"
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {
@@ -162,7 +163,12 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                     linearLayout {
                                         emptyView()
                                         textView {
-                                            text = data.price + "元"
+                                            text = if (data.pricetype != "3"){
+                                                "--"
+                                            }else{
+                                                data.price + "元"
+                                            }
+
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33
                                         }.lparams(wrapContent, wrapContent) {
@@ -218,7 +224,7 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                             }
 
                             textView {
-                                text = "已登记点价信息"
+                                text = "已登记信息"
                                 textColorInt = R.color.rma_blue_color
                                 textSizeAuto = 34
                             }.lparams(wrapContent, wrapContent) {
@@ -230,7 +236,7 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 gravity = Gravity.CENTER_VERTICAL
                                 linearLayout {
                                     textView {
-                                        text = "已定价"
+                                        text = "已定价"
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {
@@ -240,7 +246,7 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                     linearLayout {
                                         emptyView()
                                         textView {
-                                            text = data.pricedqty
+                                            text = data.pricedamount
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33
                                         }.lparams(wrapContent, wrapContent)
@@ -312,7 +318,7 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }.lparams(autoSize(450), wrapContent)
                                 linearLayout {
                                     textView {
-                                        text = "总计金额"
+                                        text = "合计总额"
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {
@@ -342,7 +348,7 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 gravity = Gravity.CENTER_VERTICAL
                                 linearLayout {
                                     textView {
-                                        text = "款总额"
+                                        text = "款总额"
                                         textColorInt = R.color.p_normal_summary_txt_color
                                         textSizeAuto = 29
                                     }.lparams(wrapContent, wrapContent) {
@@ -352,7 +358,7 @@ class PaymentRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                     linearLayout {
                                         emptyView()
                                         textView {
-                                            text = data.loanamount
+                                            text = data.pricedamount?.toDouble()?.plus(data.reckonadjustamount?.toDouble() ?: 0.0).toString()
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33
                                         }.lparams(wrapContent, wrapContent)

+ 20 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/registration/SettlementRegistrationActivity.kt

@@ -13,6 +13,7 @@ import cn.muchinfo.rma.global.ViewEnumUtils
 import cn.muchinfo.rma.global.data.ContractData
 import cn.muchinfo.rma.protobuf.protoclasses.ErmcpMI1
 import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
 import cn.muchinfo.rma.view.base.BaseActivity
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import com.blankj.utilcode.util.ToastUtils
@@ -246,7 +247,19 @@ class SettlementRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                     linearLayout {
                                         emptyView()
                                         textView {
-                                            text = data.price
+                                            //1:一口价 2:点价 3:暂定价
+                                            if (data.pricetype == "1"){
+                                                text = data.price
+                                            }else if (data.pricetype == "2"){
+                                                text = data.pricedavg
+                                            }else if (data.pricetype == "3"){
+                                                if (data.pricedavg?.isNotEmpty() == true){
+                                                    text = NumberUtils.roundNum(data.pricedavg,2)
+                                                }else{
+                                                    text = data.price
+                                                }
+                                            }
+
                                             textSizeAuto = 29
                                             textColorInt = R.color.rma_black_33
                                         }.lparams(wrapContent, wrapContent)
@@ -270,7 +283,7 @@ class SettlementRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                             }
 
                             textView {
-                                text = "合同基本信息"
+                                text = "已登记信息"
                                 textColorInt = R.color.rma_blue_color
                                 textSizeAuto = 34
                             }.lparams(wrapContent, wrapContent) {
@@ -461,7 +474,7 @@ class SettlementRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }
 
                                 textView {
-                                    text = "吨"
+                                    text = data.enumdicname
                                     textSizeAuto = 29
                                     textColorInt = R.color.rma_black_33
                                 }.lparams(wrapContent, wrapContent) {
@@ -479,7 +492,7 @@ class SettlementRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }
 
                                 textView {
-                                    text = "20"
+                                    text = data.unsureqty
                                     textSizeAuto = 29
                                     textColorInt = R.color.rma_item_click_color
                                 }.lparams(wrapContent, wrapContent) {
@@ -487,7 +500,7 @@ class SettlementRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }
 
                                 textView {
-                                    text = "吨"
+                                    text = data.enumdicname
                                     textSizeAuto = 29
                                     textColorInt = R.color.text_hit_color
                                 }.lparams(wrapContent, wrapContent) {
@@ -737,7 +750,7 @@ class SettlementRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }
 
                                 textView {
-                                    text = "加"
+                                    text = "加"
                                     textSizeAuto = 31
                                     textColorInt = R.color.rma_black_33
                                 }.lparams(wrapContent, wrapContent) {
@@ -760,7 +773,7 @@ class SettlementRegistrationActivity : BaseActivity<RegistrationViewModel>() {
                                 }
 
                                 textView {
-                                    text = "退还"
+                                    text = "减少"
                                     textSizeAuto = 31
                                     textColorInt = R.color.rma_black_33
                                 }.lparams(wrapContent, wrapContent) {

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

@@ -316,6 +316,7 @@ class FinancialReportUI(
                     onThrottleFirstClick {
                         if (viewModel.isselectFinancialMonthOrDay.value == "1"){//日报表数据请求
                             viewModel.qryReportDayFinance(tradedate = tradedate.replace("-",""))
+//                            viewModel.qryReportDayFinance(tradedate = "20210310")
                             financialPaymentUI.queryRefrashByTime(tradeDate = tradedate)
                             financialInvoiceUI.queryRefrashByTime(tradeDate = tradedate)
                         }else{//月报表数据请求

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

@@ -44,7 +44,7 @@ class TradingQueryActivity : BaseActivity<TradingQueryViewModel>() {
 
     /** tab标题 **/
     private val tabsArray: List<String> by lazy {
-        arrayListOf("历史委托", "历史成交", "资金流水")
+        arrayListOf("历史委托", "历史成交", "历史流水")
     }
 
     /**历史委托UI**/

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

@@ -220,7 +220,7 @@ class ContractDetailsUI(
 
             val datalist = arrayListOf<ContractDetailsData>(
                 ContractDetailsData(title = ViewEnumUtils.getContractType(data.contracttype ?: "") + "-" + ViewEnumUtils.getPriceType(data.pricetype ?: "") + "合同",content = data.contractno?.isBlankString() ?: ""),
-                ContractDetailsData(title = if (data.contracttype == "1") { "销售方" }else{ "采购方" },content = if (data.contracttype == "1") { data.sellusername ?: "" }else{ data.buyusername ?: "" }),
+                ContractDetailsData(title = if (data.contracttype == "1") { "销售方" }else{ "采购方" },content = data.accountname ?: "" ),
                 ContractDetailsData(title = "现货品种",content = data.deliverygoodsname ?: ""),
                 ContractDetailsData(title = "产品类型",content = ViewEnumUtils.getProductType(data.producttype ?: "")),
                 ContractDetailsData(title = "产品规格",content = data.spotgoodsdesc ?: ""),

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

@@ -107,7 +107,7 @@ class InvoiceRecordViewHolder(private val activity: AppCompatActivity, private v
                                 text = it.payamount + "/" + it.deductamount
                             }
                         } else {
-                            text = it?.invoiceAmount
+                            text = it?.InvoiceAmount
                         }
                     }
                     textSizeAuto = 22

+ 74 - 0
RMA/app/src/main/res/layout/manage_ten_market_view.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal">
+
+    <RelativeLayout
+        android:id="@+id/buy_ten_lay"
+        android:layout_width="match_parent"
+        android:background="@color/manager_body_bg"
+        android:layout_weight="1"
+        android:focusableInTouchMode="true"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/buy_title"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="买十"
+            android:textColor="@color/p_global_write_color"
+            android:textSize="@dimen/textsize_16sp"
+            android:layout_margin="10dp"
+            />
+
+        <cn.muchinfo.rma.view.base.chart.old.views.ScrollListView
+            android:divider="@null"
+            android:layout_below="@+id/buy_title"
+            android:id="@+id/buy_listview"
+            android:background="@color/manager_buy_lay_bg"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"/>
+
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/sell_ten_lay"
+        android:layout_width="match_parent"
+        android:layout_weight="1"
+        android:focusableInTouchMode="true"
+        android:background="@color/manager_body_bg"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/sell_title"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="卖十"
+            android:textColor="@color/p_global_write_color"
+            android:textSize="@dimen/textsize_16sp"
+            android:layout_margin="10dp"
+            />
+
+        <TextView
+            android:id="@+id/select_quatation"
+            android:paddingStart="5dp"
+            android:paddingEnd="5dp"
+            android:background="@drawable/choice_bg_white"
+            android:layout_margin="10dp"
+            android:layout_alignParentRight="true"
+            android:textColor="@color/p_global_write_color"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <cn.muchinfo.rma.view.base.chart.old.views.ScrollListView
+            android:divider="@null"
+            android:layout_below="@+id/sell_title"
+            android:id="@+id/sell_listview"
+            android:layout_width="wrap_content"
+            android:background="@color/manager_sell_lay_bg"
+            android:layout_height="wrap_content"/>
+    </RelativeLayout>
+
+</LinearLayout>

+ 16 - 0
RMA/chart/src/main/java/com/desfate/chart/ui/old/OTC/listener/OnChartListener.java

@@ -0,0 +1,16 @@
+package com.desfate.chart.ui.old.OTC.listener;
+
+import com.desfate.chart.ui.old.OTC.datas.HistoryQuoteResponse;
+
+/**
+ * Created by cxl on 2018/4/16.
+ */
+
+public interface OnChartListener {
+
+    void onSuccess(HistoryQuoteResponse response, long serialNumber);
+
+    void onTimeOut(long serialNumber);
+
+    void onRequestNetError(long serialNumber);
+}

+ 0 - 179
RMA/chart/src/main/java/com/desfate/chart/ui/old/adapter/HistoryQuoteResponse.java

@@ -1,179 +0,0 @@
-package com.desfate.chart.ui.old.adapter;
-
-import com.desfate.chart.util.ByteUtils;
-
-import java.io.UnsupportedEncodingException;
-import java.nio.ByteOrder;
-
-public class HistoryQuoteResponse {
-	// typedef struct tagQUERY_CYCLE_RSP
-	// {
-	// int16_t iExchCode; // 交易所代码
-	// char szSymbol[64]; // 商品代码
-	// int16_t iType; // 类型
-	// int16_t iRaidx; // 小数位数
-	// int32_t iCount; // 记录数
-	// CYCLE_DATA cycData[0]; // 周期数据
-	// } QUERY_CYCLE_RSP;
-	// 交易所代码
-
-	// 一笔周期数据长度
-	private static int CYCLE_LENGTH = 36;
-	
-	// 一笔tik数据的长度
-	private static int TIK_LENGTH = 40;
-	
-	// 历史数据抬头的长度
-	private static int HEAD_LENGTH = 74;
-
-
-    // 交易所代码  2
-	private short exchangeCode;
-
-	// 商品代码 64
-	private String goodsCode;
-
-	// 数据类型 2
-	private short type;
-
-	// 小数位数 2
-	private short decimalPlace;
-
-	// 记录数 4
-	private int count;
-
-	// 历史数据 
-	private byte[] datas;
-	
-
-	public short getExchangeCode() {
-		return exchangeCode;
-	}
-
-
-
-	public void setExchangeCode(short exchangeCode) {
-		this.exchangeCode = exchangeCode;
-	}
-
-
-
-	public String getGoodsCode() {
-		return goodsCode;
-	}
-
-
-
-	public void setGoodsCode(String goodsCode) {
-		this.goodsCode = goodsCode;
-	}
-
-
-
-	public short getType() {
-		return type;
-	}
-
-
-
-	public void setType(short type) {
-		this.type = type;
-	}
-
-
-
-	public short getDecimalPlace() {
-		return decimalPlace;
-	}
-
-
-
-	public void setDecimalPlace(short decimalPlace) {
-		this.decimalPlace = decimalPlace;
-	}
-
-
-
-	public int getCount() {
-		return count;
-	}
-
-
-
-	public void setCount(int count) {
-		this.count = count;
-	}
-
-
-
-	public byte[] getContent() {
-		return datas;
-	}
-
-
-
-	public void setContent(byte[] datas) {
-		this.datas = datas;
-	}
-
-
-    /**
-	 * 将二进制数据转换为历史请求返回对象
-	 * 这里只取出数据的头和数据体
-	 * @param content
-	 *            二进制数据
-	 * @return
-	 */
-	public static HistoryQuoteResponse toObject(byte[] content) {
-		if (content == null) {
-			return null;
-		}
-
-		// 如果小于最小长度 直接返回
-		if (content.length < HEAD_LENGTH) {
-			return null;
-		}
-
-		HistoryQuoteResponse response = new HistoryQuoteResponse();
-		int index = 0;
-		byte[] block;
-		response.exchangeCode = ByteUtils.bytesToShort(content, index, ByteOrder.BIG_ENDIAN);
-		index += 2;
-		block = new byte[64];
-		System.arraycopy(content, index, block, 0, block.length);
-		int zeroIndex = -1;
-		for (int i = 0;i <block.length; i++) {
-			if(block[i] == 0){
-				zeroIndex = i;
-				break;
-			}
-		}
-		if(zeroIndex > 0){
-			block = new byte[zeroIndex + 1];
-			System.arraycopy(content, index, block, 0, block.length);
-		}
-		try {
-			response.goodsCode = new String(block, "utf-8");
-		} catch (UnsupportedEncodingException e) {
-			e.printStackTrace();
-			return null;
-		}
-
-		index += 64;
-		response.type = ByteUtils.bytesToShort(content, index, ByteOrder.BIG_ENDIAN);
-		index += 2;
-		response.decimalPlace = ByteUtils.bytesToShort(content, index, ByteOrder.BIG_ENDIAN);
-		index += 2;
-		response.count = ByteUtils.bytesToInt(content, index, ByteOrder.BIG_ENDIAN);
-		index += 4;
-
-		if (response.count != 0) {
-			if (content.length > HEAD_LENGTH) {
-				response.datas = new byte[content.length - HEAD_LENGTH];
-				System.arraycopy(content, index, response.datas, 0, response.datas.length);
-			}
-		}
-
-		return response;
-	}
-}

+ 1 - 0
RMA/chart/src/main/java/com/desfate/chart/ui/old/adapter/HistoryTik.java

@@ -1,6 +1,7 @@
 package com.desfate.chart.ui.old.adapter;
 
 
+import com.desfate.chart.ui.old.OTC.datas.HistoryQuoteResponse;
 import com.desfate.chart.util.ByteUtils;
 import com.desfate.chart.util.LogUtils;
 

+ 12 - 0
RMA/chart/src/main/res/drawable/choice_bg_white.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <stroke
+        android:color="@color/p_bottom_g_color"
+        android:width="2dp" />
+    <solid android:color="@color/manager_title_bg" />
+    <corners
+        android:bottomLeftRadius="0dp"
+        android:topLeftRadius="0dp"
+        android:bottomRightRadius="2dp"
+        android:topRightRadius="2dp" />
+</shape>

+ 7 - 0
RMA/chart/src/main/res/values/colors.xml

@@ -72,6 +72,13 @@
     <!--点击item时的颜色-->
     <color name="p_item_click">#d7d7d7</color>
 
+    <!-- 图表相关 -->
+    <color name="manager_body_bg">#1e1e1e</color>
+    <color name="p_global_write_color">#FFFFFF</color>
+    <color name="manager_buy_lay_bg">#1b212e</color>
+    <color name="manager_sell_lay_bg">#2f251b</color>
+    <color name="manager_title_bg">#1f2120</color>
+
     <!--全局配置-白色-->
     <color name="p_global_write_color">#FFFFFF</color>
     <color name="manager_body_bg">#1e1e1e</color>

Деякі файли не було показано, через те що забагато файлів було змінено