提交 6adc42fe authored 作者: lgd's avatar lgd

1.首页改版

2.//TODO ,质检接口数据无对应问题,内部交易订单审核,审核规则,领用申请列表/退件列表/参数,坩埚下单,mes其他页面,编辑任务担当无法修改.支数参数
token刷新问题
上级 a64aeb86
......@@ -5,6 +5,7 @@ import com.wd.workoffice.bean.DepBean;
import com.wd.workoffice.bean.ProcessBean;
import com.wd.workoffice.bean.ProductBean;
import com.wd.workoffice.bean.StockBean;
import com.wd.workoffice.bean.TradingBean;
import java.util.List;
import java.util.Map;
......@@ -24,7 +25,12 @@ public interface BatChooseInfoContract {
Observable<BaseBean> getProcess(String processCode, Integer transitPartId);
Observable<BaseBean> getPro(Map<String, Object> param);
Observable<BaseBean> getStock(Map<String,Object> param);
Observable<BaseBean> getTradingPro(String code);
Observable<BaseBean> getTradingProList(Map<String,Object> param);
}
interface View extends IBaseView {
......@@ -32,7 +38,12 @@ public interface BatChooseInfoContract {
void getPro(List<ProductBean.RecordsBean> dataList);
void getStock(List<StockBean> dataList);
void getTradingPro(TradingBean.RecordsBean code, List<ProductBean.RecordsBean> dataList);
void getTradingProList(List<TradingBean.RecordsBean> dataList);
}
interface Presenter extends IBasePresenter<View> {
......@@ -44,5 +55,8 @@ public interface BatChooseInfoContract {
void getStock(Map<String,Object> param);
void getTradingPro(TradingBean.RecordsBean code);
void getTradingProList(Map<String,Object> param);
}
}
......@@ -31,4 +31,14 @@ public class BatChooseInfoModel implements BatChooseInfoContract.Model {
public Observable<BaseBean> getStock(Map<String,Object> param) {
return RtfUtils.getRtf().getStock(param);
}
@Override
public Observable<BaseBean> getTradingPro(String code) {
return RtfUtils.getRtf().tradingProDialog(code);
}
@Override
public Observable<BaseBean> getTradingProList(Map<String, Object> param) {
return RtfUtils.getRtf().tradingPro(param);
}
}
......@@ -5,8 +5,8 @@ import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.ProcessBean;
import com.wd.workoffice.bean.ProductBean;
import com.wd.workoffice.bean.StockBean;
import com.wd.workoffice.bean.TradingBean;
import com.wd.workoffice.contract.BatChooseInfoContract;
import com.wd.workoffice.contract.BatSaleContract;
import com.wd.workoffice.model.BatChooseInfoModel;
import com.wd.workoffice.retrofit.WorkObserver;
......@@ -85,6 +85,7 @@ public class BatChooseInfoPresenter extends BasePresenter<BatChooseInfoContract.
}
});
}
@Override
public void getStock(Map<String, Object> param) {
mView.showLoading();
......@@ -111,6 +112,69 @@ public class BatChooseInfoPresenter extends BasePresenter<BatChooseInfoContract.
}
});
}
@Override
public void getTradingPro(TradingBean.RecordsBean code) {
mView.showLoading();
mModel.getTradingPro(code.getProductSoleCode()).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;
}
List<ProductBean.RecordsBean> productBean = JSON.parseArray(data.getData().toString(), ProductBean.RecordsBean.class);
mView.getTradingPro(code, JSON.parseArray(data.getData().toString(), ProductBean.RecordsBean.class));
}
});
}
@Override
public void getTradingProList(Map<String, Object> param) {
mView.showLoading();
mModel.getTradingProList(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;
}
List<TradingBean.RecordsBean> dataList;
TradingBean jsonData = JSON.parseObject(data.getData().toString(), TradingBean.class);
if (jsonData != null) {
dataList = jsonData.getRecords();
} else {
dataList = new ArrayList<>();
}
mView.getTradingProList(dataList);
}
});
}
@Override
public BatChooseInfoContract.Model bindModel() {
return BatChooseInfoModel.newInstance();
......
......@@ -66,7 +66,7 @@ public class ChooseClientActivity extends WorkToolBarActivity {
clientAdapter.setEmptyView(R.layout.view_empty_content, rvClient);
param = WorkUtils.pageKey();
param.put("searchType", getIntent().getStringExtra("code"));
param.put("deptId", UserKeeper.getInstance().getUserDepId());
// param.put("deptId", UserKeeper.getInstance().getUserDepId());
if (!WorkUtils.hasPermission(PagePermissionType.TRANSIT_PART_MANAGE_LIST.getPermission())) {
toast(R.string.permission);
} else {
......
......@@ -16,19 +16,26 @@ import com.alibaba.fastjson.JSON;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.ProcessBean;
import com.wd.workoffice.bean.ProductBean;
import com.wd.workoffice.bean.StockBean;
import com.wd.workoffice.bean.TradingBean;
import com.wd.workoffice.bean.event.ModifyCarEvent;
import com.wd.workoffice.bean.workEnum.PagePermissionType;
import com.wd.workoffice.bean.workEnum.PermissionType;
import com.wd.workoffice.contract.BatChooseInfoContract;
import com.wd.workoffice.presenter.BatChooseInfoPresenter;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.StoreProductAdapter;
import com.wd.workoffice.ui.adapter.TradingProDetailAdapter;
import com.wd.workoffice.ui.adapter.TradingProductAdapter;
import com.wd.workoffice.util.DialogUtils;
import com.wd.workoffice.util.UserKeeper;
import com.wd.workoffice.util.WorkUtils;
import com.wd.workoffice.widget.AddAndReduceDoubleView;
import com.wd.workoffice.widget.AddAndReduceView;
import org.greenrobot.eventbus.EventBus;
......@@ -36,6 +43,7 @@ import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -46,6 +54,8 @@ import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import io.reactivex.disposables.Disposable;
/**
* 选择数据
......@@ -94,6 +104,9 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
private List<StockBean> stockList;
private List<String> stockNameList = new ArrayList<>();
private StockBean chooseStock;
Map<String, Object> carMap = new HashMap<>();
private List<TradingBean.RecordsBean> tradingProductList;
private TradingProductAdapter tradingProductAdapter;
@Override
protected void initView() {
......@@ -132,6 +145,9 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
tvCommonContent.setHint("请选择入库仓库");
break;
case "6":
tradingProductList = new ArrayList<>();
tradingProductAdapter = new TradingProductAdapter(R.layout.item_trading_product, tradingProductList);
tradingProductAdapter.bindToRecyclerView(rvData);
permissionCode = PermissionType.PROCESS_INSIDE.getCode();
llClient.setVisibility(View.GONE);
llSupplier.setVisibility(View.GONE);
......@@ -151,6 +167,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
param.put("current", 1);
param.put("processType", permissionCode);
param.put("outDeptId", getIntent().getStringExtra("deptId"));
param.put("deptId", getIntent().getStringExtra("deptId"));//内部交易
stockParam = WorkUtils.simpleParam();
stockParam.put("deptId", UserKeeper.getInstance().getUserDepId());
if (TextUtils.equals("3", type)) {
......@@ -161,6 +178,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
batChooseInfoPresenter.getStock(stockParam);
}
if (TextUtils.equals("6", type)) {
batChooseInfoPresenter.getTradingProList(param);
batChooseInfoPresenter.getStock(stockParam);
}
}
......@@ -178,8 +196,12 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
proAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
if (TextUtils.equals("6", type)) {
batChooseInfoPresenter.getTradingPro(tradingProductList.get(position));
} else {
openDialog(proList.get(position));
}
}
});
}
......@@ -193,20 +215,85 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.cart:
if (TextUtils.equals("6", type)) {
if (!carMap.containsKey("pro")) {
toast("购物车没有产品");
return super.onOptionsItemSelected(item);
}
startActivity(StoreTradingCarActivity.class,
"pro", JSON.toJSONString(carMap),
"supplierId", "",
"subProcess", "",
"inStockId", chooseStock.getId() + "",
"customerId", "",
"receiveDeptId", getIntent().getStringExtra("deptId"),
"code", permissionCode);
} else {
if (carList.size() == 0) {
toast("购物车没有产品");
return super.onOptionsItemSelected(item);
}
switch (type) {
case "1":
if (clientId == null) {
toast("请选择客户");
return super.onOptionsItemSelected(item);
}
if (chooseProcess == null) {
toast("请选择子流程");
return super.onOptionsItemSelected(item);
}
break;
case "2":
if (clientId == null) {
toast("请选择客户");
return super.onOptionsItemSelected(item);
}
if (supplyId == null) {
toast("请选择供应商");
return super.onOptionsItemSelected(item);
}
if (chooseProcess == null) {
toast("请选择子流程");
return super.onOptionsItemSelected(item);
}
break;
case "3":
if (supplyId == null) {
toast("请先选择供应商");
return super.onOptionsItemSelected(item);
}
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
}
break;
case "4":
break;
case "5":
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
}
break;
case "6":
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
}
break;
}
startActivity(StoreSaleCarActivity.class,
"pro", JSON.toJSONString(carList),
"supplierId", getIntent().getStringExtra("supplierId"),
"subProcess", getIntent().getStringExtra("subProcess"),
"subProcessId", getIntent().getStringExtra("subProcessId"),
"supplierId", supplyId.toString(),
"subProcess", chooseProcess.getName(),
"subProcessId", chooseProcess.getId() + "",
"inStockId", getIntent().getStringExtra("inStockId"),
"customerId", getIntent().getStringExtra("customerId"),
"receiveDeptId", getIntent().getStringExtra("depId"),
"code", getIntent().getStringExtra("code"));
"inStockId", chooseStock.getId() + "",
"customerId", clientId.toString(),
"receiveDeptId", getIntent().getStringExtra("deptId"),
"code", permissionCode);
}
break;
}
return super.onOptionsItemSelected(item);
......@@ -222,15 +309,45 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.ll_client:
startActivityForResult(ChooseClientActivity.class, 10001
, "code", "CUSTOMER");
switch (type) {
case "1":
startActivityForResult(StoreSaleClientActivity.class, 10001, "code", "CUSTOMER");
break;
case "2":
startActivityForResult(StoreSaleClientActivity.class, 10001, "code", "CUSTOMER");
break;
case "3":
break;
case "4":
break;
case "5":
break;
case "6":
break;
}
break;
case R.id.ll_supplier:
// startActivityForResult(ChooseClientActivity.class, 10001,
// "title", "选择供应商", "code", "SUPPLIER");
startActivityForResult(ChooseClientActivity.class, 10002,
switch (type) {
case "1":
break;
case "2":
startActivityForResult(StoreSaleClientActivity.class, 10002,
"depId", getIntent().getStringExtra("deptId"),
"flag", "1", "code", "SUPPLIER", "supplier", "选择供应商");
break;
case "3":
startActivityForResult(StoreSaleClientActivity.class, 10002,
"flag", "1",
"depId", getIntent().getStringExtra("deptId"),
"code", "SUPPLIER", "supplier", "选择供应商");
break;
case "4":
break;
case "5":
break;
case "6":
break;
}
break;
case R.id.btn_search:
if (clientId == null) {
......@@ -316,7 +433,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
}
break;
case 10002:
if (resultCode == 10001) {
if (resultCode == 10002) {
String clientName = data.getStringExtra("clientName");
supplyId = data.getIntExtra("id", 0);
tvSupplier.setText(clientName);
......@@ -342,6 +459,30 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
});
}
@Override
public void getTradingPro(TradingBean.RecordsBean data, List<ProductBean.RecordsBean> list) {
openDialogInside(data, list);
}
@Override
public void getTradingProList(List<TradingBean.RecordsBean> dataList) {
if (page == 1) {
tradingProductList.clear();
tradingProductList.addAll(dataList);
tradingProductAdapter.notifyDataSetChanged();
tradingProductAdapter.loadMoreComplete();
} else {
tradingProductAdapter.loadMoreComplete();
tradingProductList.addAll(dataList);
tradingProductAdapter.notifyDataSetChanged();
}
if (dataList.size() == 0) {
tradingProductAdapter.loadMoreEnd();
} else {
page++;
}
}
@Override
public void processList(List<ProcessBean> dataList) {
processList = dataList;
......@@ -378,6 +519,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
}
}
@Override
public void onStart() {
super.onStart();
......@@ -397,6 +539,11 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
carList.addAll(JSON.parseArray(pro, ProductBean.RecordsBean.class));
}
/**
* 普通选择产品
*
* @param data
*/
private void openDialog(ProductBean.RecordsBean data) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.view_add_cart, null);
......@@ -460,4 +607,72 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
}
toast("加入购物车成功");
}
/**
* 内部交易选择产品
*
* @param quantity
* @param data
*/
private void openDialogInside(TradingBean.RecordsBean quantity, List<ProductBean.RecordsBean> data) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.view_add_cart_trading, null);
TextView tvOk = view.findViewById(R.id.tv_ok);
TextView tvCancel = view.findViewById(R.id.tv_cancel);
AddAndReduceDoubleView useNum = view.findViewById(R.id.ar_use_num);
useNum.setMaxNum(quantity.getQuantity());
AddAndReduceView num = view.findViewById(R.id.ar_num);
RecyclerView rvProduct = view.findViewById(R.id.rv_pro);
rvProduct.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
List<ProductBean.RecordsBean> dataList = new ArrayList<>();
dataList.addAll(data);
TradingProDetailAdapter tradingProDetailAdapter = new TradingProDetailAdapter(R.layout.item_trading_product_dialog, dataList);
tradingProDetailAdapter.bindToRecyclerView(rvProduct);
builder.setView(view);
AlertDialog addCartDialog = builder.create();
tvOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double number = useNum.getNumber();
if (number == 0d) {
toast("请选择使用数量");
return;
}
Map<Integer, Boolean> isChoose = tradingProDetailAdapter.getIsChoose();
List<ProductBean.RecordsBean> info = new ArrayList<>();
for (Map.Entry<Integer, Boolean> entry : isChoose.entrySet()) {
if (entry.getValue()) {
ProductBean.RecordsBean recordsBean = dataList.get(entry.getKey());
info.add(recordsBean);
}
}
if (info.size() == 0) {
toast("请选择置换产品");
return;
}
quantity.setChooseNum(String.valueOf(useNum.getNumber()));
addCartInside(quantity, info, num.getNumber());
addCartDialog.dismiss();
}
});
tvCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addCartDialog.dismiss();
}
});
addCartDialog.show();
}
private void addCartInside(TradingBean.RecordsBean quantity, List<ProductBean.RecordsBean> data, int number) {
for (ProductBean.RecordsBean bean : data) {
bean.setCarNum(number);
}
carMap.put("pro", JSON.toJSONString(quantity));
carMap.put("proDetail", JSON.toJSONString(data));
toast("加入购物车成功");
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论