Kaynağa Gözat

风险管理11月2日提交代码-liu.bolan-天津麦顿/企业风管6期开发

Liu.bolan 4 yıl önce
ebeveyn
işleme
268e9f5049

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

@@ -498,13 +498,12 @@ class NewAddSpotGoodsActivity : BaseActivity<NewAddSpotGoodsViewModel>() {
                 wrsconverdetails.middlegoodsid = it.middleGoodsId.toLong()
                 wrsconverdetails.unitid = it.enumdicnameid.toLong()
                 wrsconverdetails.convertratio = it.value.toDouble()
+                wrsconverdetails.costratio = it.costWeight.toDouble()
                 wrsconverdetailsList.add(wrsconverdetails.build())
             }
             spotGoodsData.addAllWrsconvertdetails(wrsconverdetailsList)
-
             wrstandGoodsList.add(spotGoodsData.build())
         }
-
         return wrstandGoodsList
     }
 

+ 3 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reviewset/ReviewSettingActivity.kt

@@ -534,7 +534,9 @@ class ReviewSettingActivity : BaseActivity<ReviewSettingViewModel>(){
                             }.lparams(autoSize(100), autoSize(100)) {
                                 marginStart = autoSize(36)
                             }
-                        }.lparams(matchParent, autoSize(100))
+                        }.lparams(matchParent, autoSize(100)){
+                            bottomMargin = autoSize(150)
+                        }
                     }
                 }
 

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

@@ -32,7 +32,7 @@ class AboutActivity : BaseActivity<AboutViewModel>(){
                 imageResource = R.mipmap.tjmd_about_icon
             }.lparams(autoSize(480), autoSize(240)) {
                 gravity = Gravity.CENTER_HORIZONTAL
-                topMargin = -autoSize(150)
+                topMargin = autoSize(150)
             }
 
             textView {

+ 44 - 45
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContentAdapter.java

@@ -62,8 +62,7 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
         this.onContentScrollListener = onContentScrollListener;
     }
 
