提交 1270eca3 authored 作者: lgd's avatar lgd

1.往来列表

2.//TODO erp用户激活,忘记密码测试,上下架需要在调试,产品下单还缺几个参数,bat,mes,消息,我的,刷新token
上级 c6575ec8
......@@ -313,7 +313,14 @@
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.work.WorkContactsActivity"
android:configChanges="keyboardHidden|orientation"
android:label="往來"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.wd.workoffice.fileprovider"
......
package com.wd.workoffice.bean;
import java.util.List;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class ContactsBean {
/**
* records : [{"createdBy":111,"createdByName":null,"createdTime":"2019-11-25 11:31:32","updatedBy":143,"updatedByName":null,"updatedTime":"2019-12-31 13:49:23","id":40,"name":"北京首鑫联合耐火材料有限公司1","contacter":"吕届蜂","address":"No 1173 Street , Ste. 7681","phone":"15020055000","erpId":"89","productId":null,"partTypeRelList":null,"processRelList":null,"processList":null,"referProcessList":null,"partTypeNames":"供应商","partTypeCode":null,"accountId":null,"accountName":null,"deptName":null,"channelPrice":null,"deptIdList":null,"supplier":null,"customer":null,"transporters":null,"processes":null}]
* total : 1
* size : 10
* current : 1
* orders : []
* searchCount : true
* pages : 1
*/
private int total;
private int size;
private int current;
private boolean searchCount;
private int pages;
private List<RecordsBean> records;
private List<?> orders;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getCurrent() {
return current;
}
public void setCurrent(int current) {
this.current = current;
}
public boolean isSearchCount() {
return searchCount;
}
public void setSearchCount(boolean searchCount) {
this.searchCount = searchCount;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public List<RecordsBean> getRecords() {
return records;
}
public void setRecords(List<RecordsBean> records) {
this.records = records;
}
public List<?> getOrders() {
return orders;
}
public void setOrders(List<?> orders) {
this.orders = orders;
}
public static class RecordsBean {
/**
* createdBy : 111
* createdByName : null
* createdTime : 2019-11-25 11:31:32
* updatedBy : 143
* updatedByName : null
* updatedTime : 2019-12-31 13:49:23
* id : 40
* name : 北京首鑫联合耐火材料有限公司1
* contacter : 吕届蜂
* address : No 1173 Street , Ste. 7681
* phone : 15020055000
* erpId : 89
* productId : null
* partTypeRelList : null
* processRelList : null
* processList : null
* referProcessList : null
* partTypeNames : 供应商
* partTypeCode : null
* accountId : null
* accountName : null
* deptName : null
* channelPrice : null
* deptIdList : null
* supplier : null
* customer : null
* transporters : null
* processes : null
*/
private int createdBy;
private Object createdByName;
private String createdTime;
private int updatedBy;
private Object updatedByName;
private String updatedTime;
private int id;
private String name;
private String contacter;
private String address;
private String phone;
private String erpId;
private Object productId;
private Object partTypeRelList;
private Object processRelList;
private Object processList;
private Object referProcessList;
private String partTypeNames;
private Object partTypeCode;
private Object accountId;
private Object accountName;
private Object deptName;
private Object channelPrice;
private Object deptIdList;
private Object supplier;
private Object customer;
private Object transporters;
private Object processes;
public int getCreatedBy() {
return createdBy;
}
public void setCreatedBy(int createdBy) {
this.createdBy = createdBy;
}
public Object getCreatedByName() {
return createdByName;
}
public void setCreatedByName(Object createdByName) {
this.createdByName = createdByName;
}
public String getCreatedTime() {
return createdTime;
}
public void setCreatedTime(String createdTime) {
this.createdTime = createdTime;
}
public int getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(int updatedBy) {
this.updatedBy = updatedBy;
}
public Object getUpdatedByName() {
return updatedByName;
}
public void setUpdatedByName(Object updatedByName) {
this.updatedByName = updatedByName;
}
public String getUpdatedTime() {
return updatedTime;
}
public void setUpdatedTime(String updatedTime) {
this.updatedTime = updatedTime;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getContacter() {
return contacter;
}
public void setContacter(String contacter) {
this.contacter = contacter;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getErpId() {
return erpId;
}
public void setErpId(String erpId) {
this.erpId = erpId;
}
public Object getProductId() {
return productId;
}
public void setProductId(Object productId) {
this.productId = productId;
}
public Object getPartTypeRelList() {
return partTypeRelList;
}
public void setPartTypeRelList(Object partTypeRelList) {
this.partTypeRelList = partTypeRelList;
}
public Object getProcessRelList() {
return processRelList;
}
public void setProcessRelList(Object processRelList) {
this.processRelList = processRelList;
}
public Object getProcessList() {
return processList;
}
public void setProcessList(Object processList) {
this.processList = processList;
}
public Object getReferProcessList() {
return referProcessList;
}
public void setReferProcessList(Object referProcessList) {
this.referProcessList = referProcessList;
}
public String getPartTypeNames() {
return partTypeNames;
}
public void setPartTypeNames(String partTypeNames) {
this.partTypeNames = partTypeNames;
}
public Object getPartTypeCode() {
return partTypeCode;
}
public void setPartTypeCode(Object partTypeCode) {
this.partTypeCode = partTypeCode;
}
public Object getAccountId() {
return accountId;
}
public void setAccountId(Object accountId) {
this.accountId = accountId;
}
public Object getAccountName() {
return accountName;
}
public void setAccountName(Object accountName) {
this.accountName = accountName;
}
public Object getDeptName() {
return deptName;
}
public void setDeptName(Object deptName) {
this.deptName = deptName;
}
public Object getChannelPrice() {
return channelPrice;
}
public void setChannelPrice(Object channelPrice) {
this.channelPrice = channelPrice;
}
public Object getDeptIdList() {
return deptIdList;
}
public void setDeptIdList(Object deptIdList) {
this.deptIdList = deptIdList;
}
public Object getSupplier() {
return supplier;
}
public void setSupplier(Object supplier) {
this.supplier = supplier;
}
public Object getCustomer() {
return customer;
}
public void setCustomer(Object customer) {
this.customer = customer;
}
public Object getTransporters() {
return transporters;
}
public void setTransporters(Object transporters) {
this.transporters = transporters;
}
public Object getProcesses() {
return processes;
}
public void setProcesses(Object processes) {
this.processes = processes;
}
}
}
package com.wd.workoffice.contract;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.ProductBean;
import java.util.List;
import java.util.Map;
import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBasePresenter;
import flexible.xd.android_base.mvpBase.IBaseView;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public interface WorkContactsContract {
interface Model extends IBaseModel {
Observable<BaseBean> getData(Map<String, Object> param);
}
interface View extends IBaseView {
void getData(List<ContactsBean.RecordsBean> dataList);
}
interface Presenter extends IBasePresenter<View> {
void getData(Map<String, Object> param);
}
}
package com.wd.workoffice.model;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.WorkContactsContract;
import com.wd.workoffice.retrofit.RtfUtils;
import java.util.Map;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkContactsModel implements WorkContactsContract.Model {
public static WorkContactsModel newInstance() {
return new WorkContactsModel();
}
@Override
public Observable<BaseBean> getData(Map<String, Object> param) {
return RtfUtils.getRtf().getContacts(param);
}
}
package com.wd.workoffice.presenter;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.ProductBean;
import com.wd.workoffice.contract.WorkContactsContract;
import com.wd.workoffice.contract.WorkProContract;
import com.wd.workoffice.model.WorkContactsModel;
import com.wd.workoffice.retrofit.WorkObserver;
import java.util.Map;
import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import io.reactivex.disposables.Disposable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkContactsPresenter extends BasePresenter<WorkContactsContract.View, WorkContactsContract.Model> implements WorkContactsContract.Presenter {
@Override
public void getData(Map<String, Object> param) {
mView.showLoading();
mModel.getData(param).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getCode() != 0) {
mView.onError(data.getMessage());
return;
}
mView.getData(JSON.parseArray(JSON.parseObject(data.getData().toString()).getString("records"), ContactsBean.RecordsBean.class));
}
});
}
@Override
public WorkContactsContract.Model bindModel() {
return WorkContactsModel.newInstance();
}
}
......@@ -424,6 +424,20 @@ public interface ApiService {
@POST("saleOrder/start")
Observable<BaseBean> submitSaleOrder(@Body RequestBody requestBody);
/**
* 获取客户分厂
* @param param
* @return
*/
@GET("/customer-branch-factory/page/init")
Observable<BaseBean> getClientFactory(@QueryMap Map<String, Object> param);
/**
* app端往来单位分页列表
* @param param
* @return
*/
@GET("/transitpart/app/page/list")
Observable<BaseBean> getContacts(@QueryMap Map<String, Object> param);
}
package com.wd.workoffice.ui.activity.bat.work;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.material.tabs.TabLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.ui.adapter.VpDataAdapter;
import com.wd.workoffice.ui.fg.WorkContactsFragment;
import com.wd.workoffice.ui.fg.WorkProFragment;
import java.util.ArrayList;
import java.util.List;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* 工作台 - 产品
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkContactsActivity extends WorkToolBarActivity {
@BindView(R.id.tl_tab)
TabLayout tlTab;
@BindView(R.id.vp_data)
ViewPager vpData;
private String tab[] = {"供应商", "客户", "物流公司"};
private String ofKind[] = {"供应商", "客户", "物流公司"};
// private String ofKind[] = {"SUPPLIER", "CUSTOMER", "TRANSPORTERS"};
@Override
protected void initView() {
ButterKnife.bind(this);
tlTab.setupWithViewPager(vpData);
}
@Override
protected void initData() {
FragmentManager sfm = getSupportFragmentManager();
List<Fragment> data = new ArrayList<>();
for (int i = 0; i < tab.length; i++) {
WorkContactsFragment saleFragment = new WorkContactsFragment();
Bundle bundle = new Bundle();
bundle.putString("partTypeNames", ofKind[i]);
saleFragment.setArguments(bundle);
data.add(saleFragment);
}
VpDataAdapter vpFgAdapter = new VpDataAdapter(sfm, data);
vpData.setAdapter(vpFgAdapter);
for (int i = 0; i < tab.length; i++) {
tlTab.getTabAt(i).setText(tab[i]);
}
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_pro;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.search:
startActivity(WorkProSearchActivity.class);
break;
}
return super.onOptionsItemSelected(item);
}
}
package com.wd.workoffice.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.ProductBean;
import java.util.List;
/**
* Created by flexible on 2018/8/13.
*/
public class WorkContactsAdapter extends BaseQuickAdapter<ContactsBean.RecordsBean, BaseViewHolder> {
public WorkContactsAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, ContactsBean.RecordsBean item) {
helper.setText(R.id.tv_name, item.getName());
helper.setText(R.id.tv_address, item.getAddress());
helper.setText(R.id.tv_phone, item.getPhone());
}
}
......@@ -24,6 +24,7 @@ import com.wd.workoffice.ui.activity.bat.sale.SaleInsideOrderActivity;
import com.wd.workoffice.ui.activity.bat.sale.SaleOutOrderActivity;
import com.wd.workoffice.ui.activity.bat.sale.SaleSaleOrderActivity;
import com.wd.workoffice.ui.activity.bat.sale.SaleSupplierOrderActivity;
import com.wd.workoffice.ui.activity.bat.work.WorkContactsActivity;
import com.wd.workoffice.ui.activity.bat.work.WorkProActivity;
import com.wd.workoffice.ui.adapter.BatLayoutAdapter;
import com.wd.workoffice.util.UserKeeper;
......@@ -244,6 +245,7 @@ public class MainFragment extends WorkBaseFg {
startActivity(WorkProActivity.class);
break;
case 1:
startActivity(WorkContactsActivity.class);
break;
case 2:
break;
......
......@@ -56,6 +56,8 @@ public class ProOutFragment extends WorkBaseFg implements SaleSaleContract.View
param.put("orderStatus", state);
param.put("current", page);
param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getOutOrder(param);
}
......
......@@ -56,6 +56,8 @@ public class ProSaleFragment extends WorkBaseFg implements SaleSaleContract.View
param.put("orderStatus", state);
param.put("current", page);
param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getOrder(param);
}
......
......@@ -56,6 +56,8 @@ public class ProSupplierFragment extends WorkBaseFg implements SaleSaleContract.
param.put("orderStatus", state);
param.put("current", page);
param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getSupplierOrder(param);
}
......
......@@ -56,6 +56,8 @@ public class SaleInsideFragment extends WorkBaseFg implements SaleSaleContract.V
param.put("orderStatus", state);
param.put("current", page);
param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getInsideOrder(param);
}
......
......@@ -56,6 +56,8 @@ public class SaleOutFragment extends WorkBaseFg implements SaleSaleContract.View
param.put("orderStatus", state);
param.put("current", page);
param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getOutOrder(param);
}
......
......@@ -56,6 +56,8 @@ public class SaleSaleFragment extends WorkBaseFg implements SaleSaleContract.Vie
param.put("orderStatus", state);
param.put("current", page);
param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getOrder(param);
}
......
......@@ -56,6 +56,8 @@ public class SaleSupplierFragment extends WorkBaseFg implements SaleSaleContract
param.put("orderStatus", state);
param.put("current", page);
param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getSupplierOrder(param);
}
......
package com.wd.workoffice.ui.fg;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkBaseFg;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.ProductBean;
import com.wd.workoffice.bean.listener.ProFilterClickListener;
import com.wd.workoffice.contract.WorkContactsContract;
import com.wd.workoffice.contract.WorkProContract;
import com.wd.workoffice.presenter.WorkContactsPresenter;
import com.wd.workoffice.presenter.WorkProPresenter;
import com.wd.workoffice.ui.activity.bat.work.WorkProDetailActivity;
import com.wd.workoffice.ui.adapter.WorkContactsAdapter;
import com.wd.workoffice.ui.adapter.WorkProductAdapter;
import com.wd.workoffice.util.ProFilterData;
import com.wd.workoffice.util.WorkUtils;
import com.wd.workoffice.widget.DropDownMenu;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkContactsFragment extends WorkBaseFg implements WorkContactsContract.View {
@BindView(R.id.rv_data)
RecyclerView rvData;
@BindView(R.id.srl_refresh)
SmartRefreshLayout srlRefresh;
private String partTypeNames;
private int page = 1;
private Map<String, Object> param;
private WorkContactsPresenter workProPresenter;
private WorkContactsAdapter workProductAdapter;
private List<ContactsBean.RecordsBean> dataList;
@Override
protected void initView() {
ButterKnife.bind(this, getContentView());
workProPresenter = new WorkContactsPresenter();
workProPresenter.onAttach(this);
rvData.setLayoutManager(new LinearLayoutManager(getActivity(), RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
param = WorkUtils.pageKey();
param.put("partTypeNames", partTypeNames);
page = 1;
param.put("current", page);
dataList = new ArrayList<>();
workProductAdapter = new WorkContactsAdapter(R.layout.item_work_contacts, dataList);
workProductAdapter.bindToRecyclerView(rvData);
workProductAdapter.setEmptyView(R.layout.view_empty_content, rvData);
workProPresenter.getData(param);
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle arguments = getArguments();
if (arguments != null) {
partTypeNames = arguments.getString("partTypeNames");
}
}
@Override
protected void initEvent() {
srlRefresh.setOnRefreshListener(refreshLayout -> {
page = 1;
param.put("current", page);
workProPresenter.getData(param);
});
workProductAdapter.setOnLoadMoreListener(() -> {
param.put("current", page);
workProPresenter.getData(param);
}, rvData);
workProductAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
// startActivity(WorkProDetailActivity.class, "pro", JSON.toJSONString(dataList.get(position)));
}
});
}
@Override
protected int layoutId() {
return R.layout.fg_work_contacts;
}
@Override
public void getData(List<ContactsBean.RecordsBean> data) {
if (page == 1) {
dataList.clear();
dataList.addAll(data);
workProductAdapter.notifyDataSetChanged();
workProductAdapter.loadMoreComplete();
srlRefresh.finishRefresh();
} else {
workProductAdapter.loadMoreComplete();
dataList.addAll(data);
workProductAdapter.notifyDataSetChanged();
}
if (data.size() == 0) {
workProductAdapter.loadMoreEnd();
} else {
page++;
}
}
}
......@@ -110,6 +110,8 @@ public class WorkProFragment extends WorkBaseFg implements WorkProContract.View
protected void initData() {
param = WorkUtils.pageKey();
param.put("ofKind", ofKind);
page = 1;
param.put("current", page);
dataList = new ArrayList<>();
workProductAdapter = new WorkProductAdapter(R.layout.item_work_product, dataList);
workProductAdapter.bindToRecyclerView(rvData);
......@@ -216,7 +218,7 @@ public class WorkProFragment extends WorkBaseFg implements WorkProContract.View
tvOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
workProPresenter.onSale(data.getId(),"down");
workProPresenter.onSale(data.getId(), "down");
addCartDialog.dismiss();
}
});
......
<?xml version="1.0" encoding="utf-8"?>
<com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/srl_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_data"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="10mm">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5mm"
android:textColor="@color/flexible_text_sup"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5mm"
android:textColor="@color/flexible_text_sup"
android:textSize="13sp" />
</LinearLayout>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论