瀏覽代碼

暂存列表调整

RaoMeng 5 年之前
父節點
當前提交
60f0dea8bb

+ 98 - 7
app/src/main/java/com/uas/pda_smart_sa/adapter/StorageOutTemporaryMainAdapter.java

@@ -1,24 +1,115 @@
 package com.uas.pda_smart_sa.adapter;
 
+import android.content.Context;
 import android.support.annotation.Nullable;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
 import com.uas.pda_smart_sa.R;
+import com.uas.pda_smart_sa.bean.JLTStorageModelBean;
 import com.uas.pda_smart_sa.bean.StockBarcodeItemBean;
+import com.uas.pda_smart_sa.bean.StorageTemporaryBean;
+import com.uas.pda_smart_sa.util.CommonUtil;
 
 import java.util.List;
 
-public class StorageOutTemporaryMainAdapter extends BaseQuickAdapter<StockBarcodeItemBean, BaseViewHolder> {
+public class StorageOutTemporaryMainAdapter
+        extends SecondaryListAdapter<StorageOutTemporaryMainAdapter.GroupItemViewHolder, StorageOutTemporaryMainAdapter.SubItemViewHolder> {
+    private Context mContext;
+    private OnItemClickListener mOnItemClickListener;
+    private List<SecondaryListBean<String, StorageTemporaryBean>> mDatas;
 
-    public StorageOutTemporaryMainAdapter(@Nullable List<StockBarcodeItemBean> data) {
-        super(R.layout.item_storage_out_temporary_main, data);
+    public StorageOutTemporaryMainAdapter(Context context) {
+        mContext = context;
+    }
+
+    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+        mOnItemClickListener = onItemClickListener;
+    }
+
+    public List<SecondaryListBean<String, StorageTemporaryBean>> getDatas() {
+        return mDatas;
+    }
+
+    public void setDatas(List<SecondaryListBean<String, StorageTemporaryBean>> datas) {
+        mDatas = datas;
+        initSecondaryList(mDatas, true);
+    }
+
+    @Override
+    public RecyclerView.ViewHolder onCreateGroupViewHolder(ViewGroup parent) {
+        View groupView = LayoutInflater.from(mContext).inflate(R.layout.item_temporary_main_group, parent, false);
+        return new GroupItemViewHolder(groupView);
+    }
+
+    @Override
+    public RecyclerView.ViewHolder onCreateSubViewHolder(ViewGroup parent) {
+        View subView = LayoutInflater.from(mContext).inflate(R.layout.item_storage_out_temporary_main, parent, false);
+        return new SubItemViewHolder(subView);
+    }
+
+    @Override
+    public void onBindGroupViewHolder(RecyclerView.ViewHolder holder, int groupItemIndex) {
+        ((GroupItemViewHolder) holder).numTextView.setText(mDatas.get(groupItemIndex).getGroupItem());
+    }
+
+    @Override
+    public void onBindSubViewHolder(RecyclerView.ViewHolder holder, int groupItemIndex, int subItemIndex) {
+        StorageTemporaryBean storageTemporaryBean = mDatas.get(groupItemIndex).getSubItems().get(subItemIndex);
+        if (storageTemporaryBean != null) {
+            ((SubItemViewHolder) holder).prodTextView.setText(storageTemporaryBean.getBI_PRODCODE());
+            ((SubItemViewHolder) holder).boxTextView.setText(storageTemporaryBean.getBI_OUTBOXCODE());
+            ((SubItemViewHolder) holder).qtyTextView.setText(CommonUtil.doubleFormat(storageTemporaryBean.getBI_OUTQTY()));
+        }
+    }
+
+    @Override
+    public boolean onGroupItemClick(boolean isExpand, GroupItemViewHolder holder, int groupItemIndex) {
+        if (mOnItemClickListener != null) {
+            mOnItemClickListener.onItemClick(groupItemIndex);
+        }
+        return true;
     }
 
     @Override
-    protected void convert(BaseViewHolder helper, StockBarcodeItemBean item) {
-        helper.setText(R.id.item_storage_out_temporary_main_code_tv, item.getBS_CODE());
-        helper.setText(R.id.item_storage_out_temporary_main_man_tv, item.getBS_INMAN());
-        helper.setText(R.id.item_storage_out_temporary_main_date_tv, item.getBS_INDATE());
+    public void onSubItemClick(SubItemViewHolder holder, int groupItemIndex, int subItemIndex) {
+        if (mOnItemClickListener != null) {
+            mOnItemClickListener.onItemClick(groupItemIndex);
+        }
+    }
+
+
+    public class GroupItemViewHolder extends RecyclerView.ViewHolder {
+        TextView numTextView;
+
+        public GroupItemViewHolder(View itemView) {
+            super(itemView);
+
+            numTextView = (TextView) itemView.findViewById(R.id.item_temporary_main_group_num_tv);
+        }
+    }
+
+    public class SubItemViewHolder extends RecyclerView.ViewHolder {
+        TextView prodTextView;
+        TextView boxTextView;
+        TextView qtyTextView;
+
+        public SubItemViewHolder(View itemView) {
+            super(itemView);
+
+            prodTextView = (TextView) itemView.findViewById(R.id.item_storage_out_temporary_main_prcode_tv);
+            boxTextView = (TextView) itemView.findViewById(R.id.item_storage_out_temporary_main_box_tv);
+            qtyTextView = (TextView) itemView.findViewById(R.id.item_storage_out_temporary_main_qty_tv);
+        }
+    }
+
+    public interface OnItemClickListener {
+        void onItemClick(int groupItemIndex);
     }
 }

+ 30 - 0
app/src/main/java/com/uas/pda_smart_sa/bean/StorageTemporaryBean.java

@@ -47,6 +47,12 @@ public class StorageTemporaryBean {
     private String PR_SPEC;
     @JSONField(name = "PR_ORISPECCODE")
     private String PR_ORISPECCODE;
+    @JSONField(name = "BS_CODE")
+    private String BS_CODE;
+    @JSONField(name = "BS_INDATE")
+    private String BS_INDATE;
+    @JSONField(name = "BS_INMAN")
+    private String BS_INMAN;
 
     public int getPOS() {
         return POS;
@@ -167,4 +173,28 @@ public class StorageTemporaryBean {
     public void setPR_ORISPECCODE(String PR_ORISPECCODE) {
         this.PR_ORISPECCODE = PR_ORISPECCODE;
     }
+
+    public String getBS_CODE() {
+        return BS_CODE;
+    }
+
+    public void setBS_CODE(String BS_CODE) {
+        this.BS_CODE = BS_CODE;
+    }
+
+    public String getBS_INDATE() {
+        return BS_INDATE;
+    }
+
+    public void setBS_INDATE(String BS_INDATE) {
+        this.BS_INDATE = BS_INDATE;
+    }
+
+    public String getBS_INMAN() {
+        return BS_INMAN;
+    }
+
+    public void setBS_INMAN(String BS_INMAN) {
+        this.BS_INMAN = BS_INMAN;
+    }
 }

+ 57 - 30
app/src/main/java/com/uas/pda_smart_sa/fragment/StorageOutTemporaryMainListFragment.java

@@ -17,8 +17,11 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
 import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
 import com.uas.pda_smart_sa.R;
+import com.uas.pda_smart_sa.adapter.SecondaryListAdapter;
 import com.uas.pda_smart_sa.adapter.StorageOutTemporaryMainAdapter;
+import com.uas.pda_smart_sa.bean.JLTStorageModelBean;
 import com.uas.pda_smart_sa.bean.StockBarcodeItemBean;
+import com.uas.pda_smart_sa.bean.StorageTemporaryBean;
 import com.uas.pda_smart_sa.global.GloableParams;
 import com.uas.pda_smart_sa.util.CommonUtil;
 import com.uas.pda_smart_sa.util.FastjsonUtil;
@@ -36,12 +39,11 @@ import java.util.List;
  * Created by RaoMeng on 2020/4/20
  * Desc: 暂存单号列表
  */
-public class StorageOutTemporaryMainListFragment extends BaseFragment {
+public class StorageOutTemporaryMainListFragment extends BaseFragment implements StorageOutTemporaryMainAdapter.OnItemClickListener {
     private ClearableEditText mSearchEditText;
     private TextView mSearchBtn;
     private RefreshLayout mRefreshLayout;
     private RecyclerView mRecyclerView;
-    private List<StockBarcodeItemBean> mBeanList;
     private StorageOutTemporaryMainAdapter mStorageOutTemporaryMainAdapter;
 
     @Override
@@ -60,9 +62,8 @@ public class StorageOutTemporaryMainListFragment extends BaseFragment {
         mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
         mRecyclerView.addItemDecoration(new RecyclerItemDecoration(1));
 
-        mBeanList = new ArrayList<>();
-        mStorageOutTemporaryMainAdapter = new StorageOutTemporaryMainAdapter(mBeanList);
-        mRecyclerView.setAdapter(mStorageOutTemporaryMainAdapter);
+        mStorageOutTemporaryMainAdapter = new StorageOutTemporaryMainAdapter(mActivity);
+        mStorageOutTemporaryMainAdapter.setOnItemClickListener(this);
     }
 
     @Override
@@ -97,17 +98,6 @@ public class StorageOutTemporaryMainListFragment extends BaseFragment {
                 loadMainList();
             }
         });
-
-        mStorageOutTemporaryMainAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
-            @Override
-            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
-                StorageOutTemporaryFragment storageOutTemporaryFragment = new StorageOutTemporaryFragment();
-                Bundle bundle = new Bundle();
-                bundle.putString("tscode", mBeanList.get(position).getBS_CODE());
-                storageOutTemporaryFragment.setArguments(bundle);
-                FragmentUtils.switchFragment(StorageOutTemporaryMainListFragment.this, storageOutTemporaryFragment);
-            }
-        });
     }
 
     @Override
