提交 99ee6ad6 authored 作者: lgd's avatar lgd

1.物流操作

2.//TODO erp用户激活测试,忘记/重置密码测试,开票收票操作,产品下单还差附件,bat,mes,消息,刷新token,开票/收票接口
上级 8e8dc45b
......@@ -659,7 +659,7 @@
<activity
android:name=".ui.activity.bat.work.WorkFinancialTicketDetailActivity"
android:configChanges="keyboardHidden|orientation"
android:label="开票管理"
android:label="开票申请"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
......@@ -667,11 +667,20 @@
<activity
android:name=".ui.activity.bat.work.WorkFinancialReceiveTicketDetailActivity"
android:configChanges="keyboardHidden|orientation"
android:label="收票管理"
android:label="收票申请"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.work.WorkLogisticsDetailActivity"
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 LogisticDetailBean {
/**
* records : [{"createdBy":null,"createdByName":null,"createdTime":"2020-01-14 15:20:57","updatedBy":null,"updatedByName":null,"updatedTime":null,"id":64,"receiveDeptId":null,"logisticsId":null,"launchDeptId":null,"customerId":null,"sendOutStoreApplyId":null,"processCode":"SO","status":"1","launchDeptName":"销售一公司","receiveDeptName":"锆碳公司","customerName":"安阳钢铁","logisticsName":"圆通物流1","createdUser":"冷益飞","trackingNumber":"1","weight":35,"fareMoney":1000,"idList":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 : null
* createdByName : null
* createdTime : 2020-01-14 15:20:57
* updatedBy : null
* updatedByName : null
* updatedTime : null
* id : 64
* receiveDeptId : null
* logisticsId : null
* launchDeptId : null
* customerId : null
* sendOutStoreApplyId : null
* processCode : SO
* status : 1
* launchDeptName : 销售一公司
* receiveDeptName : 锆碳公司
* customerName : 安阳钢铁
* logisticsName : 圆通物流1
* createdUser : 冷益飞
* trackingNumber : 1
* weight : 35.0
* fareMoney : 1000.0
* idList : null
*/
private Object createdBy;
private Object createdByName;
private String createdTime;
private Object updatedBy;
private Object updatedByName;
private Object updatedTime;
private int id;
private Object receiveDeptId;
private Object logisticsId;
private Object launchDeptId;
private Object customerId;
private Object sendOutStoreApplyId;
private String processCode;
private String status;
private String launchDeptName;
private String receiveDeptName;
private String customerName;
private String logisticsName;
private String createdUser;
private String trackingNumber;
private double weight;
private double fareMoney;
private Object idList;
public Object getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Object 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 Object getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(Object updatedBy) {
this.updatedBy = updatedBy;
}
public Object getUpdatedByName() {
return updatedByName;
}
public void setUpdatedByName(Object updatedByName) {
this.updatedByName = updatedByName;
}
public Object getUpdatedTime() {
return updatedTime;
}
public void setUpdatedTime(Object updatedTime) {
this.updatedTime = updatedTime;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Object getReceiveDeptId() {
return receiveDeptId;
}
public void setReceiveDeptId(Object receiveDeptId) {
this.receiveDeptId = receiveDeptId;
}
public Object getLogisticsId() {
return logisticsId;
}
public void setLogisticsId(Object logisticsId) {
this.logisticsId = logisticsId;
}
public Object getLaunchDeptId() {
return launchDeptId;
}
public void setLaunchDeptId(Object launchDeptId) {
this.launchDeptId = launchDeptId;
}
public Object getCustomerId() {
return customerId;
}
public void setCustomerId(Object customerId) {
this.customerId = customerId;
}
public Object getSendOutStoreApplyId() {
return sendOutStoreApplyId;
}
public void setSendOutStoreApplyId(Object sendOutStoreApplyId) {
this.sendOutStoreApplyId = sendOutStoreApplyId;
}
public String getProcessCode() {
return processCode;
}
public void setProcessCode(String processCode) {
this.processCode = processCode;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getLaunchDeptName() {
return launchDeptName;
}
public void setLaunchDeptName(String launchDeptName) {
this.launchDeptName = launchDeptName;
}
public String getReceiveDeptName() {
return receiveDeptName;
}
public void setReceiveDeptName(String receiveDeptName) {
this.receiveDeptName = receiveDeptName;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getLogisticsName() {
return logisticsName;
}
public void setLogisticsName(String logisticsName) {
this.logisticsName = logisticsName;
}
public String getCreatedUser() {
return createdUser;
}
public void setCreatedUser(String createdUser) {
this.createdUser = createdUser;
}
public String getTrackingNumber() {
return trackingNumber;
}
public void setTrackingNumber(String trackingNumber) {
this.trackingNumber = trackingNumber;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public double getFareMoney() {
return fareMoney;
}
public void setFareMoney(double fareMoney) {
this.fareMoney = fareMoney;
}
public Object getIdList() {
return idList;
}
public void setIdList(Object idList) {
this.idList = idList;
}
}
}
package com.wd.workoffice.bean.event;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class CheckLogisticEvent {
public CheckLogisticEvent() {
}
}
package com.wd.workoffice.bean.event;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class CheckTicketEvent {
public CheckTicketEvent() {
}
}
......@@ -535,7 +535,21 @@ public interface ApiService {
*/
@GET("/invoiceApply/co/exam")
Observable<BaseBean> coExam(@QueryMap Map<String, Object> param );
/**
* Fo收票审核
*
* @return
*/
@GET("/receiptInvoiceApply/fo/exam")
Observable<BaseBean> receiveFoExam(@QueryMap Map<String, Object> param );
/**
* po收票审核
*
* @return
*/
@GET("/receiptInvoiceApply/po/exam")
Observable<BaseBean> receivePoExam(@QueryMap Map<String, Object> param );
/**
* 外采购收票分页列表
......@@ -661,5 +675,25 @@ public interface ApiService {
@GET("/receiptInvoiceApplyItem/list")
Observable<BaseBean> ticketReceiveDetail(@Query("applyId")String applyId );
/**
* 获取运费开票详情(开票的运费记录)
*
* @return
*/
@GET("/finance-logistics-apply/detail/page/list")
Observable<BaseBean> logisticsDetail(@Query("applyId")String applyId );
/**
* 审批开票申请
*id
* status 未处理:0 通过:1 驳回:2
* remark
* invoiceNumber
* @return
*/
@PUT("/finance-logistics-apply")
Observable<BaseBean> logisticsCheck(@Body RequestBody requestBody);
}
......@@ -12,6 +12,7 @@ import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.TicketBean;
import com.wd.workoffice.bean.event.CheckTicketEvent;
import com.wd.workoffice.bean.listener.ThreeMenuClickListener;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
......@@ -23,6 +24,9 @@ import com.wd.workoffice.util.ddmfilter.FinancialReceiveTicketFilterData;
import com.wd.workoffice.util.ddmfilter.FinancialTicketFilterData;
import com.wd.workoffice.widget.DropDownMenu;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -164,7 +168,7 @@ public class WorkFinancialReceiveTicketActivity extends WorkToolBarActivity {
dataAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
startActivity(WorkFinancialReceiveTicketDetailActivity.class, "info", JSON.toJSONString(dataList.get(position)));
startActivity(WorkFinancialReceiveTicketDetailActivity.class,"type",orderType, "info", JSON.toJSONString(dataList.get(position)));
}
});
}
......@@ -190,4 +194,23 @@ public class WorkFinancialReceiveTicketActivity extends WorkToolBarActivity {
}
return super.onOptionsItemSelected(item);
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(CheckTicketEvent event) {
page = 1;
param.put("current", page);
getData();
}
}
package com.wd.workoffice.ui.activity.bat.work;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
......@@ -12,19 +16,26 @@ import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.TicketBean;
import com.wd.workoffice.bean.TicketDetailBean;
import com.wd.workoffice.bean.event.CheckTicketEvent;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.WorkFinancialTicketDetailAdapter;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager;
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.Observable;
import io.reactivex.disposables.Disposable;
/**
......@@ -54,7 +65,8 @@ public class WorkFinancialReceiveTicketDetailActivity extends WorkToolBarActivit
TextView tvDesc;
private List<TicketDetailBean> dataList;
private WorkFinancialTicketDetailAdapter dataAdapter;
private Map<String, Object> param;
private String orderType;
@Override
protected void initView() {
ButterKnife.bind(this);
......@@ -78,6 +90,9 @@ public class WorkFinancialReceiveTicketDetailActivity extends WorkToolBarActivit
dataList = new ArrayList<>();
dataAdapter = new WorkFinancialTicketDetailAdapter(R.layout.item_ticket_detail, dataList);
dataAdapter.bindToRecyclerView(rvData);
param = new HashMap<>();
param.put("id", getIntent().getStringExtra("id"));
orderType = getIntent().getStringExtra("type");
}
......@@ -124,9 +139,94 @@ public class WorkFinancialReceiveTicketDetailActivity extends WorkToolBarActivit
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_refuse:
checkDialog(2);
break;
case R.id.tv_agree:
checkDialog(1);
break;
}
}
private void checkDialog(int status) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.view_check, null);
TextView tvOk = view.findViewById(R.id.tv_ok);
TextView tvDesc = view.findViewById(R.id.tv_desc);
tvDesc.setText(status == 1 ? "通过" : "拒绝");
TextView tvNum = view.findViewById(R.id.tv_num);
TextView tvCancel = view.findViewById(R.id.tv_cancel);
EditText etRemark = view.findViewById(R.id.et_content);
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) {
tvNum.setText(s.length() + "/140");
}
});
builder.setView(view);
AlertDialog addCartDialog = builder.create();
tvOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.isEmpty(etRemark.getText().toString())) {
toast("请填写备注");
return;
}
check(status, etRemark.getText().toString());
addCartDialog.dismiss();
}
});
tvCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addCartDialog.dismiss();
}
});
addCartDialog.show();
}
private void check(int status, String remark) {
param.put("status", status);
param.put("auditRemark", remark);
Observable<BaseBean> baseBeanObservable;
if (TextUtils.equals(orderType, "供应订单")) {
baseBeanObservable = RtfUtils.getRtf().receiveFoExam(param);
} else if (TextUtils.equals(orderType, "外采购订单")) {
baseBeanObservable = RtfUtils.getRtf().receivePoExam(param);
} else {
baseBeanObservable = RtfUtils.getRtf().receiveFoExam(param);
}
baseBeanObservable.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 CheckTicketEvent());
finish();
}
});
}
}
......@@ -13,6 +13,8 @@ import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.MoneyOutBean;
import com.wd.workoffice.bean.TicketBean;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.event.CheckTicketEvent;
import com.wd.workoffice.bean.listener.ThreeMenuClickListener;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
......@@ -25,6 +27,9 @@ import com.wd.workoffice.util.ddmfilter.FinancialOutFilterData;
import com.wd.workoffice.util.ddmfilter.FinancialTicketFilterData;
import com.wd.workoffice.widget.DropDownMenu;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -168,7 +173,7 @@ public class WorkFinancialTicketActivity extends WorkToolBarActivity {
dataAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
startActivity(WorkFinancialTicketDetailActivity.class, "info", JSON.toJSONString(dataList.get(position)));
startActivity(WorkFinancialTicketDetailActivity.class, "type",orderType, "info", JSON.toJSONString(dataList.get(position)));
}
});
}
......@@ -194,4 +199,23 @@ public class WorkFinancialTicketActivity extends WorkToolBarActivity {
}
return super.onOptionsItemSelected(item);
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(CheckTicketEvent event) {
page = 1;
param.put("current", page);
getData();
}
}
package com.wd.workoffice.ui.activity.bat.work;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
......@@ -13,15 +17,21 @@ import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.AccountBean;
import com.wd.workoffice.bean.TicketBean;
import com.wd.workoffice.bean.TicketDetailBean;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.event.CheckTicketEvent;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.WorkFinancialTicketDetailAdapter;
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 androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
......@@ -82,8 +92,7 @@ public class WorkFinancialTicketDetailActivity extends WorkToolBarActivity {
dataAdapter = new WorkFinancialTicketDetailAdapter(R.layout.item_ticket_detail, dataList);
dataAdapter.bindToRecyclerView(rvData);
param = new HashMap<>();
param.put("id",getIntent().getStringExtra("id"));
param.put("id",getIntent().getStringExtra("id"));
param.put("id", getIntent().getStringExtra("id"));
orderType = getIntent().getStringExtra("type");
}
......@@ -125,21 +134,69 @@ public class WorkFinancialTicketDetailActivity extends WorkToolBarActivity {
}
@OnClick({R.id.tv_refuse, R.id.tv_agree})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_refuse:
exam(2);
checkDialog(2);
break;
case R.id.tv_agree:
exam(1);
checkDialog(1);
break;
}
}
private void exam(int status){
param.put("status",status);
private void checkDialog(int status) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.view_check, null);
TextView tvOk = view.findViewById(R.id.tv_ok);
TextView tvDesc = view.findViewById(R.id.tv_desc);
tvDesc.setText(status == 1 ? "通过" : "拒绝");
TextView tvNum = view.findViewById(R.id.tv_num);
TextView tvCancel = view.findViewById(R.id.tv_cancel);
EditText etRemark = view.findViewById(R.id.et_content);
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) {
tvNum.setText(s.length() + "/140");
}
});
builder.setView(view);
AlertDialog addCartDialog = builder.create();
tvOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.isEmpty(etRemark.getText().toString())) {
toast("请填写备注");
return;
}
check(status, etRemark.getText().toString());
addCartDialog.dismiss();
}
});
tvCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addCartDialog.dismiss();
}
});
addCartDialog.show();
}
private void check(int status, String remark) {
param.put("status", status);
param.put("auditRemark", remark);
Observable<BaseBean> baseBeanObservable;
if (TextUtils.equals(orderType, "销售订单")) {
baseBeanObservable = RtfUtils.getRtf().soExam(param);
......@@ -169,6 +226,8 @@ public class WorkFinancialTicketDetailActivity extends WorkToolBarActivity {
return;
}
toast("操作成功");
EventBus.getDefault().post(new CheckTicketEvent());
finish();
}
});
}
......
......@@ -87,5 +87,4 @@ public class WorkLogisticActivity extends WorkToolBarActivity {
}
return super.onOptionsItemSelected(item);
}
}
package com.wd.workoffice.ui.activity.bat.work;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.LogisticBean;
import com.wd.workoffice.bean.LogisticDetailBean;
import com.wd.workoffice.bean.ProPriceBean;
import com.wd.workoffice.bean.TicketDetailBean;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.workEnum.OrderType;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.WorkFinancialTicketDetailAdapter;
import com.wd.workoffice.ui.adapter.WorkLogisticDetailAdapter;
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 androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager;
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.Observable;
import io.reactivex.disposables.Disposable;
/**
* 工作台 - 物流详情
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkLogisticsDetailActivity extends WorkToolBarActivity {
@BindView(R.id.tv_refuse)
TextView tvRefuse;
@BindView(R.id.tv_agree)
TextView tvAgree;
@BindView(R.id.ll_bottom)
LinearLayout llBottom;
@BindView(R.id.tv_company)
TextView tvCompany;
@BindView(R.id.tv_desc)
TextView tvDesc;
@BindView(R.id.tv_receive_dep)
TextView tvReceiveDep;
@BindView(R.id.tv_process)
TextView tvProcess;
@BindView(R.id.rv_data)
RecyclerView rvData;
@BindView(R.id.tv_logistics_price)
TextView tvLogisticsPrice;
@BindView(R.id.tv_weight)
TextView tvWeight;
@BindView(R.id.tv_location)
TextView tvLocation;
@BindView(R.id.tv_ticket)
TextView tvTicket;
@BindView(R.id.tv_code)
TextView tvCode;
private List<LogisticDetailBean.RecordsBean> dataList;
private WorkLogisticDetailAdapter dataAdapter;
private Map<String, Object> param;
private String orderType;
@Override
protected void initView() {
ButterKnife.bind(this);
rvData.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
LogisticBean.RecordsBean info = JSON.parseObject(getIntent().getStringExtra("info"), LogisticBean.RecordsBean.class);
getData(info.getId() + "");
tvCompany.setText(info.getLogisticsName());
tvReceiveDep.setText(info.getReceiveDeptName());
tvProcess.setText(WorkUtils.getOrderName(info.getProcessCode()));
tvLogisticsPrice.setText(String.valueOf(info.getApplyAmount()));
tvWeight.setText(String.valueOf(info.getTotalWeight()));
tvLocation.setText(info.getDistributionSite());
tvTicket.setText(info.getIssuingUnit());
tvCode.setText(info.getInvoiceNumber());
if (TextUtils.equals(info.getStatus(), "0")) {
llBottom.setVisibility(View.VISIBLE);
} else {
llBottom.setVisibility(View.GONE);
}
dataList = new ArrayList<>();
dataAdapter = new WorkLogisticDetailAdapter(R.layout.item_logistics_detail, dataList);
dataAdapter.bindToRecyclerView(rvData);
param = new HashMap<>();
param.put("id", info.getId());
param.put("invoiceNumber", info.getInvoiceNumber());
orderType = getIntent().getStringExtra("type");
}
private void getData(String id) {
RtfUtils.getRtf().logisticsDetail(id).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;
}
List<LogisticDetailBean.RecordsBean> dataBean = JSON.parseObject(data.getData().toString(), LogisticDetailBean.class).getRecords();
dataList.addAll(dataBean);
dataAdapter.notifyDataSetChanged();
}
});
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_work_logistics_detail;
}
@OnClick({R.id.tv_refuse, R.id.tv_agree})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_refuse:
checkDialog(2);
break;
case R.id.tv_agree:
checkDialog(1);
break;
}
}
private void checkDialog(int status) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.view_check, null);
TextView tvOk = view.findViewById(R.id.tv_ok);
TextView tvDesc = view.findViewById(R.id.tv_desc);
tvDesc.setText(status == 1 ? "通过" : "拒绝");
TextView tvNum = view.findViewById(R.id.tv_num);
TextView tvCancel = view.findViewById(R.id.tv_cancel);
EditText etRemark = view.findViewById(R.id.et_content);
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) {
tvNum.setText(s.length() + "/140");
}
});
builder.setView(view);
AlertDialog addCartDialog = builder.create();
tvOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.isEmpty(etRemark.getText().toString())) {
toast("请填写备注");
return;
}
check(status, etRemark.getText().toString());
addCartDialog.dismiss();
}
});
tvCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addCartDialog.dismiss();
}
});
addCartDialog.show();
}
private void check(int status, String remark) {
param.put("status", status);
param.put("remark", remark);
RtfUtils.getRtf().logisticsCheck(WorkUtils.convertMapToBody(param)).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;
}
EventBus.getDefault().post(new CheckLogisticEvent());
toast("操作成功");
finish();
}
});
}
}
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.LogisticBean;
import com.wd.workoffice.bean.LogisticDetailBean;
import com.wd.workoffice.bean.workEnum.OrderType;
import com.wd.workoffice.util.WorkUtils;
import java.util.List;
/**
* Created by flexible on 2018/8/13.
*/
public class WorkLogisticDetailAdapter extends BaseQuickAdapter<LogisticDetailBean.RecordsBean, BaseViewHolder> {
public WorkLogisticDetailAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, LogisticDetailBean.RecordsBean item) {
helper.setText(R.id.tv_company, item.getLaunchDeptName());
helper.setText(R.id.tv_client, item.getCustomerName());
helper.setText(R.id.tv_name, "快递单号:"+item.getTrackingNumber());
helper.setText(R.id.tv_weight, String.valueOf(item.getWeight()));
helper.setText(R.id.tv_tax, String.valueOf(item.getFareMoney()));
helper.setText(R.id.tv_person, item.getCreatedUser());
}
}
......@@ -12,15 +12,21 @@ import com.wd.workoffice.app.WorkBaseFg;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.LogisticBean;
import com.wd.workoffice.bean.ProPriceBean;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.event.FreezeEvent;
import com.wd.workoffice.contract.WorkContactsContract;
import com.wd.workoffice.presenter.WorkContactsPresenter;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.activity.bat.work.WorkContactsDetailActivity;
import com.wd.workoffice.ui.activity.bat.work.WorkLogisticsDetailActivity;
import com.wd.workoffice.ui.adapter.WorkContactsAdapter;
import com.wd.workoffice.ui.adapter.WorkLogisticAdapter;
import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -135,9 +141,7 @@ public class WorkLogisticsFragment extends WorkBaseFg {
dataAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
// startActivity(WorkContactsDetailActivity.class,
// "id",dataList.get(position).getId()+"",
// "partTypeNames", partTypeNames,"title",dataList.get(position).getName());
startActivity(WorkLogisticsDetailActivity.class, "info",JSON.toJSONString(dataList.get(position)));
}
});
}
......@@ -148,4 +152,22 @@ public class WorkLogisticsFragment extends WorkBaseFg {
return R.layout.fg_work_contacts;
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(CheckLogisticEvent event) {
page = 1;
param.put("current", page);
getData();
}
}
......@@ -120,6 +120,21 @@ public class WorkUtils {
}
return code;
}
/**
* name:订单code
*
* @param code
* @return
*/
public static String getOrderName(String code) {
String name ="";
for (OrderType value : OrderType.values()) {
if (TextUtils.equals(value.getCode(),code)){
name=value.getName();
}
}
return name;
}
/**
* 财务状态
* 0未审核 1已通过 2不通过
......
<?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_centerHorizontal="true"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingTop="10mm"
android:paddingBottom="20mm">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5mm"
android:text="邢台德龙钢铁客户"
android:textSize="16sp"
android:textStyle="bold" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="14mm"
android:background="#FCFCFD"
android:orientation="vertical"
android:paddingVertical="10mm">
<RelativeLayout
android:id="@+id/rl_dep"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10mm"
android:text="销售公司"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_company"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm"
android:paddingHorizontal="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10mm"
android:text="客户名称"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_client"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm"
android:paddingHorizontal="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10mm"
android:text="发货重量"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_weight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm"
android:paddingHorizontal="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10mm"
android:text="运费"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_tax"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm"
android:paddingHorizontal="10mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10mm"
android:text="审批人"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_person"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?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="match_parent"
android:background="#d1f8f8f8"
android:orientation="vertical">
<TextView
android:id="@+id/tv_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20mm"
android:gravity="center"
android:text="修改内部价格"
android:textSize="17sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20mm"
android:layout_marginTop="10mm"
android:background="@drawable/shape_confirm_order"
android:orientation="vertical">
<EditText
android:id="@+id/et_content"
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_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
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30mm"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:paddingVertical="15mm"
android:text="取消"
android:textColor="#007AFF"
android:textSize="17sp" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#D8DCE6" />
<TextView
android:id="@+id/tv_ok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:paddingVertical="15mm"
android:text="确定"
android:textColor="#007AFF"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论