zhou.xiaoning 3 anni fa
parent
commit
24e608e1c5
20 ha cambiato i file con 879 aggiunte e 57 eliminazioni
  1. 1 0
      RMA/.idea/misc.xml
  2. 9 2
      RMA/app/build.gradle
  3. 12 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/DeliveryGoodsDetailData.kt
  4. 50 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  5. 4 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  6. 20 14
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainFragment.kt
  7. 5 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/ContractOrdersActivity.kt
  8. 7 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/adapter/ContractPositionContentAdapter.java
  9. 5 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/ContractUnWindActivity.kt
  10. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/ContractUnWindViewModel.kt
  11. 14 14
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/set/ChangePasswordActivity.kt
  12. 440 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/xhcp/XhcpHomeFragment.kt
  13. 108 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/xhcp/XhcpHomeViewModel.kt
  14. 70 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/xhcp/XhcpInformationUI.kt
  15. 46 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/LoginActivity.kt
  16. 3 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdMarketViewModel.kt
  17. 14 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdWarehouseOneListedDialog.kt
  18. 38 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallActivity.kt
  19. 17 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/BusinessHallViewModel.kt
  20. 13 7
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/warehousereceipt/OneListedDialog.kt

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

@@ -8,6 +8,7 @@
         <entry key="..\:/Repo/MyGogs/Muchinfo/MTP2.0_RMA/RMA/app/src/main/res/layout/activity_yrdz_chart.xml" value="0.39010416666666664" />
         <entry key="..\:/Repo/MyGogs/Muchinfo/MTP2.0_RMA/RMA/app/src/main/res/layout/chart_info_layout.xml" value="0.39010416666666664" />
         <entry key="..\:/Repo/MyGogs/Muchinfo/MTP2.0_RMA/RMA/app/src/main/res/layout/chart_info_layout_tjmd.xml" value="0.39010416666666664" />
+        <entry key="..\:/Repo/MyGogs/Muchinfo/MTP2.0_RMA/RMA/app/src/main/res/layout/contract_layout_item_content.xml" value="0.5541666666666667" />
         <entry key="..\:/Repo/MyGogs/Muchinfo/MTP2.0_RMA/RMA/app/src/main/res/layout/exposure_report_layout_item_content.xml" value="0.4125" />
       </map>
     </option>

+ 9 - 2
RMA/app/build.gradle

