提交 c46790fe authored 作者: lgd's avatar lgd

1.退货新增

2.//TODO 设备三个子菜单,坩埚下单,mes其他页面,编辑任务担当无法修改.支数参数
上级 4e32fb4c
......@@ -1912,7 +1912,15 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />f
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.order.ReturnAddActivity"
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"
......
......@@ -1373,6 +1373,29 @@ public interface ApiService {
@GET("/returnApply/po/page/list")
Observable<BaseBean> returnPoApplyList(@QueryMap Map<String, Object> param);
/**
* step7_6 发送订单退货申请
*
* @return
*/
@POST("/procedureStart/po/applyReturn/{id}")
Observable<BaseBean> returnPoAdd(@Path("id") String id, @Body RequestBody requestBody);
/**
* step7_6 发送订单退货申请
*
* @return
*/
@POST("/procedureStart/so/applyReturn/{id}")
Observable<BaseBean> returnSoAdd(@Path("id") String id, @Body RequestBody requestBody);
/**
* 退货新增查询部门
*
* @return
*/
@GET("/stock/find/dept")
Observable<BaseBean> returnDept(@Query("deptId") String id);
/**
* 审核历史
*
......
......@@ -297,6 +297,7 @@ public class CrucibleOrderDetailActivity extends WorkToolBarActivity {
"product", proList.get(position).getProductName(),
"simpleCode", proList.get(position).getProductSimpleCode(),
"orderId", getIntent().getStringExtra("id"),
"orderItemId", proList.get(position).getId(),
"productId", proList.get(position).getProductId() + "");
break;
case R.id.tv_flow:
......
......@@ -256,6 +256,7 @@ public class InsideOrderDetailActivity extends WorkToolBarActivity {
"product", proList.get(position).getProductName(),
"simpleCode", proList.get(position).getProductSimpleCode(),
"orderId", getIntent().getStringExtra("id"),
"orderItemId", proList.get(position).getId(),
"productId", proList.get(position).getProductId() + "");
break;
case R.id.tv_flow:
......
......@@ -307,6 +307,7 @@ public class OutOrderDetailActivity extends WorkToolBarActivity {
"product", proList.get(position).getProductName(),
"simpleCode", proList.get(position).getProductSimpleCode(),
"orderId", getIntent().getStringExtra("id"),
"orderItemId", proList.get(position).getId(),
"productId", proList.get(position).getProductId() + "");
break;
case R.id.tv_flow:
......
......@@ -173,6 +173,7 @@ public class ProductOrderDetailActivity extends WorkToolBarActivity {
"product", proList.get(position).getProductName(),
"simpleCode", proList.get(position).getProductSimpleCode(),
"orderId", getIntent().getStringExtra("id"),
"orderItemId", proList.get(position).getId(),
"productId", proList.get(position).getProductId() + "");
break;
case R.id.tv_flow:
......
package com.wd.workoffice.ui.activity.bat.order;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.event.CheckSendEvent;
import com.wd.workoffice.bean.workEnum.OrderType;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.util.DialogUtils;
import com.wd.workoffice.util.UserKeeper;
import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
/**
* 添加退件
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class ReturnAddActivity extends WorkToolBarActivity {
@BindView(R.id.tv_bottom)
TextView tvBottom;
@BindView(R.id.tv_num)
TextView tvNum;
@BindView(R.id.et_num)
EditText etNum;
@BindView(R.id.tv_return_type)
TextView tvReturnType;
@BindView(R.id.tv_stock)
TextView tvStock;
@BindView(R.id.ll_choose_stock)
LinearLayout llChooseStock;
@BindView(R.id.et_price)
EditText etPrice;
@BindView(R.id.et_remark)
EditText etRemark;
@BindView(R.id.tv_remark_num)
TextView tvRemarkNum;
@BindView(R.id.tv_max_num)
TextView tvMaxNum;
@BindView(R.id.ll_money)
LinearLayout llMoney;
@BindView(R.id.ll_type)
LinearLayout llType;
private Map<String, Object> param;
private String orderType;
private List<String> typeList = new ArrayList<>();
private String enterStockType;
private QMUIDialog.MenuDialogBuilder typeDialog;
private QMUIDialog.MenuDialogBuilder deptDialog;
private int chooseType = 0;//1 从现场库退到内库 3 未结算库核 4 现场库退给供应商
private JSONArray deptList;
private List<String> deptNameList;
private Integer chooseDep;
@Override
protected void initView() {
ButterKnife.bind(this);
orderType = getIntent().getStringExtra("orderType");
enterStockType = getIntent().getStringExtra("enterStockType");
if (TextUtils.equals(orderType, OrderType.SALE.getCode())) {
typeList.add("从现场库退到内库");
tvReturnType.setText("从现场库退到内库");
} else if (TextUtils.equals(orderType, OrderType.OUT_BUY.getCode())) {
switch (enterStockType) {
case "1":
typeList.add("从现场库退到内库");
typeList.add("未结算库核销");
typeList.add("现场库退给供应商");
break;
case "2":
typeList.add("未结算库核销");
typeList.add("现场库退给供应商");
break;
}
}
typeDialog = DialogUtils.listDialog(this);
typeDialog.addItems(typeList.toArray(new String[typeList.size()]), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tvReturnType.setText(typeList.get(which));
changeView();
dialog.dismiss();
}
});
deptDialog = DialogUtils.listDialog(this);
}
private void changeView() {
//1 从现场库退到内库 3 未结算库核 4 现场库退给供应商
String returnType = tvReturnType.getText().toString();
switch (returnType) {
case "从现场库退到内库":
chooseType = 1;
llChooseStock.setVisibility(View.VISIBLE);
llMoney.setVisibility(View.GONE);
break;
case "未结算库核销":
chooseType = 3;
llChooseStock.setVisibility(View.GONE);
llMoney.setVisibility(View.VISIBLE);
break;
case "现场库退给供应商":
chooseType = 4;
llChooseStock.setVisibility(View.GONE);
llMoney.setVisibility(View.GONE);
break;
default:
llChooseStock.setVisibility(View.GONE);
llMoney.setVisibility(View.GONE);
break;
}
param.put("returnType", chooseType);
}
@Override
protected void initData() {
String num = getIntent().getStringExtra("returnNum");
tvMaxNum.setText(String.format("*退货最大数量(%s)", num));
param = new HashMap<>();
param.put("orderId", getIntent().getStringExtra("id"));
param.put("productId", getIntent().getStringExtra("productId"));
param.put("orderItemId", getIntent().getStringExtra("orderItemId"));
changeView();
getDept();
}
private void getDept() {
RtfUtils.getRtf().returnDept(UserKeeper.getInstance().getUserDepId()).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
}
@Override
public void onFail(String errorMsg) {
hideLoading();
toast(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
hideLoading();
if (data.getCode() != 0) {
toast(data.getMessage());
return;
}
deptList = JSON.parseArray(data.getData().toString());
deptNameList = new ArrayList<>();
for (int i = 0; i < deptList.size(); i++) {
JSONObject deptData = deptList.getJSONObject(i);
deptNameList.add(deptData.getString("name"));
}
deptDialog.addItems(deptNameList.toArray(new String[deptNameList.size()]), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tvStock.setText(deptNameList.get(which));
chooseDep = deptList.getJSONObject(which).getInteger("id");
dialog.dismiss();
}
});
}
});
}
@Override
protected void initEvent() {
etRemark.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
tvRemarkNum.setText(s.length() + "/140");
}
});
}
@Override
protected int layoutId() {
return R.layout.activity_return_add;
}
private void submit() {
String num = etNum.getText().toString();
String price = etPrice.getText().toString();
String remark = etRemark.getText().toString();
if (TextUtils.isEmpty(num)) {
toast("请输入退货数量");
return;
}
if (TextUtils.isEmpty(price) && chooseType == 3) {
toast("请输入核销金额");
return;
}
param.put("productAmount", num);
param.put("writeOff", price);
param.put("applyRemark", remark);
if (chooseType == 1) {
if (chooseDep == null) {
toast("请选择退货仓库");
return;
}
param.put("backStockId", chooseDep);
}
Observable<BaseBean> observable;
if (TextUtils.equals(orderType, OrderType.SALE.getCode())) {
observable = RtfUtils.getRtf().returnSoAdd(getIntent().getStringExtra("id"), WorkUtils.convertMapToBody(param));
} else if (TextUtils.equals(orderType, OrderType.OUT_BUY.getCode())) {
observable = RtfUtils.getRtf().returnPoAdd(getIntent().getStringExtra("id"), WorkUtils.convertMapToBody(param));
} else {
observable = RtfUtils.getRtf().returnSoAdd(getIntent().getStringExtra("id"), WorkUtils.convertMapToBody(param));
}
observable.compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
}
@Override
public void onFail(String errorMsg) {
hideLoading();
toast(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
hideLoading();
if (data.getCode() != 0) {
toast(data.getMessage());
return;
}
toast("提交申请成功");
EventBus.getDefault().post(new CheckSendEvent());
finish();
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) invocation
ButterKnife.bind(this);
}
@OnClick({R.id.tv_bottom, R.id.ll_type, R.id.ll_choose_stock})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_bottom:
submit();
break;
case R.id.ll_type:
typeDialog.show();
break;
case R.id.ll_choose_stock:
deptDialog.show();
break;
}
}
// @Override
// protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// if (requestCode == 10001 && resultCode == 10001) {
// String clientName = data.getStringExtra("clientName");
// clientId = data.getIntExtra("id", 0);
// tvLogisticsCompany.setText(clientName);
// }
// }
// @Override
// public void onStart() {
// super.onStart();
// EventBus.getDefault().register(this);
// }
//
// @Override
// public void onStop() {
// super.onStop();
// EventBus.getDefault().unregister(this);
// }
}
......@@ -206,11 +206,12 @@ public class ReturnApplyActivity extends WorkToolBarActivity {
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add:
startActivity(UseApplyAddActivity.class,
"num", getIntent().getStringExtra("num"),
startActivity(ReturnAddActivity.class,
"returnNum", getIntent().getStringExtra("returnNum"),
"orderType", getIntent().getStringExtra("orderType"),
"productId", getIntent().getStringExtra("productId"),
"simpleCode", getIntent().getStringExtra("simpleCode"),
"orderItemId", getIntent().getStringExtra("orderItemId"),
"enterStockType", getIntent().getStringExtra("enterStockType"),
"id", getIntent().getStringExtra("orderId"));
break;
}
......
......@@ -284,6 +284,7 @@ public class SaleOrderDetailActivity extends WorkToolBarActivity {
"product", proList.get(position).getProductName(),
"simpleCode", proList.get(position).getProductSimpleCode(),
"orderId", getIntent().getStringExtra("id"),
"orderItemId", proList.get(position).getId(),
"productId", proList.get(position).getProductId() + "");
break;
case R.id.tv_flow:
......
......@@ -273,6 +273,7 @@ public class SupplierOrderDetailActivity extends WorkToolBarActivity {
"product", proList.get(position).getProductName(),
"simpleCode", proList.get(position).getProductSimpleCode(),
"orderId", getIntent().getStringExtra("id"),
"orderItemId", proList.get(position).getId(),
"productId", proList.get(position).getProductId() + "");
break;
case R.id.tv_flow:
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_bottom"
android:layout_width="match_parent"
android:layout_height="48mm"
android:layout_alignParentBottom="true"
android:background="#5C768A"
android:gravity="center"
android:orientation="horizontal"
android:text="提交退货申请"
android:textColor="@color/white"
android:textSize="16sp" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/tv_bottom"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="9mm">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退货数量"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_max_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5mm"
android:text="*退货最大数量(0)"
android:textColor="@color/red"
android:textSize="10sp" />
</LinearLayout>
<EditText
android:id="@+id/et_num"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="10mm"
android:layout_weight="1"
android:background="@null"
android:gravity="right"
android:hint="输入数量"
android:inputType="numberDecimal"
android:padding="3mm"
android:textColor="@color/flexible_text_gray"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="9mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退货类别"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_return_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10mm"
android:layout_weight="1"
android:background="@null"
android:gravity="right"
android:padding="3mm"
android:textColor="@color/flexible_text_gray"
android:textSize="14sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/arrow_right_gray" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_choose_stock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="9mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退货到仓库"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_stock"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10mm"
android:layout_weight="1"
android:background="@null"
android:gravity="right"
android:hint="请选择仓库"
android:padding="3mm"
android:textColor="@color/flexible_text_gray"
android:textSize="14sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/arrow_right_gray" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_money"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="20mm"
android:paddingVertical="9mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="填写核销金额"
android:textSize="14sp" />
<EditText
android:id="@+id/et_price"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10mm"
android:layout_weight="1"
android:background="@null"
android:gravity="right"
android:hint="填写核销金额"
android:inputType="numberDecimal"
android:padding="3mm"
android:textColor="@color/flexible_text_gray"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="20mm"
android:paddingVertical="10mm"
android:text="退货原因"
android:textSize="14sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20mm"
android:background="@drawable/shape_confirm_order"
android:orientation="vertical">
<EditText
android:id="@+id/et_remark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3mm"
android:background="@null"
android:gravity="top"
android:hint="请输入"
android:minLines="4"
android:padding="5mm"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_remark_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_margin="4mm"
android:text="0/140"
android:textColor="@color/flexible_text_gray" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论