@@ -117,7 +107,6 @@ public class StorageOutTemporaryMainListFragment extends BaseFragment {
     }
 
     private void loadMainList() {
-        mBeanList.clear();
         String key = mSearchEditText.getText().toString().trim();
         VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
                 .url(GloableParams.ADDRESS_OUTMATERIAL_GETTSMAINLIST)
@@ -132,21 +121,46 @@ public class StorageOutTemporaryMainListFragment extends BaseFragment {
                     String result = o.toString();
                     JSONObject resultObject = JSON.parseObject(result);
                     JSONArray dataArray = resultObject.getJSONArray("data");
-                    if (dataArray != null && dataArray.size() > 0) {
-                        for (int i = 0; i < dataArray.size(); i++) {
-                            JSONObject dataObject = dataArray.getJSONObject(i);
-                            if (dataObject != null) {
-                                StockBarcodeItemBean itemBean = new StockBarcodeItemBean();
-                                itemBean.setBS_CODE(FastjsonUtil.getText(dataObject, "BS_CODE"));
-                                itemBean.setBS_INDATE(FastjsonUtil.getText(dataObject, "BS_INDATE"));
-                                itemBean.setBS_INMAN(FastjsonUtil.getText(dataObject, "BS_INMAN"));
-                                itemBean.setBS_ID(FastjsonUtil.getLong(dataObject, "BS_ID"));
-
-                                mBeanList.add(itemBean);
+                    List<SecondaryListAdapter.SecondaryListBean<String, StorageTemporaryBean>> mSecondaryListBeen = new ArrayList<>();
+                    if (dataArray == null || dataArray.size() == 0) {
+                        mStorageOutTemporaryMainAdapter.setDatas(mSecondaryListBeen);
+                        mRecyclerView.setAdapter(mStorageOutTemporaryMainAdapter);
+                        return;
+                    }
+
+                    for (int i = 0; i < dataArray.size(); i++) {
+                        JSONObject dataObject = dataArray.getJSONObject(i);
+                        if (dataObject != null) {
+                            String tscode = FastjsonUtil.getText(dataObject, "code");
+
+                            JSONArray detailArray = dataObject.getJSONArray("detail");
+                            List<StorageTemporaryBean> storageTemporaryBeans = new ArrayList<>();
+                            if (detailArray != null && detailArray.size() > 0) {
+                                for (int j = 0; j < detailArray.size(); j++) {
+                                    JSONObject detailObject = detailArray.getJSONObject(j);
+                                    if (detailObject != null) {
+                                        StorageTemporaryBean storageTemporaryBean = new StorageTemporaryBean();
+                                        storageTemporaryBean.setBI_ID(FastjsonUtil.getLong(detailObject, "BS_ID"));
+                                        storageTemporaryBean.setBS_CODE(FastjsonUtil.getText(detailObject, "BS_CODE"));
+                                        storageTemporaryBean.setBS_INDATE(FastjsonUtil.getText(detailObject, "BS_INDATE"));
+                                        storageTemporaryBean.setBS_INMAN(FastjsonUtil.getText(detailObject, "BS_INMAN"));
+                                        storageTemporaryBean.setBI_OUTBOXCODE(FastjsonUtil.getText(detailObject, "BI_OUTBOXCODE"));
+                                        storageTemporaryBean.setBI_OUTQTY(FastjsonUtil.getDouble(detailObject, "BI_OUTQTY"));
+                                        storageTemporaryBean.setBI_PRODCODE(FastjsonUtil.getText(detailObject, "BI_PRODCODE"));
+                                        storageTemporaryBean.setPR_DETAIL(FastjsonUtil.getText(detailObject, "PR_DETAIL"));
+
+                                        storageTemporaryBeans.add(storageTemporaryBean);
+                                    }
+                                }
                             }
+                            SecondaryListAdapter.SecondaryListBean<String, StorageTemporaryBean> secondaryListBean
+                                    = new SecondaryListAdapter.SecondaryListBean<>(tscode, storageTemporaryBeans);
+
+                            mSecondaryListBeen.add(secondaryListBean);
                         }
                     }
-                    mStorageOutTemporaryMainAdapter.notifyDataSetChanged();
+                    mStorageOutTemporaryMainAdapter.setDatas(mSecondaryListBeen);
+                    mRecyclerView.setAdapter(mStorageOutTemporaryMainAdapter);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -156,12 +170,25 @@ public class StorageOutTemporaryMainListFragment extends BaseFragment {
             public void onFail(int flag, String failStr) throws Exception {
                 progressDialog.dismiss();
                 mRefreshLayout.finishRefresh(0);
-                mStorageOutTemporaryMainAdapter.notifyDataSetChanged();
+                mStorageOutTemporaryMainAdapter.setDatas(new ArrayList<>());
+                mRecyclerView.setAdapter(mStorageOutTemporaryMainAdapter);
                 CommonUtil.toastNoRepeat(mActivity, failStr);
             }
         });
     }
 
+    @Override
+    public void onItemClick(int groupItemIndex) {
+        List<SecondaryListAdapter.SecondaryListBean<String, StorageTemporaryBean>> datas = mStorageOutTemporaryMainAdapter.getDatas();
+        if (datas != null && datas.size() > groupItemIndex) {
+            StorageOutTemporaryFragment storageOutTemporaryFragment = new StorageOutTemporaryFragment();
+            Bundle bundle = new Bundle();
+            bundle.putString("tscode", datas.get(groupItemIndex).getGroupItem());
+            storageOutTemporaryFragment.setArguments(bundle);
+            FragmentUtils.switchFragment(StorageOutTemporaryMainListFragment.this, storageOutTemporaryFragment);
+        }
+    }
+
     @Override
     public void onHiddenChanged(boolean hidden) {
         super.onHiddenChanged(hidden);

+ 19 - 13
app/src/main/res/layout/item_storage_out_temporary_main.xml

@@ -3,24 +3,24 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical"
     android:background="@drawable/selector_menu_item_bg"
+    android:orientation="vertical"
     android:padding="4dp">
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="4dp">
+        android:padding="2dp">
 
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="暂存单号:"
+            android:text="物料名称:"
             android:textColor="#666666"
             android:textSize="14sp" />
 
         <TextView
-            android:id="@+id/item_storage_out_temporary_main_code_tv"
+            android:id="@+id/item_storage_out_temporary_main_prcode_tv"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:textColor="#333333"
@@ -31,38 +31,44 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="4dp">
+        android:padding="2dp">
 
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="录入人:"
+            android:text="箱号:"
             android:textColor="#666666"
             android:textSize="14sp" />
 
         <TextView
-            android:id="@+id/item_storage_out_temporary_main_man_tv"
-            android:layout_width="0dp"
+            android:id="@+id/item_storage_out_temporary_main_box_tv"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
             android:textColor="#333333"
             android:textSize="14sp"
             tools:text="xxxxxxxxxxxxxxxx" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="2dp">
 
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="录入时间:"
+            android:text="数量:"
             android:textColor="#666666"
             android:textSize="14sp" />
 
         <TextView
-            android:id="@+id/item_storage_out_temporary_main_date_tv"
-            android:layout_width="0dp"
+            android:id="@+id/item_storage_out_temporary_main_qty_tv"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
             android:textColor="#333333"
             android:textSize="14sp"
             tools:text="xxxxxxxxxxxxxxxx" />
     </LinearLayout>
+
+
 </LinearLayout>

+ 27 - 0
app/src/main/res/layout/item_temporary_main_group.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="#dcdcdc"
+    android:gravity="center_vertical"
+    android:orientation="horizontal"
+    android:padding="6dp">
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="暂存单号:"
+        android:textColor="@color/black"
+        android:textSize="16sp" />
+
+    <TextView
+        android:id="@+id/item_temporary_main_group_num_tv"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:textColor="#333333"
+        android:textSize="16sp"
+        tools:text="SD21934724783" />
+
+</LinearLayout>

+ 2 - 2
build.gradle

@@ -44,8 +44,8 @@ ext {
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
-            versionCode      : 6,
-            versionName      : "v1.1.4"
+            versionCode      : 7,
+            versionName      : "v1.1.5"
     ]
 
     depsVersion = [