@@ -19,8 +19,8 @@ android {
         applicationId "cn.muchinfo.rma"
         minSdkVersion 24
         targetSdkVersion 30
-        versionCode 50043
-        versionName "5.0.43"
+        versionCode 50044
+        versionName "5.0.44"
         multiDexEnabled true
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         //指定room.schemaLocation生成的文件路径
@@ -65,6 +65,13 @@ android {
             resValue "string","app_name","掉期市场"
             manifestPlaceholders = [app_icon : "@mipmap/ic_launcher_tjmd"]
         }
+        // 新会陈皮
+        xhcp {
+            // 解释同app1
+            applicationId "cn.muchinfo.xhcp"
+            resValue "string","app_name","新会陈皮"
+            manifestPlaceholders = [app_icon : "@mipmap/ic_launcher_rma"]
+        }
     }
 
     buildTypes {

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

@@ -24,6 +24,8 @@ data class DeliveryGoodsDetailData(
     val deliverygoodsname : String? = "",//现货品种名称
     @SerializedName("dgstatus")
     val dgstatus : String? = "",////品种状态 - 作废 - 0:未激活 1:正常
+    @SerializedName("filterSubEmpty")
+    var filterSubEmpty : Int = 0,//过滤下级为空的
     @SerializedName("isvalid")
     val isvalid : String? = "",//是否有效 - 0:无效 1:有效
     @SerializedName("remark")
@@ -46,6 +48,7 @@ data class DeliveryGoodsDetailData(
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
+        parcel.readInt(),
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
@@ -64,6 +67,7 @@ data class DeliveryGoodsDetailData(
         parcel.writeString(deliverygoodsid)
         parcel.writeString(deliverygoodsname)
         parcel.writeString(dgstatus)
+        parcel.writeInt(filterSubEmpty)
         parcel.writeString(isvalid)
         parcel.writeString(remark)
         parcel.writeString(unitid)
@@ -95,6 +99,10 @@ data class XhWrstandard(
     val deliverygoodsid : String? = "",//品种ID
     @SerializedName("enumdicname")
     val enumdicname : String? = "",//单位名称
+    @SerializedName("pictureurls")
+    val pictureurls : String? = "",//详情图片(逗号分隔)
+    @SerializedName("thumurls")
+    val thumurls : String? = "",//缩略图片(1:1)(逗号分隔)
     @SerializedName("unitid")
     val unitid : String? = "",//单位id
     @SerializedName("vatrate")
@@ -117,6 +125,8 @@ data class XhWrstandard(
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
         parcel.createTypedArrayList(XhMiddlergoods),
         parcel.readInt()
     ) {
@@ -125,6 +135,8 @@ data class XhWrstandard(
     override fun writeToParcel(parcel: Parcel, flags: Int) {
         parcel.writeString(deliverygoodsid)
         parcel.writeString(enumdicname)
+        parcel.writeString(pictureurls)
+        parcel.writeString(thumurls)
         parcel.writeString(unitid)
         parcel.writeString(vatrate)
         parcel.writeString(wrstandardcode)

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

@@ -20,6 +20,7 @@ import cn.muchinfo.rma.view.base.hnstcdys.HnstcdysFragment
 import cn.muchinfo.rma.view.base.hnstmain.HnstMainFragment
 import cn.muchinfo.rma.view.base.home.NewHomeFragment
 import cn.muchinfo.rma.view.base.home.tjmd.TjmdHomeFragment
+import cn.muchinfo.rma.view.base.home.xhcp.XhcpHomeFragment
 import cn.muchinfo.rma.view.base.home.yrdz.YrdzHomeFragment
 import cn.muchinfo.rma.view.base.main.SeaKingMainFragment
 import cn.muchinfo.rma.view.base.platinumtreasure.PlatinumTreasureFragment
@@ -67,6 +68,11 @@ class MainActivity : BaseActivity<MainViewModel>() {
         TjmdHomeFragment()
     }
 
+    /** 新会陈皮首页 **/
+    val xhcpHomeFragment by lazy {
+        XhcpHomeFragment()
+    }
+
     /** 新版风管云平台的现货fragment **/
     val spotFragment by lazy {
         SpotFragment()
@@ -162,6 +168,9 @@ class MainActivity : BaseActivity<MainViewModel>() {
             SPUtils.getInstance().getString(Constant.oem) == "tjmd" -> {
                 newFragments.add(tjmdHomeFragment)
             }
+            SPUtils.getInstance().getString(Constant.oem) == "xhcp" -> {
+                newFragments.add(xhcpHomeFragment)
+            }
             else -> {
                 newFragments.add(homeFragment)
             }
@@ -266,6 +275,47 @@ class MainActivity : BaseActivity<MainViewModel>() {
             }
         }
 
+        // 新会陈皮
+        if (SPUtils.getInstance().getString(Constant.oem) == "xhcp"){
+            val tjmdMarketList = GlobalDataCollection.instance?.getTjmdShowMarketSectionList()
+            tjmdMarketList?.forEach {
+                //由于在板块信息中没有区分的字段,所以用子列表内的trademodel判断是否是参考行情的页面(参考行情是后期发现有的,没有柔合到TjmdMarketFragment内)
+                var isReference = false
+                it.mlist?.forEach {
+                    if (it.trademode == "99"){
+                        isReference = true
+                    }
+                }
+                if (isReference){
+                    val referenceFragment = ReferenceFragment()
+                    val bundle = Bundle()
+                    bundle.putString("titlename",it.marketsectionname)
+                    referenceFragment.arguments = bundle
+                    newFragments.add(referenceFragment)
+                    newTabText.add(it.marketsectionname ?: "")
+                }else{
+                    val tjmdMarketFragment = TjmdMarketFragment()
+                    val bundle = Bundle()
+                    bundle.putString("titlename",it.marketsectionname)
+                    bundle.putString("index",tjmdMarketList.indexOf(it).toString())
+                    tjmdMarketFragment.arguments = bundle
+                    newFragments.add(tjmdMarketFragment)
+                    newTabText.add(it.marketsectionname ?: "")
+                }
+
+                if (tjmdMarketList.indexOf(it) == 0){
+                    newNormalIcon.add(R.mipmap.warehous_recepit_normal)
+                    newSelectIcon.add(R.mipmap.warehous_recepit_celect)
+                }else if (tjmdMarketList.indexOf(it) == 1){
+                    newNormalIcon.add(R.mipmap.yrdz_cdys_normal)
+                    newSelectIcon.add(R.mipmap.yrdz_yscd_select)
+                }else{
+                    newNormalIcon.add(R.mipmap.yrdz_ddjy_normal)
+                    newSelectIcon.add(R.mipmap.yrdz_ddjy_select)
+                }
+            }
+        }
+
         //云融大宗就用原本的写死的仓单贸易/预售/订单交易
         if (SPUtils.getInstance().getString(Constant.oem) == "yrdz"){
             if (GlobalDataCollection.instance?.getFirstLevelMenu("client_mobile_hnstcdmy") == true) {

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

@@ -6,7 +6,8 @@ object Constant {
     /**
      * 获取基础url的接口
      */
-    const val baseurl = "http://103.40.249.123:38280/cfg?key=mtp_20" // 天津麦顿
+//    const val baseurl = "http://103.40.249.123:38280/cfg?key=mtp_20" // 天津麦顿模拟盘
+    const val baseurl = "http://47.104.141.54:38280/cfg?key=mtp_20" // 天津麦顿实盘
 //    const val baseurl = "http://103.40.249.123:28280/cfg?key=mtp_20"//云融大宗
 //    const val baseurl = "http://103.40.249.123:8280/cfg?key=mtp_20"//千海金外盘
 //    const val baseurl = "http://103.40.249.127:28280/cfg?key=mtp_20"
@@ -38,6 +39,8 @@ object Constant {
 //    const val baseurl = "http://192.168.31.167:8080/cfg?key=test_167"//黄老板 平安云平台(企业风管)
 
 //    const val baseurl = "http://218.17.158.45:21001/cfg?key=test_139"// 邓工139外网环境 2100000003/123456
+//    const val baseurl = "http://192.168.31.176:8080/cfg?key=test_176" // 邓工 新会陈皮
+//    const val baseurl = "http://192.168.31.137:8080/cfg?key=test_137" // 麦顿
 
     /**
      * 用sp存储基础url的key

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

@@ -277,7 +277,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                         linearLayout {
                             visibility =
-                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                     View.GONE
                                 } else {
                                     View.VISIBLE
@@ -395,7 +395,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                                 gravity = Gravity.LEFT
                                 textView {
                                     text = if (SPUtils.getInstance()
-                                            .getString(Constant.oem) == "tjmd"
+                                            .getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp"
                                     ) {
                                         "净值"
                                     } else {
@@ -414,7 +414,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                                     viewModel.usedAccountData.bindOptional(context) {
                                         if (isOpenEye.value == true) {
                                             if (SPUtils.getInstance()
-                                                    .getString(Constant.oem) == "tjmd"
+                                                    .getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp"
                                             ) {
                                                 val parmasvalue =
                                                     GlobalDataCollection.instance?.getSystemParamsValue(
@@ -466,7 +466,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                         //狗屎一样的设计,,,,,fuck
                         linearLayout {
                             visibility =
-                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                     View.VISIBLE
                                 } else {
                                     View.GONE
@@ -476,7 +476,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                                 gravity = Gravity.LEFT
                                 textView {
                                     text = if (SPUtils.getInstance()
-                                            .getString(Constant.oem) == "tjmd"
+                                            .getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp"
                                     ) {
                                         "净值"
                                     } else {
@@ -496,7 +496,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                                     viewModel.usedAccountData.bindOptional(context) {
                                         if (isOpenEye.value == true) {
                                             if (SPUtils.getInstance()
-                                                    .getString(Constant.oem) == "tjmd"
+                                                    .getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp"
                                             ) {
                                                 val parmasvalue =
                                                     GlobalDataCollection.instance?.getSystemParamsValue(
@@ -659,7 +659,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                         linearLayout {
                             visibility =
-                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                     View.VISIBLE
                                 } else {
                                     View.GONE
@@ -796,7 +796,8 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                                                 }
 
                                             var risk = 0.0
-                                            if (it?.valueOfposition != 0.0) {
+//                                            if (it?.valueOfposition != 0.0) {
+                                            if (worth != 0.0) {
                                                 risk = it?.usedmargin?.div(worth) ?: 0.0
                                             }
                                             text = NumberUtils.roundNum(
@@ -902,7 +903,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                             //预售仓单
                             verticalLayout {
                                 visibility =
-                                    if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                    if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                         View.GONE//任务 2621
                                     } else {
                                         View.VISIBLE
@@ -931,7 +932,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                             //商品订单
                             verticalLayout {
                                 visibility =
-                                    if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                    if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                         View.GONE//任务 2621
                                     } else {
                                         View.VISIBLE
@@ -960,6 +961,11 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                             //掉期订单
                             verticalLayout {
+                                visibility = if (SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
+                                    View.GONE
+                                } else {
+                                    View.VISIBLE
+                                }
                                 onThrottleFirstClick {
                                     val intent = Intent()
                                     intent.putExtra("type", "2")
@@ -1065,7 +1071,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                         linearLayout {
                             visibility =
-                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                     View.GONE//任务 2621
                                 } else {
                                     View.VISIBLE
@@ -1120,7 +1126,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                         linearLayout {
                             visibility =
-                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                     View.GONE//任务 2621
                                 } else {
                                     View.VISIBLE
@@ -1231,7 +1237,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                         linearLayout {
                             visibility =
-                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                     View.GONE//任务 2621
                                 } else {
                                     View.VISIBLE
@@ -1335,7 +1341,7 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
                         linearLayout {
                             visibility =
-                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd") {
+                                if (SPUtils.getInstance().getString(Constant.oem) == "tjmd" || SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
                                     View.VISIBLE
                                 } else {
                                     View.GONE

+ 5 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/ContractOrdersActivity.kt

@@ -30,6 +30,7 @@ import cn.muchinfo.rma.view.base.procurement.TopTabAdpater
 import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
 import com.blankj.utilcode.util.ConvertUtils
 import com.blankj.utilcode.util.LogUtils
+import com.blankj.utilcode.util.SPUtils
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
 import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
 import com.qmuiteam.qmui.widget.tab.QMUITabSegment
@@ -88,8 +89,10 @@ class ContractOrdersActivity : BaseActivity<ContractOrdersViewModel>() {
         newTabsArray.add("委托")
         uiList.add(orderUI.root)
 
-        newTabsArray.add("协议单")
-        uiList.add(agreementUI.root)
+        if (SPUtils.getInstance().getString(Constant.oem) != "tjmd") {
+            newTabsArray.add("协议单")
+            uiList.add(agreementUI.root)
+        }
 
         newTabsArray.add("成交")
         uiList.add(traderUI.root)

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

@@ -17,6 +17,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.blankj.utilcode.util.ActivityUtils;
+import com.blankj.utilcode.util.SPUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -33,6 +34,7 @@ import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo;
 import cn.muchinfo.rma.global.database.DataBase;
 import cn.muchinfo.rma.view.autoWidget.CustomHorizontalScrollView;
 import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils;
+import cn.muchinfo.rma.view.base.app.Constant;
 import cn.muchinfo.rma.view.base.hnstmain.contractorders.ContractOrdersViewModel;
 import cn.muchinfo.rma.view.base.hnstmain.contractorders.delivery.DeliveryActivity;
 import cn.muchinfo.rma.view.base.hnstmain.contractorders.transfer.ContractTransferActivity;
@@ -341,6 +343,11 @@ public class ContractPositionContentAdapter extends RecyclerView.Adapter<Contrac
             itemViewHolder.warehouse_register.setVisibility(View.VISIBLE);
         }
 
+        // 天津麦顿不显示“协议平仓”
+        if (SPUtils.getInstance().getString(Constant.oem).equals("tjmd")) {
+            itemViewHolder.agreement_to_unwind.setVisibility(View.GONE);
+        }
+
         //平仓操作
         itemViewHolder.to_unwind.setOnClickListener(view -> {
             Intent intent = new Intent();

+ 5 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/contractorders/unwind/ContractUnWindActivity.kt

@@ -26,6 +26,7 @@ import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 import org.jetbrains.anko.*
 
+// 掉期平仓
 class ContractUnWindActivity : BaseActivity<ContractUnWindViewModel>(){
 
     // 下拉刷新
@@ -257,7 +258,10 @@ class ContractUnWindActivity : BaseActivity<ContractUnWindViewModel>(){
                                         if (viewModel.agreementData.value?.refgoodsid.isNullOrEmpty()){
                                             text = "--"
                                         }else{
-                                            text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.getPrice()?.times(viewModel.agreementData.value?.holderqty?.toInt() ?: 0).toString()),2)
+                                            text = NumberUtils.roundNum(NumberUtils.doubleDistortion(
+                                                it?.getPrice()?.times(viewModel.agreementData.value?.holderqty?.toInt() ?: 0)
+                                                    ?.times(viewModel.agreementData.value?.agreeunit?.toInt() ?: 0)
+                                                    .toString()),2)
                                         }
                                     }
                                 }

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

@@ -141,16 +141,17 @@ class ContractUnWindViewModel : BaseViewModel(){
             if (it.tradeid == tradeid){
                 if (it.isClick == 0){
                     newWrStandardFactoryItemDataList.add(it.copy(isClick = 1))
-                    agreementData.postValue(it.copy(isClick = 1))
+                    agreementData.setValue(it.copy(isClick = 1))
                 }else{
                     newWrStandardFactoryItemDataList.add(it.copy(isClick = 0))
-                    agreementData.postValue(TradeHolderDetailData())
+                    agreementData.setValue(TradeHolderDetailData())
                 }
             }else{
                 newWrStandardFactoryItemDataList.add(it.copy(isClick = 0))
             }
         }
         agreementDataList.postValue(newWrStandardFactoryItemDataList)
+
         if (agreementData.value?.refgoodsid.isNullOrEmpty().not()){
             val selectQuoteDayData = GlobalDataCollection.instance?.goodsInfoAndQuotesList?.find {
                 it?.outgoodscode == agreementData.value?.refgoodscode
@@ -159,7 +160,6 @@ class ContractUnWindViewModel : BaseViewModel(){
         }else{
             quoteDayData.postValue(QuoteDayData())
         }
-
     }
 
 

+ 14 - 14
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/set/ChangePasswordActivity.kt

@@ -12,12 +12,10 @@ import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.app.Constant
 import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.home.contract.emptyView
-import com.blankj.utilcode.util.ActivityUtils
-import com.blankj.utilcode.util.AppUtils
-import com.blankj.utilcode.util.LogUtils
-import com.blankj.utilcode.util.ToastUtils
+import com.blankj.utilcode.util.*
 import mtp.polymer.com.autowidget.dialog.createLoadingDialog
 import mtp.polymer.com.autowidget.dialog.createWarningDialog
 import mtp.polymer.com.autowidget.utils.bindTaskStatus
@@ -114,17 +112,19 @@ class ChangePasswordActivity : BaseActivity<ChangePasswordViewModel>(){
                     marginEnd = marpadding
                 }
 
-                textView {
-                    onThrottleFirstClick {
-                        val intent = Intent()
-                        intent.setClass(context,ResetPasswordActivity::class.java)
-                        ActivityUtils.startActivity(intent)
+                if (SPUtils.getInstance().getString(Constant.oem) != "tjmd") {
+                    textView {
+                        onThrottleFirstClick {
+                            val intent = Intent()
+                            intent.setClass(context,ResetPasswordActivity::class.java)
+                            ActivityUtils.startActivity(intent)
+                        }
+                        text = "忘记密码"
+                        textColorInt = R.color.rma_blue_color
+                        textSizeAuto = 34
+                    }.lparams(wrapContent, wrapContent) {
+                        marginEnd = marpadding
                     }
-                    text = "忘记密码"
-                    textColorInt = R.color.rma_blue_color
-                    textSizeAuto = 34
-                }.lparams(wrapContent, wrapContent) {
-                    marginEnd = marpadding
                 }
             }.lparams(matchParent, autoSize(120))
             itemView()

+ 440 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/xhcp/XhcpHomeFragment.kt

@@ -0,0 +1,440 @@
+package cn.muchinfo.rma.view.base.home.xhcp
+
+import android.annotation.SuppressLint
+import android.content.Intent
+import android.graphics.Rect
+import android.net.Uri
+import android.os.Bundle
+import android.text.TextUtils
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.FrameLayout
+import android.widget.TextView
+import android.widget.ViewFlipper
+import androidx.cardview.widget.CardView
+import androidx.recyclerview.widget.RecyclerView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import cn.bingoogolapple.bgabanner.BGABanner
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.BannerData
+import cn.muchinfo.rma.global.data.NoticeData
+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.WebActivity
+import cn.muchinfo.rma.view.base.app.Constant
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.hnstmain.performance.PerformanceInformationActivity
+import cn.muchinfo.rma.view.base.home.yrdz.YrAnnouncementUI
+import cn.muchinfo.rma.view.base.home.yrdz.YrdzNoticeActivity
+import cn.muchinfo.rma.view.eventbus.MainTabSelectMessageEvent
+import com.blankj.utilcode.util.ActivityUtils
+import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.SPUtils
+import com.facebook.drawee.view.SimpleDraweeView
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mtp.polymer.com.information_management.hnstocks.message.MessageDetailsActivity
+import org.greenrobot.eventbus.EventBus
+import org.jetbrains.anko.*
+import org.jetbrains.anko.support.v4.UI
+import org.jetbrains.anko.support.v4.viewPager
+
+class XhcpHomeFragment : BaseFragment<XhcpHomeViewModel>(){
+    companion object {
+        fun newInstance() = XhcpHomeFragment()
+    }
+
+    // 下拉刷新
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    lateinit var segment: QMUITabSegment
+
+    var fistShow: Int = 0
+    var lastShow: Int = 0
+
+    var selectedTabIndex: Int = 0
+    private lateinit var viewPager: ViewPager
+
+    lateinit var noticeViewFlipper : ViewFlipper
+
+    lateinit var dataRecyclerview : RecyclerView
+
+    lateinit var chartView : AAChartView
+    lateinit var chartModel : AAChartModel
+
+    private val xhcpAnnouncementUI: XhcpAnnouncementUI by lazy {
+        XhcpAnnouncementUI(
+            this,
+            viewModel
+        )
+    }//公告
+
+    val thisTag by lazy {
+        "XhcpHomeFragment"
+    }
+
+    override fun onDestroy() {
+        super.onDestroy()
+    }
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+    }
+
+    //viewpager的适配器
+    private var pagerAdapter: PagerAdapter? = null
+
+    //tabSegment标题
+    private val tabsArray: ArrayList<String> = arrayListOf()
+
+    //暂存的页面组
+    private val uiMessageList: ArrayList<_FrameLayout> = arrayListOf()
+
+    fun initMessageMenuData() {
+        tabsArray.add("公告")
+        uiMessageList.add(xhcpAnnouncementUI.root)
+
+        pagerAdapter = object : PagerAdapter() {
+
+            override fun getPageTitle(position: Int): CharSequence? = tabsArray[position]
+
+            override fun instantiateItem(container: ViewGroup, position: Int): Any {
+                return uiMessageList[position].apply {
+                    container.addView(
+                        this,
+                        ViewGroup.LayoutParams(matchParent, matchParent)
+                    )
+                }
+            }
+
+            override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
+                (`object` as? View)?.let { container.removeView(it) }
+            }
+
+            override fun isViewFromObject(view: View, `object`: Any): Boolean = view == `object`
+
+            override fun getCount(): Int = tabsArray.size
+
+        }
+
+    }
+
+    @SuppressLint("RtlHardcoded")
+    private fun initViewFlipper(notice: List<NoticeData>) {
+        for (i in 0 until notice.size) {
+            val view = TextView(context)
+            val params = FrameLayout.LayoutParams(
+                ViewGroup.LayoutParams.WRAP_CONTENT,
+                ViewGroup.LayoutParams.WRAP_CONTENT
+            )
+            params.gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+            view.layoutParams = params
+            view.text = notice[i].title
+            view.maxLines = 1
+            view.ellipsize = TextUtils.TruncateAt.END
+            view.setTextColor(context?.resources?.getColor(R.color.rma_black_33)!!)
+            view.textSize = 12f
+            view.setOnClickListener {
+                val intent = Intent()
+                intent.putExtra("data", notice[i])
+                intent.setClass(context!!, MessageDetailsActivity::class.java)
+                ActivityUtils.startActivity(intent)
+            }
+            noticeViewFlipper.addView(view)
+        }
+        //是否自动开始滚动
+        noticeViewFlipper.isAutoStart = true
+        //滚动时间
+        noticeViewFlipper.flipInterval = 3000
+        //开始滚动
+        noticeViewFlipper.startFlipping()
+        //出入动画
+        noticeViewFlipper.setOutAnimation(context, R.anim.slide_out_right)
+        noticeViewFlipper.setInAnimation(context, R.anim.slide_in_left)
+    }
+
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        return UI {
+            initMessageMenuData()
+            viewModel.getBanner()
+            viewModel.setDataList(thisTag){ _, _ ->
+                GlobalScope.launch(Dispatchers.Main) {
+                }
+            }
+
+            viewModel.queryNotice()
+            verticalLayout {
+                linearLayout {
+                    background = resources.getDrawable(R.color.main_title_bg_color)
+                    verticalLayout {
+                        gravity = Gravity.CENTER
+                        textView {
+                            text = "新会陈皮"
+                            textColorInt = R.color.white
+                            textSizeAuto = 36
+                        }.lparams(wrapContent, wrapContent) {
+                            gravity = Gravity.CENTER_HORIZONTAL
+                        }
+
+                    }.lparams(autoSize(620), autoSize(90)) {
+                        marginStart = autoSize(140)
+                    }
+
+                    imageView {
+                        onThrottleFirstClick {
+                            val intent = Intent()
+                            intent.setClass(context, YrdzNoticeActivity::class.java)
+                            ActivityUtils.startActivity(intent)
+                        }
+                        imageResource = R.mipmap.yrdz_topright_icon
+                    }.lparams(autoSize(45), autoSize(45)) {
+                        marginStart = autoSize(32)
+                        topMargin = autoSize(20)
+                    }
+
+                }.lparams(matchParent, autoSize(120))
+
+                relativeLayout {
+                    nestedScrollView{
+                        setOnScrollChangeListener(object : View.OnScrollChangeListener {
+                            override fun onScrollChange(
+                                p0: View?,
+                                p1: Int,
+                                p2: Int,
+                                p3: Int,
+                                p4: Int
+                            ) {
+                                val scrollRect = Rect()
+                                getHitRect(scrollRect)
+                            }
+                        })
+                        verticalLayout {
+                            background = resources.getDrawable(R.color.white)
+                            inflateLayout<BGABanner>(R.layout.banner) {
+                                // TODO 目前没有banner
+                                viewModel.bannerList.bindOptional(context) {
+                                    setData(
+                                        R.layout.item_fresco,
+                                        it,
+                                        null
+                                    )
+                                }
+                                setDelegate { _, _, model, _ ->
+                                    val data = model as BannerData
+                                    val intent = Intent()
+                                    intent.putExtra("url",data.url)
+                                    intent.putExtra("title",data.title)
+                                    intent.setClass(context, WebActivity::class.java)
+                                    ActivityUtils.startActivity(intent)
+                                }
+
+                                setAdapter(object : BGABanner.Adapter<CardView, BannerData> {
+                                    override fun fillBannerItem(
+                                        banner: BGABanner?,
+                                        itemView: CardView?,
+                                        model: BannerData?,
+                                        position: Int
+                                    ) {
+                                        val simpleDraweeView: SimpleDraweeView =
+                                            itemView!!.findViewById(R.id.sdv_item_fresco_content)
+                                        simpleDraweeView.setImageURI(
+                                            Uri.parse(if (SPUtils.getInstance().getString(Constant.uploadUrl).contains("upload")){
+                                                SPUtils.getInstance().getString(Constant.uploadUrl).replace("/upload","") + model?.imagepath?.substring(1)
+                                            }else{
+                                                SPUtils.getInstance().getString(Constant.uploadUrl) + model?.imagepath?.substring(1)
+                                            }))
+                                    }
+                                })
+
+                            }.lparams(matchParent, autoSize(400))
+
+                            itemView()
+
+                            linearLayout {
+                                gravity = Gravity.CENTER_VERTICAL
+                                imageView {
+                                    imageResource = R.mipmap.yrdz_nctice_icon
+                                }.lparams(autoSize(36), autoSize(36)){
+                                    marginStart = autoSize(36)
+                                }
+
+                                viewFlipper {
+                                    noticeViewFlipper = this
+                                    viewModel.noticeDataList.bindOptional(context){
+                                        if (it?.size ?: 0 > 0){
+                                            val newDataList = arrayListOf<NoticeData>()
+                                            newDataList.add(it?.get(0) ?: NoticeData())
+                                            initViewFlipper(newDataList)
+                                        }
+                                    }
+                                }.lparams(matchParent, autoSize(72)){
+                                    marginStart = autoSize(36)
+                                }
+
+                            }.lparams(matchParent, autoSize(72))
+
+                            itemView()
+
+                            linearLayout {
+                                val tjmdMarketList = GlobalDataCollection.instance?.getTjmdShowMarketSectionList()
+                                tjmdMarketList?.forEach { data ->
+                                    relativeLayout {
+                                        verticalLayout {
+                                            onThrottleFirstClick {
+                                                EventBus.getDefault().post(MainTabSelectMessageEvent(tjmdMarketList.indexOf(data).plus(1)))
+                                            }
+
+                                            imageView {
+                                                if (data.pictureurl != null && data.pictureurl.isNotEmpty()) {
+                                                    showImage(
+                                                        SPUtils.getInstance().getString(
+                                                            Constant.uploadUrl).replace("/upload","") + data.pictureurl.substring(1))
+                                                }
+                                            }.lparams(autoSize(72), autoSize(72)) {
+                                                gravity = Gravity.CENTER_HORIZONTAL
+                                            }
+
+                                            textView {
+                                                text = data.marketsectionname
+                                                textColorInt = R.color.black
+                                                textSizeAuto = 26
+                                            }.lparams(wrapContent, wrapContent) {
+                                                topMargin = autoSize(20)
+                                                gravity = Gravity.CENTER_HORIZONTAL
+                                            }
+                                        }.lparams(matchParent, matchParent)
+
+                                        textView {
+                                            visibility = View.GONE
+                                            textColorInt = R.color.p_global_write_color
+                                            textSizeAuto = 15
+                                            setPadding(
+                                                autoSize(10),
+                                                autoSize(6),
+                                                autoSize(10),
+                                                autoSize(6)
+                                            )
+                                            backgroundDrawable =
+                                                createRoundRectDrawable("#fe671a", 45)
+                                        }.lparams(wrapContent, wrapContent) {
+                                            marginStart = autoSize(130)
+                                        }
+                                    }.lparams(autoSize(225), matchParent)
+                                }
+                                //参考行情
+
+                                relativeLayout {
+                                    verticalLayout {
+                                        onThrottleFirstClick {
+                                            val intent = Intent()
+                                            intent.setClass(
+                                                context,
+                                                PerformanceInformationActivity::class.java
+                                            )
+                                            ActivityUtils.startActivity(intent)
+                                        }
+                                        imageView {
+                                            imageResource = R.mipmap.main_business_5
+                                        }.lparams(autoSize(72), autoSize(72)) {
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+
+                                        textView {
+                                            text = "履约管理"
+                                            textColorInt = R.color.black
+                                            textSizeAuto = 26
+                                        }.lparams(wrapContent, wrapContent) {
+                                            topMargin = autoSize(20)
+                                            gravity = Gravity.CENTER_HORIZONTAL
+                                        }
+                                    }.lparams(matchParent, matchParent)
+
+                                    textView {
+                                        visibility = View.GONE
+                                        textColorInt = R.color.p_global_write_color
+                                        textSizeAuto = 15
+                                        setPadding(
+                                            autoSize(10),
+                                            autoSize(6),
+                                            autoSize(10),
+                                            autoSize(6)
+                                        )
+                                        backgroundDrawable =
+                                            createRoundRectDrawable("#fe671a", 45)
+                                    }.lparams(wrapContent, wrapContent) {
+                                        marginStart = autoSize(130)
+                                    }
+                                }.lparams(autoSize(225), matchParent)
+
+                            }.lparams(matchParent, autoSize(140)) {
+                                topMargin = autoSize(40)
+                            }
+
+                            view {
+                                background = resources.getDrawable(R.color.rma_hint_line_color_eee)
+                            }.lparams(matchParent, autoSize(20))
+
+                            tabSegment {
+                                segment = this
+                                background = resources.getDrawable(R.color.white)
+                                addOnTabSelectedListener(object :
+                                    QMUITabSegment.OnTabSelectedListener {
+                                    override fun onDoubleTap(index: Int) {}
+                                    override fun onTabReselected(index: Int) {}
+                                    override fun onTabUnselected(index: Int) {}
+                                    override fun onTabSelected(index: Int) {
+                                        selectedTabIndex = index
+                                    }
+                                })
+                                mode = QMUITabSegment.MODE_FIXED
+                                setIndicator(
+                                    QMUITabIndicator(
+                                        QMUIDisplayHelper.dp2px(context, 2),
+                                        false,
+                                        true
+                                    )
+                                )
+                                setDefaultTextSize(
+                                    ConvertUtils.sp2px(16f),
+                                    ConvertUtils.sp2px(18f)
+                                )
+
+                            }.lparams(matchParent, autoSize(100))
+
+                            view {
+                                background = resources.getDrawable(R.color.main_hit_bg_color)
+                            }.lparams(matchParent, autoSize(1)) {
+                                marginStart = autoSize(32)
+                                marginEnd = autoSize(32)
+                            }
+                            viewPager {
+                                background = resources.getDrawable(R.color.white)
+                                viewPager = this
+                                adapter = pagerAdapter
+                            }.lparams(matchParent, matchParent)
+
+                            segment.setupWithViewPager(viewPager)
+                            segment.selectTab(selectedTabIndex)
+                        }
+                    }.lparams(matchParent, matchParent)
+                }
+            }
+        }.view
+    }
+}

+ 108 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/xhcp/XhcpHomeViewModel.kt

@@ -0,0 +1,108 @@
+package cn.muchinfo.rma.view.base.home.xhcp
+
+import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.BannerData
+import cn.muchinfo.rma.global.data.NoticeData
+import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
+import cn.muchinfo.rma.global.data.chart.HistoryDatas
+import cn.muchinfo.rma.global.database.DataBase
+import cn.muchinfo.rma.netManage.base.ResponseCallback
+import cn.muchinfo.rma.netManage.utils.MyOkHttpUtils
+import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.autoWidget.remove
+import cn.muchinfo.rma.view.base.BaseViewModel
+import cn.muchinfo.rma.view.base.app.BaseResult
+import cn.muchinfo.rma.view.base.app.Constant
+import cn.muchinfo.rma.view.base.home.tjmd.TjmdDemoData
+import com.blankj.utilcode.util.LogUtils
+import com.blankj.utilcode.util.SPUtils
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import mtp.polymer.com.autowidget.utils.TaskUiModel
+import okhttp3.Call
+import java.lang.Exception
+
+class XhcpHomeViewModel : BaseViewModel(){
+    /**
+     * 加载状态控制
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
+
+    val bannerList : MutableLiveData<List<BannerData>> = MutableLiveData()
+
+    /**
+     * 公告信息
+     */
+    val noticeDataList : MutableLiveData<List<NoticeData>> = MutableLiveData()
+
+
+    val sonItemList : MutableLiveData<List<GoodsInfo>> = MutableLiveData()
+
+
+    fun setOnItemClick() {
+
+    }
+
+    fun setDataList(tag: String,callback: (isCompleted: Boolean, err: Error?) -> Unit) {
+
+    }
+
+    /**
+     * 通知公告查询
+     */
+    fun queryNotice(){
+//        noticeDataList.postValue(arrayListOf(NoticeData(autoid = "1",title = "djahskdhakjshkahskjhakjsdhakjdshkjashdkjahdskjahsdjkad"),
+//            NoticeData(autoid = "2",title = "贺卡活动空间啊会死的恐惧啊会死的恐惧啊会死的恐惧啊还得看撒"),
+//            NoticeData(autoid = "3",title = "打卡是否看来佛 i 啊UFO i 啊 u 上帝啊 u 都 i 啊 u 山东 iu 阿斯哦独傲"),
+//            NoticeData(autoid = "4",title = "打卡大课间活动空间啊会多少空间啊会的恐惧啊会死肯德基哈开机速度和空间啊会的")))
+        val params = mutableMapOf<String, String>().apply {
+            put("loginID", GlobalDataCollection.instance?.loginRsp?.loginID.toString())
+            put("msgType","1")
+        }
+
+        MyApplication.getInstance()?.commonManager?.queryNotice(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                noticeDataList.postValue(respData)
+            }
+        }
+    }
+
+
+    /**
+     * 在请求之前先获取数据库存储的banner信息
+     */
+    fun getBanner(){
+        val params = mutableMapOf<String,String>()
+        params.put("imageType","1")
+        MyOkHttpUtils().query(URL = SPUtils.getInstance().getString(Constant.goCommonSearchUrl) + "/Common/QueryImageConfigs",
+            callback = object : ResponseCallback<BaseResult<List<BannerData>>>() {
+                override fun onResponse(response: BaseResult<List<BannerData>>?, id: Int) {
+                    getBannerUrlList(response?.data ?: arrayListOf())
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    LogUtils.eTag("asdasdadasa",e?.message)
+                }
+
+            },params = params,type = "1")
+    }
+
+    /**
+     * @param datalist List<BannerEntity>
+     */
+    fun getBannerUrlList(datalist : List<BannerData>){
+        val bannerUrlList = arrayListOf<String>()
+        datalist.forEach {
+            if (SPUtils.getInstance().getString(Constant.uploadUrl).contains("upload")){
+
+                bannerUrlList.add(SPUtils.getInstance().getString(Constant.uploadUrl).replace("/upload","") + it.imagepath.substring(1))
+            }else{
+                bannerUrlList.add(SPUtils.getInstance().getString(Constant.uploadUrl) + it.imagepath.substring(1))
+            }
+        }
+        bannerList.postValue(datalist.remove {
+            it.isshow == "0"
+        })
+    }
+}

+ 70 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/xhcp/XhcpInformationUI.kt

@@ -0,0 +1,70 @@
+package cn.muchinfo.rma.view.base.home.xhcp
+
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.RecyclerView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.NoticeData
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.lifecycle.getAppCompatActivity
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.home.AnnouncementViewHolder
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import org.jetbrains.anko._FrameLayout
+import org.jetbrains.anko.matchParent
+import org.jetbrains.anko.verticalLayout
+
+/**
+ * 公告
+ */
+class XhcpAnnouncementUI(
+    private val baseFragment: Fragment,
+    private val viewModule: XhcpHomeViewModel
+) {
+
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    lateinit var recyclerView: RecyclerView
+
+    private val announcementAdapter: BaseAdapter<NoticeData, AnnouncementViewHolder> =
+        BaseAdapter { _, _ -> AnnouncementViewHolder(baseFragment.getAppCompatActivity()) }
+
+    val root = _FrameLayout(baseFragment.context!!).apply {
+        verticalLayout {
+            viewModule.queryNotice()
+            statusLayout(contentBlock = {
+                statusLayout = this
+//                bindTaskStatus(viewModule.status)
+                swipeToLoadLayout {
+                    swipeToLayout = this
+                    setEnableRefresh(false)
+                    setEnableLoadMore(false)
+                    setEnableScrollContentWhenLoaded(false)
+                    setEnableLoadMoreWhenContentNotFull(false)
+                    recyclerView {
+                        background = resources.getDrawable(R.color.white)
+                        adapter = announcementAdapter
+
+                    }.lparams(matchParent, matchParent) {
+                        marginStart = autoSize(32)
+                        marginEnd = autoSize(20)
+                    }
+                }
+            }, emptyBlock = {
+                emptyView(hint = resources.getString(R.string.now_no_data))
+            }).lparams(matchParent, matchParent)
+            viewModule.noticeDataList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
+                    statusLayout.showEmpty()
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
+                        swipeToLayout.finishRefresh()
+                    }
+                    statusLayout.showSuccess()
+                    announcementAdapter.setNewData(it)
+                }
+
+            }
+        }
+    }
+}

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

@@ -131,6 +131,8 @@ class LoginActivity : BaseActivity<LoginViewModel>(), UserPopupWindow.OnClearAcc
                     imageResource = R.mipmap.yrdz_login_logo
                 }else if (BuildConfig.APPLICATION_ID == "cn.muchinfo.tjmd") {//天津麦顿
                     imageResource = R.mipmap.tjmd_login_logo
+                }else if (BuildConfig.APPLICATION_ID == "cn.muchinfo.xhcp") {// 新会陈皮
+                    imageResource = R.mipmap.rma_login_logo
                 }
             }.lparams(autoSize(480), autoSize(240)) {
                 gravity = Gravity.CENTER_HORIZONTAL
@@ -581,6 +583,50 @@ class LoginActivity : BaseActivity<LoginViewModel>(), UserPopupWindow.OnClearAcc
                                                     TaskUiModel.failed(InteractiveException(errorMessage = "市场板块查询失败"))
                                             }
                                         }
+                                    } else if (SPUtils.getInstance().getString(Constant.oem) == "xhcp"){ // 新会陈皮
+
+                                        val params2 = mutableMapOf<String,String>()
+                                        MyApplication.getInstance()?.accountManager?.queryTjmdMarketSection(params = params2){isSuccess, respData, error ->
+                                            if (isSuccess){
+                                                // 新会陈皮的市场板块信息暂存于数据中心
+                                                GlobalDataCollection.instance?.tjmdMarketSectionDataArrayList =
+                                                    respData?.toArrayList()
+
+                                                val params1 = mutableMapOf<String,String>().apply {
+                                                    put("marketid",GlobalDataCollection.instance?.getMaketidByTrademode(16).toString())
+                                                }
+                                                MyApplication.getInstance()?.chartManager?.queryDeliveryRelation(params = params1){isSuccess, respData, error ->
+                                                    if (isSuccess){
+                                                        GlobalDataCollection.instance?.setDeliveryRelationDataArrayList(respData?.toArrayList())
+                                                        viewModel.loadingDialogStatus.value =
+                                                            TaskUiModel.success(msg = "登录成功")
+                                                        goHomePage()
+                                                    }else{
+                                                        viewModel.loadingDialogStatus.value =
+                                                            TaskUiModel.failed(InteractiveException(errorMessage = "商品交割关系表请求失败"))
+                                                    }
+                                                }
+
+                                                val params = mutableMapOf<String,String>().apply {
+                                                    put("usertype",GlobalDataCollection.instance?.loginQueryData?.userInfo?.usertype?.toString() ?: "")
+                                                    put("marketids",GlobalDataCollection.instance?.getMaketidByTrademode(46)?.toString() ?: "")
+                                                }
+                                                MyApplication.getInstance()?.swapsManager?.queryQuoteGoodsList(params = params){isSuccess, respData, error ->
+                                                    if (isSuccess){
+                                                        GlobalDataCollection.instance?.setQuoteGoodsListDataArrayList(respData?.toArrayList())
+                                                        viewModel.loadingDialogStatus.value =
+                                                            TaskUiModel.success(msg = "登录成功")
+                                                        goHomePage()
+                                                    }else{
+                                                        viewModel.loadingDialogStatus.value =
+                                                            TaskUiModel.failed(InteractiveException(errorMessage = "掉期报价列表请求失败"))
+                                                    }
+                                                }
+                                            }else{
+                                                viewModel.loadingDialogStatus.value =
+                                                    TaskUiModel.failed(InteractiveException(errorMessage = "市场板块查询失败"))
+                                            }
+                                        }
                                     } else {
                                         viewModel.loadingDialogStatus.value =
                                             TaskUiModel.success(msg = "登录成功")

+ 3 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdMarketViewModel.kt

@@ -14,8 +14,10 @@ import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.protobuf.protoclasses.WarehouseTradeMI1
 import cn.muchinfo.rma.view.MyApplication
 import cn.muchinfo.rma.view.base.BaseViewModel
+import cn.muchinfo.rma.view.base.app.Constant
 import cn.muchinfo.rma.view.base.warehousereceipt.dialog.ListedData
 import com.blankj.utilcode.util.LogUtils
+import com.blankj.utilcode.util.SPUtils
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
 import mtp.polymer.com.autowidget.dialog.SelectData
@@ -574,7 +576,7 @@ class TjmdMarketViewModel : BaseViewModel(){
 
         MyApplication.getInstance()?.quoteManager?.queryOrderQuote(params = params){ isSuccess, respData, _ ->
             if (isSuccess){
-                if (respData.isNullOrEmpty().not()){
+                if (respData.isNullOrEmpty().not() && SPUtils.getInstance().getString(Constant.oem) != "xhcp"){
                     orderQuoteDataByListed.postValue(respData?.get(0))
                 }else{
                     noWRFactorTypeIdDataForListed.postValue(ListedData(DeliveryGoodsID = getDeliveryGoodsIDByWRStandardID(wrstandardid),DeliveryGoodsName = getDeliveryGoodsNameByWRStandardID(wrstandardid),WrFtWrstandard = getWrFtWrstandardByWRStandardID(wrstandardid),FactoryItemsList = WrStandardFactoryItemDataList.value ?: arrayListOf()))

+ 14 - 7
RMA/app/src/main/java/cn/muchinfo/rma/view/base/tjmd/TjmdWarehouseOneListedDialog.kt

@@ -204,15 +204,18 @@ class OneSellListedUI(
 
     //初始化设置履约保证金比例
     fun setMarginValue() {
-        if (type == "1") {//有仓单的卖履约保证金
-            marginValue =
+        try {
+            marginValue = if (type == "1") {//有仓单的卖履约保证金
                 GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue?.toDouble()
                     ?: 0.0
-        } else {//无仓单的卖履约保证金比例
-            marginValue =
+            } else {//无仓单的卖履约保证金比例
                 GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue2?.toDouble()
                     ?: 0.0
+            }
+        } catch(e: Exception) {
+            marginValue = 0.0
         }
+
     }
 
     @SuppressLint("NewApi", "SetTextI18n")
@@ -830,9 +833,13 @@ class OneBuyListedUI(
 
     //初始化设置履约保证金比例
     fun setMarginValue() {
-        marginValue =
-            GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
-                ?: 0.0
+        try {
+            marginValue =
+                GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
+                    ?: 0.0
+        } catch (e: Exception) {
+            marginValue = 0.0
+        }
     }
 
     @SuppressLint("SetTextI18n")

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

@@ -25,16 +25,14 @@ import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
 import cn.muchinfo.rma.view.autoWidget.view.MangeNumberEditText2
 import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.app.Constant
 import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
 import cn.muchinfo.rma.view.eventbus.EventConstent
 import cn.muchinfo.rma.view.eventbus.MessageEvent
 import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
-import com.blankj.utilcode.util.ActivityUtils
-import com.blankj.utilcode.util.ConvertUtils
-import com.blankj.utilcode.util.LogUtils
-import com.blankj.utilcode.util.ToastUtils
+import com.blankj.utilcode.util.*
 import com.github.aachartmodel.aainfographics.aachartcreator.*
 import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAScrollablePlotArea
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
@@ -50,7 +48,7 @@ import org.jetbrains.anko.*
 import org.jetbrains.anko.support.v4.viewPager
 
 /**
- * 华南顺通  买卖大厅
+ * 华南顺通 买卖大厅
  */
 @Suppress("DEPRECATION")
 class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
@@ -100,6 +98,14 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
         )
     }
 
+    // 商品详情
+    private val goodsDetailUI by lazy {
+        GoodsDetilUI(
+            this,
+            viewModel
+        )
+    }
+
     //viewpager的适配器
     private var newPagerAdapter: PagerAdapter? = null
 
@@ -119,6 +125,12 @@ class BusinessHallActivity : BaseActivity<BusinessHallViewModel>() {
         newTabsArray.add("买大厅")
         uiList.add(buyHallUI.root)
 
+        // 新会陈皮
+        if (SPUtils.getInstance().getString(Constant.oem) == "xhcp") {
+            newTabsArray.add("商品详情")
+            uiList.add(goodsDetailUI.root)
+        }
+
         newPagerAdapter = object : PagerAdapter() {
 
             override fun getPageTitle(position: Int): CharSequence? = newTabsArray[position]
@@ -2849,5 +2861,26 @@ class BuyHallUI(
             }
         }
     }
+}
+
+/**
+ * 商品详情
+ * @property activity AppCompatActivity
+ * @property viewModel BusinessHallViewModel
+ * @constructor
+ */
+class GoodsDetilUI(
+    private val activity: AppCompatActivity,
+    private val viewModel: BusinessHallViewModel
+) {
+
+    // 下拉刷新
+    private lateinit var swipeToLayout: SwipeToLoadLayout
+    private lateinit var statusLayout: StatusLayout
+
+    val root = _FrameLayout(activity).apply {
+        verticalLayout {
 
+        }
+    }
 }

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

@@ -562,6 +562,23 @@ class BusinessHallViewModel : BaseViewModel(){
         addSubscriptQuote(tag = tag, goodsCodes = setOf(goodsCodes))
     }
 
+    /**
+     * 查询现货品种详情
+     * @param wrstandardid String
+     */
+    fun queryWrStandardDetails(deliverygoodsid: String) {
+        val params = mutableMapOf<String, String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("usertype",GlobalDataCollection.instance?.userAccountData?.usertype?.toString() ?: "")
+            put("deliverygoodsid", deliverygoodsid)
+        }
+        MyApplication.getInstance()?.commodityManager?.queryDeliveryGoodsDetail(params = params) { isSuccess, respData, _ ->
+            if (isSuccess) {
+//                wrStandardDetails.postValue(respData?.get(0))
+//                initSpotGoodsActivity(respData?.get(0) ?: WrStandardDetail())
+            }
+        }
+    }
 
     /**
      * 订阅行情

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

@@ -205,14 +205,16 @@ class OneSellListedUI(
 
     //初始化设置履约保证金比例
     fun setMarginValue() {
-        if (type == "1") {//有仓单的卖履约保证金
-            marginValue =
+        try {
+            marginValue = if (type == "1") {//有仓单的卖履约保证金
                 GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue?.toDouble()
                     ?: 0.0
-        } else {//无仓单的卖履约保证金比例
-            marginValue =
+            } else {//无仓单的卖履约保证金比例
                 GlobalDataCollection.instance?.marketTradeConfigData?.sellmarginvalue2?.toDouble()
                     ?: 0.0
+            }
+        } catch (e: Exception) {
+            marginValue = 0.0
         }
     }
 
@@ -787,9 +789,13 @@ class OneBuyListedUI(
 
     //初始化设置履约保证金比例
     fun setMarginValue() {
-        marginValue1 =
-            GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
-                ?: 0.0
+        try {
+            marginValue1 =
+                GlobalDataCollection.instance?.marketTradeConfigData?.buymarginvalue?.toDouble()
+                    ?: 0.0
+        } catch (e: Exception) {
+            marginValue1 = 0.0
+        }
     }
 
     @SuppressLint("SetTextI18n")