-
-    public ContentAdapter(Context context, String listType,String type) {
+    public ContentAdapter(Context context, String listType, String type) {
         this.context = context;
         this.listType = listType;
         this.type = type;
@@ -74,18 +73,18 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
         notifyDataSetChanged();
     }
 
-    private void setOnItemClick(int position){
+    private void setOnItemClick(int position) {
         List<ContractData> newDataList = new ArrayList<>();
-        for (int i = 0;i < datas.size();i++){
-            if (position == i){
+        for (int i = 0; i < datas.size(); i++) {
+            if (position == i) {
                 ContractData data1 = datas.get(i);
-                if (data1.isOnClick() == 0){
+                if (data1.isOnClick() == 0) {
                     data1.setOnClick(1);
-                }else {
+                } else {
                     data1.setOnClick(0);
                 }
                 newDataList.add(data1);
-            }else {
+            } else {
                 ContractData newData = datas.get(i);
                 newData.setOnClick(0);
                 newDataList.add(newData);
@@ -129,85 +128,85 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
         }
         if (listType.equals("1")) {//待点价列表
             itemViewHolder.contract_hedges.setVisibility(View.VISIBLE);
-            if (type.equals("1")){//采购
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_purchase","client_spots_purchase_point","client_spots_purchase_point_point")){
+            if (type.equals("1")) {//采购
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_purchase", "client_spots_purchase_point", "client_spots_purchase_point_point")) {
                     itemViewHolder.midpoints_registration.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.midpoints_registration.setVisibility(View.GONE);
                 }
 
-            }else {//销售
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_sales","client_spots_sales_point","client_spots_sales_point_point")){
+            } else {//销售
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_sales", "client_spots_sales_point", "client_spots_sales_point_point")) {
                     itemViewHolder.midpoints_registration.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.midpoints_registration.setVisibility(View.GONE);
                 }
             }
 
         } else if (listType.equals("2")) {//履约结算
-            if (type.equals("1")){//采购
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_purchase","client_spots_purchase_settle","client_spots_purchase_settle_inwarehouse")){//出入库登记
+            if (type.equals("1")) {//采购
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_purchase", "client_spots_purchase_settle", "client_spots_purchase_settle_inwarehouse")) {//出入库登记
                     itemViewHolder.warehouse_register.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.warehouse_register.setVisibility(View.GONE);
                 }
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_purchase","client_spots_purchase_settle","client_spots_purchase_settle_invoice")){//发票登记
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_purchase", "client_spots_purchase_settle", "client_spots_purchase_settle_invoice")) {//发票登记
                     itemViewHolder.invoice_register.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.invoice_register.setVisibility(View.GONE);
                 }
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_purchase","client_spots_purchase_settle","client_spots_purchase_settle_money")){//发票登记//款项登记
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_purchase", "client_spots_purchase_settle", "client_spots_purchase_settle_money")) {//发票登记//款项登记
                     itemViewHolder.payment_registration.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.payment_registration.setVisibility(View.GONE);
                 }
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_purchase","client_spots_purchase_settle","client_spots_purchase_settle_delvery")){//发票登记//结算登记
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_purchase", "client_spots_purchase_settle", "client_spots_purchase_settle_delvery")) {//发票登记//结算登记
                     itemViewHolder.settlement_of_registration.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.settlement_of_registration.setVisibility(View.GONE);
                 }
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_purchase","client_spots_purchase_settle","client_spots_purchase_settle_finish")){//完结合同
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_purchase", "client_spots_purchase_settle", "client_spots_purchase_settle_finish")) {//完结合同
                     itemViewHolder.contract_completion.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.contract_completion.setVisibility(View.GONE);
                 }
-            }else {//销售
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_sales","client_spots_sales_settle","client_spots_sales_settle_outwarehouse")){//出入库登记
+            } else {//销售
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_sales", "client_spots_sales_settle", "client_spots_sales_settle_outwarehouse")) {//出入库登记
                     //出入库登记
                     itemViewHolder.warehouse_register.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.warehouse_register.setVisibility(View.GONE);
                 }
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_sales","client_spots_sales_settle","client_spots_sales_settle_invoice")){//出入库登记
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_sales", "client_spots_sales_settle", "client_spots_sales_settle_invoice")) {//出入库登记
                     //发票登记
                     itemViewHolder.invoice_register.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.invoice_register.setVisibility(View.GONE);
                 }
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_sales","client_spots_sales_settle","client_spots_sales_settle_money")){//出入库登记
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_sales", "client_spots_sales_settle", "client_spots_sales_settle_money")) {//出入库登记
                     //款项登记
                     itemViewHolder.payment_registration.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.payment_registration.setVisibility(View.GONE);
                 }
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_sales","client_spots_sales_settle","client_spots_sales_settle_delivery")){//出入库登记
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_sales", "client_spots_sales_settle", "client_spots_sales_settle_delivery")) {//出入库登记
                     //结算登记
                     itemViewHolder.settlement_of_registration.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.settlement_of_registration.setVisibility(View.GONE);
                 }
                 //完结合同
-                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots","client_spots_sales","client_spots_sales_settle","client_spots_sales_settle_finish")){//完结合同
+                if (GlobalDataCollection.Companion.getInstance().getFourLevelMenu("client_spots", "client_spots_sales", "client_spots_sales_settle", "client_spots_sales_settle_finish")) {//完结合同
                     itemViewHolder.contract_completion.setVisibility(View.VISIBLE);
-                }else {
+                } else {
                     itemViewHolder.contract_completion.setVisibility(View.GONE);
                 }
             }
 
         }
-        if (type.equals("1")){
+        if (type.equals("1")) {
             itemViewHolder.warehouse_register.setText("入库登记");
-        }else {
+        } else {
             itemViewHolder.warehouse_register.setText("出库登记");
         }
         itemViewHolder.all_click_View.setOnClickListener(new View.OnClickListener() {
@@ -264,25 +263,25 @@ public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ItemView
         });
         itemViewHolder.contract_completion.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("type","4");
-            intent.putExtra("data",datas.get(i));
+            intent.putExtra("type", "4");
+            intent.putExtra("data", datas.get(i));
             intent.setClass(context, ContractDetailsActivity.class);
             ActivityUtils.startActivity(intent);
         });
         //套保交易
         itemViewHolder.contract_hedges.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("goodsId",data.getGoodsid());
-            intent.putExtra("outGoodsCode",data.getGoodscode());
-            intent.putExtra("contractData",data);
+            intent.putExtra("goodsId", data.getGoodsid());
+            intent.putExtra("outGoodsCode", data.getGoodscode());
+            intent.putExtra("contractData", data);
             intent.setClass(context, GoodsTradeActivity.class);
             ActivityUtils.startActivity(intent);
         });
         itemViewHolder.details.setOnClickListener(view -> {
             Intent intent = new Intent();
             intent.putExtra("data", datas.get(i));
-            intent.putExtra("isFrom","1");
-            intent.putExtra("type",this.type);
+            intent.putExtra("isFrom", "1");
+            intent.putExtra("type", this.type);
             intent.setClass(context, ContractDetailActivity.class);
             context.startActivity(intent);
         });

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

@@ -915,76 +915,73 @@ class AssociatedRecordUI(
     private val activity: AppCompatActivity,
     private val viewModel: ProcurementViewModel,
     private val data: ContractData
-){
+) : RelationalRecodeAdapter.OnContentScrollListener{
 
     private lateinit var swipeToLayout: SwipeToLoadLayout
     private lateinit var statusLayout: StatusLayout
+    lateinit var horScrollview: CustomHorizontalScrollView
+    lateinit var recyclerView: RecyclerView
 
-    private val associatedRecordAdapter: BaseAdapter<PaTradeLinkDetailData, AssociatedRecordViewHolder> =
-        BaseAdapter { _, _ -> AssociatedRecordViewHolder(activity) }
+    val topAdapter by lazy {
+        TopTabAdpater(activity)
+    }
 
-    init {
-        viewModel.queryPaTradeLinkDetail()
+    val exposureContentAdapter by lazy {
+        RelationalRecodeAdapter(activity)
     }
 
     val root = _FrameLayout(activity).apply {
         verticalLayout {
+            viewModel.queryPaTradeLinkDetail(
+            )
+            exposureContentAdapter.setOnContentScrollListener(this@AssociatedRecordUI)
 
             linearLayout {
-                verticalLayout {
-                    gravity = Gravity.CENTER_HORIZONTAL
-                    textView {
-                        text = "关联时间"
-                        textSizeAuto = 24
-                        textColorInt = R.color.hint_text_color
-                    }.lparams(wrapContent, wrapContent){
-                        topMargin = autoSize(20)
-                    }
-                    textView {
-                        text = "成交时间"
+                linearLayout {
+                    gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
+                    textView {//头部右侧数据
+                        viewModel.applyRecordTitle.bindOptional(context) {
+                            text = it?.get(0)?.columntitle?.replace("\\n", "\n") ?: ""
+                        }
+                        text = "关联时间" + "\n" + "成交时间"
+                        textColorStr = "#AAAAAA"
                         textSizeAuto = 24
-                        textColorInt = R.color.hint_text_color
-                    }.lparams(wrapContent, wrapContent){
-                        topMargin = autoSize(10)
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(30)
                     }
-                }.lparams(0, autoSize(100),1.5f)
-
-                verticalLayout {
-                    gravity = Gravity.CENTER
-                    textView {
-                        text = "业务类型"
-                        textSizeAuto = 24
-                        textColorInt = R.color.hint_text_color
-                    }.lparams(wrapContent, wrapContent)
-                }.lparams(0, autoSize(100),1f)
+                }.lparams(autoSize(250), autoSize(100))
 
-                verticalLayout {
-                    gravity = Gravity.CENTER
-                    textView {
-                        text = "订单类型"
-                        textSizeAuto = 24
-                        textColorInt = R.color.hint_text_color
-                    }.lparams(wrapContent, wrapContent)
-                }.lparams(0, autoSize(100),1f)
-
-                verticalLayout {
-                    gravity = Gravity.CENTER_HORIZONTAL
-                    textView {
-                        text = "成交价格"
-                        textSizeAuto = 24
-                        textColorInt = R.color.hint_text_color
-                    }.lparams(wrapContent, wrapContent){
-                        topMargin = autoSize(20)
+                inflateLayout<CustomHorizontalScrollView>(R.layout.scrollview) {
+                    horScrollview = this
+                    /**
+                     * 用来同步内容列表的item左右滑动
+                     */
+                    setOnCustomScrollChangeListener { listener, scrollX, scrollY, oldScrollX, oldScrollY ->
+                        exposureContentAdapter.offestX = scrollX
+                        val viewHolderCacheList: List<RelationalRecodeAdapter.ItemViewHolder> =
+                            exposureContentAdapter.viewHolderCacheList
+                        if (null != viewHolderCacheList) {
+                            val size = viewHolderCacheList.size
+                            for (i in 0 until size) {
+                                viewHolderCacheList[i].exposure_horItemScrollview.scrollTo(
+                                    scrollX,
+                                    0
+                                )
+                            }
+                        }
                     }
-                    textView {
-                        text = "关联数量"
-                        textSizeAuto = 24
-                        textColorInt = R.color.hint_text_color
-                    }.lparams(wrapContent, wrapContent){
-                        topMargin = autoSize(10)
+                    relativeLayout {
+                        recyclerView {//头部右侧数据
+                            val linearLayoutManager = LinearLayoutManager(context)
+                            linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
+                            layoutManager = linearLayoutManager
+                            background = resources.getDrawable(R.color.white)
+                            adapter = topAdapter
+                        }
+                        val titleStringList = arrayListOf("业务类型","订单类型","套保品种" + "\n" + "现货关联数量","关联方式" + "\n" + "关联状态")
+                        topAdapter.setDatas(titleStringList)
                     }
-                }.lparams(0, autoSize(100),1f)
-
+                }.lparams(matchParent, matchParent)
             }.lparams(matchParent, autoSize(100))
 
             statusLayout(contentBlock = {
@@ -995,20 +992,41 @@ class AssociatedRecordUI(
                     setEnableRefresh(true)
                     setEnableLoadMore(false)
                     setOnRefreshListener {
-                        viewModel.queryChangeLog(RelatedId = data.spotcontractid ?: "")
+                        /**
+                         * 下拉刷新
+                         */
+                        viewModel.queryPaTradeLinkDetail()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
+
                     recyclerView {
                         background = resources.getDrawable(R.color.white)
-                        adapter = associatedRecordAdapter
-                    }.lparams(matchParent, matchParent)
+                        adapter = exposureContentAdapter
+                        addOnScrollListener(object : RecyclerView.OnScrollListener() {
+                            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+                                super.onScrolled(recyclerView, dx, dy)
+                                val viewHolderCacheList: List<RelationalRecodeAdapter.ItemViewHolder> =
+                                    exposureContentAdapter.viewHolderCacheList
+                                if (null != viewHolderCacheList) {
+                                    val size = viewHolderCacheList.size
+                                    for (i in 0 until size) {
+                                        viewHolderCacheList[i].exposure_horItemScrollview.scrollTo(
+                                            exposureContentAdapter.getOffestX(),
+                                            0
+                                        )
+                                    }
+                                }
+                            }
+                        })
+                    }
                 }
             }, emptyBlock = {
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
 
             viewModel.associatedRecordDataList.bindOptional(context) {
+
                 if (it?.isEmpty() == true || it?.size == 0) {
                     statusLayout.showEmpty()
                 } else {
@@ -1016,12 +1034,17 @@ class AssociatedRecordUI(
                         swipeToLayout.finishRefresh()
                     }
                     statusLayout.showSuccess()
-                    associatedRecordAdapter.setNewData(it)
+                    exposureContentAdapter.setDatas(it)
                 }
             }
-
         }
     }
+
+    override fun onScroll(event: MotionEvent?) {
+        //处理单个item滚动时,顶部tab需要联动
+        if (null != horScrollview) horScrollview.onTouchEvent(event)
+
+    }
 }
 
 /**

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

@@ -106,12 +106,29 @@ class ProcurementViewModel : BaseViewModel() {
         }
         MyApplication.getInstance()?.spotManager?.queryPaTradeLinkDetail(params = params){isSuccess, respData, error ->
             if (isSuccess){
-                associatedRecordDataList.postValue(respData)
+                associatedRecordDataList.postValue(resetAssociatedRecordDataList(respData ?: arrayListOf()))
             }
         }
     }
 
     /**
+     * 关联记录的数组重组
+     */
+    fun resetAssociatedRecordDataList(respData : List<PaTradeLinkDetailData>) : List<PaTradeLinkDetailData>{
+        val newList = arrayListOf<PaTradeLinkDetailData>()
+        respData.forEach {
+            val newRightData = arrayListOf<String>()
+            newRightData.add(ViewEnumUtils.gethedgeflagStatus(it.hedgeflag ?: ""))//业务类型
+            newRightData.add(ViewEnumUtils.getDealOrderType(buyOrSell = it.buyorsell ?: "",channelbuildtype = it.channelbuildtype ?: ""))//订单类型
+            newRightData.add(it.middlegoodsid + "\n" + NumberUtils.roundNum(it.relatedqty,2))//'套保品种/\n现货关联数量 '
+            newRightData.add(if (it.relatedmode == "1"){"自动关联"}else if (it.relatedmode == "2"){"手动关联"}else{"解绑关联"} + "\n" + if (it.linkstatus == "1"){"成功"}else{"失败"})//'关联方式/\n关联状态 '
+            val newData = it.copy(rightData = newRightData)
+            newList.add(newData)
+        }
+        return newList
+    }
+
+    /**
      * 查询采购列表头部数据
      * @param tableKey String
      */

+ 163 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/detailsviewholder/RelationalRecodeAdapter.java

@@ -0,0 +1,163 @@
+package cn.muchinfo.rma.view.base.procurement.detailsviewholder;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.muchinfo.rma.R;
+import cn.muchinfo.rma.global.ViewEnumUtils;
+import cn.muchinfo.rma.global.data.AreaStockApplyData;
+import cn.muchinfo.rma.global.data.PaTradeLinkDetailData;
+import cn.muchinfo.rma.view.autoWidget.CustomHorizontalScrollView;
+import cn.muchinfo.rma.view.base.procurement.RightScrollAdapter;
+
+/**
+ * 用于合同详情下的关联记录的列表adapter
+ */
+public class RelationalRecodeAdapter extends RecyclerView.Adapter<RelationalRecodeAdapter.ItemViewHolder> {
+
+    private Context context;
+    private List<PaTradeLinkDetailData> datas;
+    private int index = -1;
+    private int position = -1;
+    private List<ItemViewHolder> mViewHolderList = new ArrayList<>();
+    public int offestX = 0;
+    private OnContentScrollListener onContentScrollListener;
+
+
+    public interface OnContentScrollListener {
+        void onScroll(MotionEvent event);
+    }
+
+    public void setOnContentScrollListener(OnContentScrollListener onContentScrollListener) {
+        this.onContentScrollListener = onContentScrollListener;
+    }
+
+    public RelationalRecodeAdapter(Context context) {
+        this.context = context;
+    }
+
+    public void setDatas(List<PaTradeLinkDetailData> datas) {
+        this.datas = datas;
+        notifyDataSetChanged();
+    }
+
+    private void setPosition(int position){
+        if (this.position == position) {
+            this.position = -1;
+            notifyItemChanged(index);
+        } else {
+            this.position = position;
+            notifyItemChanged(position);
+        }
+    }
+
+    @NonNull
+    @Override
+    public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+        View view = LayoutInflater.from(context).inflate(R.layout.layout_item_inventory_current, viewGroup, false);
+        return new ItemViewHolder(view);
+    }
+
+    @SuppressLint("SetTextI18n")
+    @Override
+    public void onBindViewHolder(@NonNull final ItemViewHolder itemViewHolder, int i) {
+        this.index = i;
+        PaTradeLinkDetailData data = datas.get(i);
+        itemViewHolder.exposure_tvLeftTitle.setText(ViewEnumUtils.INSTANCE.isShowTimeString(datas.get(i).getCreatetime(),"MM/dd HH:mm"));
+        itemViewHolder.exposure_tv_left_bottom_title.setText(ViewEnumUtils.INSTANCE.isShowTimeString(datas.get(i).getTradetime(),"MM/dd HH:mm"));
+        //右边滑动部分
+        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
+        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
+        itemViewHolder.exposure_rvItemRight.setLayoutManager(linearLayoutManager);
+        itemViewHolder.exposure_rvItemRight.setHasFixedSize(true);
+        RightScrollAdapter rightScrollAdapter = new RightScrollAdapter(context);
+        rightScrollAdapter.setDatas(datas.get(i).getRightData());
+        itemViewHolder.exposure_rvItemRight.setAdapter(rightScrollAdapter);
+        //缓存当前holder
+        if (!mViewHolderList.contains(itemViewHolder)) {
+            mViewHolderList.add(itemViewHolder);
+        }
+        if (i == this.position){
+            itemViewHolder.exposure_roots_view.setBackgroundColor(context.getResources().getColor(R.color.rma_list_select_color));
+            itemViewHolder.exposure_allView.setVisibility(View.VISIBLE);
+        }else {
+            itemViewHolder.exposure_roots_view.setBackgroundColor(context.getResources().getColor(R.color.white));
+            itemViewHolder.exposure_allView.setVisibility(View.GONE);
+        }
+
+        itemViewHolder.exposure_horItemScrollview.setEventListener(event -> {
+            if (null != onContentScrollListener) onContentScrollListener.onScroll(event);
+        });
+        //由于viewHolder的缓存,在1级缓存取出来是2个viewholder,并且不会被重新赋值,所以这里需要处理缓存的viewholder的位移
+        itemViewHolder.exposure_horItemScrollview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+            @Override
+            public void onGlobalLayout() {
+                if (!itemViewHolder.isLayoutFinish()) {
+                    itemViewHolder.exposure_horItemScrollview.scrollTo(offestX, 0);
+                    itemViewHolder.setLayoutFinish(true);
+                }
+            }
+        });
+    }
+
+    @Override
+    public int getItemCount() {
+        return null == datas ? 0 : datas.size();
+    }
+
+    public List<ItemViewHolder> getViewHolderCacheList() {
+        return mViewHolderList;
+    }
+
+    public int getOffestX() {
+        return offestX;
+    }
+
+    public static class ItemViewHolder extends RecyclerView.ViewHolder {
+        LinearLayout exposure_roots_view;//根部布局
+        TextView futures_subsidiary;//
+        TextView place_the_order;//
+        LinearLayout exposure_allView;//隐藏的底部操作空间
+        LinearLayout exposure_all_click_View;//item左侧点击控件
+        TextView exposure_tvLeftTitle;//左边
+        TextView exposure_tv_left_bottom_title;//合同编号
+        RecyclerView exposure_rvItemRight;//右方的列表
+        public CustomHorizontalScrollView exposure_horItemScrollview;//右方的滑动控件
+        private boolean isLayoutFinish;//自定义字段,用于标记layout
+
+        public boolean isLayoutFinish() {
+            return isLayoutFinish;
+        }
+
+        public void setLayoutFinish(boolean layoutFinish) {
+            isLayoutFinish = layoutFinish;
+        }
+
+        public ItemViewHolder(@NonNull View itemView) {
+            super(itemView);
+            futures_subsidiary = itemView.findViewById(R.id.futures_subsidiary);
+            place_the_order = itemView.findViewById(R.id.place_the_order);
+            exposure_tvLeftTitle = itemView.findViewById(R.id.tv_left_title);
+            exposure_rvItemRight = itemView.findViewById(R.id.exposure_rv_item_right);
+            exposure_horItemScrollview = itemView.findViewById(R.id.exposure_hor_item_scrollview);
+            exposure_allView = itemView.findViewById(R.id.exposure_all_view);
+            exposure_tv_left_bottom_title = itemView.findViewById(R.id.tv_left_bottom_title);
+            exposure_all_click_View = itemView.findViewById(R.id.all_click_View);
+            exposure_roots_view = itemView.findViewById(R.id.exposure_roots_view);
+        }
+    }
+}

+ 0 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/spot/associated/PeriodAssociatedFragment.kt

@@ -658,8 +658,6 @@ class RelationalRecordUI(
     val root = _FrameLayout(activity).apply {
         viewModel.queryRelationRecordTitle(tableKey = Constant.table_mobile_spotfuturerelate_logs)
         verticalLayout {
-
-
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 linearLayout {

+ 14 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/spot/associated/PeriodAssociatedViewModel.kt

@@ -8,9 +8,11 @@ import cn.muchinfo.rma.global.data.PaTradeLinkData
 import cn.muchinfo.rma.global.data.PaTradeLinkDetailData
 import cn.muchinfo.rma.global.isBlankString
 import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.autoWidget.remove
 import cn.muchinfo.rma.view.autoWidget.toArrayList
 import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
 import cn.muchinfo.rma.view.base.BaseViewModel
+import com.blankj.utilcode.util.TimeUtils
 
 /**
  * 期现关联fragmentviewmodel
@@ -155,7 +157,11 @@ class PeriodAssociatedViewModel : BaseViewModel(){
         }
         MyApplication.getInstance()?.spotManager?.queryPaTradeLink(params = params){ isSuccess, respData, error ->
             if (isSuccess){
-                periodAssociationDataList.postValue(resetPeriodDocumentsDataList(respData ?: arrayListOf()))
+                val newDataList = respData?.toArrayList()
+                newDataList?.sortWith(Comparator { t1, t2 ->
+                    (TimeUtils.string2Millis(t2.tradetime) - TimeUtils.string2Millis(t1.tradetime)).toInt()
+                })
+                periodAssociationDataList.postValue(resetPeriodDocumentsDataList(newDataList ?: arrayListOf()))
             }
         }
     }
@@ -251,7 +257,11 @@ class PeriodAssociatedViewModel : BaseViewModel(){
         }
         MyApplication.getInstance()?.spotManager?.queryPaTradeLinkDetail(params = params){ isSuccess, respData, error ->
             if (isSuccess){
-                relationRecordDataList.postValue(resetRelationalRecordDataList(respData ?: arrayListOf()))
+                val newDataList = respData?.toArrayList()
+                newDataList?.sortWith(Comparator { t1, t2 ->
+                    (TimeUtils.string2Millis(t2.createtime) - TimeUtils.string2Millis(t1.createtime)).toInt()
+                })
+                relationRecordDataList.postValue(resetRelationalRecordDataList(newDataList ?: arrayListOf()))
             }
         }
     }
@@ -264,7 +274,7 @@ class PeriodAssociatedViewModel : BaseViewModel(){
         val newList = arrayListOf<PaTradeLinkDetailData>()
         respData.forEach {
             val newRightData = arrayListOf<String>()
-            newRightData.add(it.relatedqty?.isBlankString() ?: "--")//'关联数量
+            newRightData.add(it.relatedlot?.isBlankString() ?: "--")//'关联数量
             newRightData.add(it.contractno?.isBlankString() ?: "--")//现货编号
             newRightData.add(it.tradeid?.isBlankString() ?: "--")//期货订单号
             newRightData.add(
@@ -275,7 +285,7 @@ class PeriodAssociatedViewModel : BaseViewModel(){
                 it.taname?.isBlankString() ?: "--"
             )// 期货账户
             newRightData.add(
-                it.goodsname?.isBlankString() ?: "--" + "\n" + it.goodscode
+                it.goodsname?.isBlankString() + "\n" + it.goodscode
             )// 合约名称/\n代码
             newRightData.add(
                 if (it.buyorsell == "0"){

+ 0 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/spot/associated/perioddocuments/BusinessAssociationsViewModel.kt

@@ -28,7 +28,6 @@ class BusinessAssociationsViewModel : BaseViewModel(){
     //缓存的用于提交的现货订单数据
     val associationsSpotCashDataList : MutableLiveData<List<SCMiddleGoodsData>> = MutableLiveData()
 
-
     /**
      * 查询现货订单
      * @param data PaTradeLinkData

+ 1 - 5
RMA/app/src/main/java/cn/muchinfo/rma/view/base/spot/associated/perioddocuments/FillSingleConnectionViewModel.kt

@@ -66,11 +66,7 @@ class FillSingleConnectionViewModel : BaseViewModel(){
     fun querySCMiddleGoods(buyorsell : String,goodsgroupid : String, contractno : String = "", customername : String = "", wrstandardname : String = "",biztype : String = ""){
         val params = mutableMapOf<String,String>().apply {
             put("userid",GlobalDataCollection.instance?.loginRsp?.userID.toString())
-            if (buyorsell == "0"){
-                put("buyorsell","1")
-            }else{
-                put("buyorsell","0")
-            }
+            put("buyorsell",buyorsell)
             put("goodsgroupid",goodsgroupid)
             if (biztype == "4"){//套期
                 put("biztype","1")

+ 1 - 1
RMA/app/src/main/res/layout/layout_item_content.xml

@@ -155,7 +155,7 @@
             android:textSize="12sp"
             android:layout_width="60dp"
             android:layout_height="25dp"
-            android:text="套保对冲"
+            android:text="期货交易"
             android:textColor="@color/rma_blue_color"
             android:background="@drawable/rma_item_click_bg"/>