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

1.所有账户

2.//TODO erp用户激活测试,忘记/重置密码测试,产品下单还差附件,bat,mes,消息,刷新token,开票/收票接口
上级 6ae89711
......@@ -616,6 +616,39 @@
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.work.WorkFinancialTicketActivity"
android:configChanges="keyboardHidden|orientation"
android:label="开票管理"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.work.WorkFinancialReceiveTicketActivity"
android:configChanges="keyboardHidden|orientation"
android:label="收票管理"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.work.WorkFinancialAccountActivity"
android:configChanges="keyboardHidden|orientation"
android:label="所有账户"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.work.WorkFinancialFreezeActivity"
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.event;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class FreezeEvent {
public FreezeEvent() {
}
}
package com.wd.workoffice.presenter;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.ActivationUserBean;
import com.wd.workoffice.contract.BatSaleContract;
import com.wd.workoffice.contract.ErpActivationContract;
import com.wd.workoffice.model.ErpActivationModel;
......@@ -39,7 +41,7 @@ public class ErpActivationPresenter extends BasePresenter<ErpActivationContract
mView.onError(data.getMessage());
return;
}
mView.getInfo(data);
mView.getInfo(JSON.parseObject(data.getData().toString(), ActivationUserBean.class));
}
});
}
......
......@@ -66,7 +66,6 @@ public interface ApiService {
Observable<BaseBean> preActivationUser(@Path("phone") String phone);
/**
* 忘记密码(短信验证码的方式,重置密码)
*
......@@ -112,6 +111,7 @@ public interface ApiService {
*/
@GET("/open/pre-activation/{phone}")
Observable<BaseBean> getInfo(@Path("phone") String phone);
/**
* 激活用户
*
......@@ -120,6 +120,14 @@ public interface ApiService {
@POST("/open/activation-user")
Observable<BaseBean> activation(@QueryMap Map<String, Object> param);
/**
* 激活用户
*
* @return
*/
@POST("/oauth/token?grant_type=refresh_token")
Observable<BaseBean> refreshToken(@QueryMap Map<String, Object> param);
/**
* 部门列表
*
......@@ -464,6 +472,14 @@ public interface ApiService {
@GET("/invoiceApply/app/page/list/part")
Observable<BaseBean> openTicket(@QueryMap Map<String, Object> param);
/**
* app端从往来单位进入查看开票单
*
* @return
*/
@GET("/invoiceApply/app/page/list")
Observable<BaseBean> openTicketFinancial(@QueryMap Map<String, Object> param);
/**
* 库存数量:一个仓库里的产品列表
*
......@@ -471,6 +487,7 @@ public interface ApiService {
*/
@GET("/stockQuantity/app/page/list")
Observable<BaseBean> stockList(@QueryMap Map<String, Object> param);
/**
* 库存数量明细:一个仓库下一个产品里的订单列表
*
......@@ -501,7 +518,7 @@ public interface ApiService {
* @return
*/
@GET("/stockQuantity/app/oneOfOrder/{orderId}")
Observable<BaseBean> stockDetailFlow(@Path("orderId")String id , @Query("orderType") String orderType);
Observable<BaseBean> stockDetailFlow(@Path("orderId") String id, @Query("orderType") String orderType);
/**
* 获取当前用户的角色,数据、部门权限列表
......@@ -526,4 +543,23 @@ public interface ApiService {
*/
@GET("/moneyPayApply/page/list")
Observable<BaseBean> moneyPay(@QueryMap Map<String, Object> param);
/**
* 获取所有部门账户列表(分页)
*
* @return
*/
@GET("/dept-account-balance/page/list")
Observable<BaseBean> account(@QueryMap Map<String, Object> param);
/**
* app端冻结解冻当前用户所在部门的可用余额
* action冻结(1)解冻(-1)动作判断
* amount操作金额(冻结解冻可用余额)
*
* @return
*/
@PUT("/dept-account-balance/balance")
Observable<BaseBean> freezeOrUnfreezeBalanceShelf(@Body RequestBody requestBody);
}
package com.wd.workoffice.ui.activity.bat.work;
import android.view.View;
import com.alibaba.fastjson.JSON;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.AllAccountBean;
import com.wd.workoffice.bean.ProPriceBean;
import com.wd.workoffice.bean.event.FreezeEvent;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.WorkFinancialAccountAdapter;
import com.wd.workoffice.ui.adapter.WorkProPriceAdapter;
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;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
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 WorkFinancialAccountActivity extends WorkToolBarActivity {
@BindView(R.id.rv_data)
RecyclerView rvData;
@BindView(R.id.srl_refresh)
SmartRefreshLayout srlRefresh;
private Map<String, Object> param;
private List<AllAccountBean.RecordsBean> dataList;
private WorkFinancialAccountAdapter dataAdapter;
private int page = 1;
@Override
protected void initView() {
ButterKnife.bind(this);
rvData.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
dataList = new ArrayList<>();
dataAdapter = new WorkFinancialAccountAdapter(R.layout.item_work_all_account, dataList);
dataAdapter.bindToRecyclerView(rvData);
dataAdapter.setEmptyView(R.layout.view_empty_content, rvData);
param = WorkUtils.pageKey();
param.put("current", page);
getData();
}
private void getData() {
RtfUtils.getRtf().account(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;
}
List<AllAccountBean.RecordsBean> getList = JSON.parseObject(data.getData().toString(), AllAccountBean.class).getRecords();
if (page == 1) {
srlRefresh.finishRefresh();
dataList.clear();
dataList.addAll(getList);
dataAdapter.notifyDataSetChanged();
dataAdapter.loadMoreComplete();
} else {
dataAdapter.loadMoreComplete();
dataList.addAll(getList);
dataAdapter.notifyDataSetChanged();
}
if (getList.size() == 0) {
dataAdapter.loadMoreEnd();
} else {
page++;
}
}
});
}
@Override
protected void initEvent() {
srlRefresh.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
page = 1;
param.put("current", page);
getData();
}
});
dataAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
@Override
public void onLoadMoreRequested() {
param.put("current", page);
getData();
}
}, rvData);
dataAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
switch (view.getId()) {
case R.id.tv_see_flow:
startActivity(WorkAccountFlowActivity.class, "id", dataList.get(position).getDeptId() + "");
break;
case R.id.tv_thaw:
startActivity(WorkFinancialFreezeActivity.class, "info", JSON.toJSONString(dataList.get(position)),
"type", "-1");
break;
case R.id.tv_freeze:
startActivity(WorkFinancialFreezeActivity.class, "info", JSON.toJSONString(dataList.get(position)),
"type", "1");
break;
}
}
});
}
@Override
protected int layoutId() {
return R.layout.activity_pro_price;
}
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
protected void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(FreezeEvent event) {
page = 1;
param.put("current", page);
getData();
}
}
......@@ -62,10 +62,13 @@ public class WorkFinancialActivity extends WorkToolBarActivity {
startActivity(WorkFinancialPayActivity.class);
break;
case R.id.ll_open_ticket:
startActivity(WorkFinancialTicketActivity.class);
break;
case R.id.ll_receive_ticket:
startActivity(WorkFinancialReceiveTicketActivity.class);
break;
case R.id.ll_account:
startActivity(WorkFinancialAccountActivity.class);
break;
case R.id.ll_logistics:
break;
......
package com.wd.workoffice.ui.activity.bat.work;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
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.AllAccountBean;
import com.wd.workoffice.bean.event.FreezeEvent;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.util.MathUtils;
import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import java.util.HashMap;
import java.util.Map;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
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 WorkFinancialFreezeActivity extends WorkToolBarActivity {
@BindView(R.id.tv_name)
TextView tvName;
@BindView(R.id.tv_dep_price)
TextView tvDepPrice;
@BindView(R.id.tv_dep_freeze_price)
TextView tvDepFreezePrice;
@BindView(R.id.ll_bottom)
LinearLayout llBottom;
@BindView(R.id.tv_desc)
TextView tvDesc;
@BindView(R.id.et_price)
EditText etPrice;
@BindView(R.id.tv_max)
TextView tvMax;
@BindView(R.id.tv_all)
TextView tvAll;
@BindView(R.id.btn_ok)
Button btnOk;
@BindView(R.id.tv_price_desc)
TextView tvPriceDesc;
private AllAccountBean.RecordsBean info;
private String type;
private Map<String, Object> param;
@Override
protected void initView() {
// action冻结(1)解冻(-1)动作判断
// * amount操作金额(冻结解冻可用余额)
ButterKnife.bind(this);
param = new HashMap<>();
info = JSON.parseObject(getIntent().getStringExtra("info"), AllAccountBean.RecordsBean.class);
type = getIntent().getStringExtra("type");//冻结(1)解冻(-1)
param.put("action", type);
param.put("id", info.getId());
tvDepPrice.setText(MathUtils.converData(info.getBalance(), 3));
tvName.setText(info.getName());
changeView();
}
private void changeView() {//冻结(1)解冻(-1)
if (TextUtils.equals("-1", type)) {
tvDesc.setText("解冻金额");
tvAll.setText("全部解冻");
btnOk.setText("解冻");
setTitle("解冻");
tvPriceDesc.setText("已冻结余额");
tvMax.setText("最多可解冻¥ " + MathUtils.converData(info.getFrozenAmount(), 3));
tvDepFreezePrice.setText(MathUtils.converData(info.getFrozenAmount(), 3));
} else {
setTitle("冻结");
tvPriceDesc.setText("可用余额");
tvDesc.setText("冻结金额");
tvDepFreezePrice.setText(MathUtils.converData(info.getBalance(), 3));
tvAll.setText("全部冻结");
btnOk.setText("冻结");
tvMax.setText("最多可冻结¥ " + MathUtils.converData(info.getBalance(), 3));
}
}
@Override
protected void initData() {
}
private void getData() {
param.put("amount", etPrice.getText().toString());
RtfUtils.getRtf().freezeOrUnfreezeBalanceShelf(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;
}
toast("操作成功");
EventBus.getDefault().post(new FreezeEvent());
finish();
}
});
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_work_financial_freeze;
}
@OnClick({R.id.tv_all, R.id.btn_ok})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_all:
if (TextUtils.equals("-1", type)) {
etPrice.setText(MathUtils.converData(info.getFrozenAmount(), 3));
} else {
etPrice.setText(MathUtils.converData(info.getBalance(), 3));
}
break;
case R.id.btn_ok:
String price = etPrice.getText().toString();
if (TextUtils.isEmpty(price)) {
toast("请输入操作金额");
return;
}
if (Double.valueOf(price) == 0d) {
toast("操作金额不能为0");
return;
}
getData();
break;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) invocation
ButterKnife.bind(this);
}
}
package com.wd.workoffice.ui.activity.bat.work;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
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.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.TicketBean;
import com.wd.workoffice.bean.listener.ThreeMenuClickListener;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.WorkTicketAdapter;
import com.wd.workoffice.util.WorkUtils;
import com.wd.workoffice.util.ddmfilter.FinancialReceiveTicketFilterData;
import com.wd.workoffice.util.ddmfilter.FinancialTicketFilterData;
import com.wd.workoffice.widget.DropDownMenu;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
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 WorkFinancialReceiveTicketActivity extends WorkToolBarActivity {
@BindView(R.id.ddm_choose)
DropDownMenu ddmChoose;
private RecyclerView rvData;
private int page = 1;
private Map<String, Object> param;
private SmartRefreshLayout srlRefresh;
private List<TicketBean.RecordsBean> dataList;
private WorkTicketAdapter dataAdapter;
@Override
protected void initView() {
ButterKnife.bind(this);
FinancialReceiveTicketFilterData filterData = new FinancialReceiveTicketFilterData(this,ddmChoose, new ThreeMenuClickListener() {
@Override
public void clickOne(String value) {
param.put("orderType", WorkUtils.getOrderCode(value));
page = 1;
param.put("current", page);
getData();
}
@Override
public void clickTwo(String value) {
//0未审核 1已通过 2不通过
if (TextUtils.equals(value, "全部状态")) {
param.put("status", "");
} else if (TextUtils.equals(value, "待审核")) {
param.put("status", "0");
} else if (TextUtils.equals(value, "已通过")) {
param.put("status", "1");
} else {
param.put("status", "2");
}
page = 1;
param.put("current", page);
getData();
}
@Override
public void clickThree(String value) {
}
});
rvData = filterData.getRvData();
srlRefresh = filterData.getSrlRefresh();
}
@Override
protected void initData() {
dataList = new ArrayList<>();
dataAdapter = new WorkTicketAdapter(R.layout.item_work_ticket, dataList);
dataAdapter.bindToRecyclerView(rvData);
dataAdapter.setEmptyView(R.layout.view_empty_content, rvData);
param = WorkUtils.pageKey();
param.put("current", page);
param.put("orderType", "FO");
getData();
}
private void getData() {
RtfUtils.getRtf().openTicketFinancial(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;
}
List<TicketBean.RecordsBean> getList = JSON.parseObject(data.getData().toString(), TicketBean.class).getRecords();
if (page == 1) {
srlRefresh.finishRefresh();
dataList.clear();
dataList.addAll(getList);
dataAdapter.notifyDataSetChanged();
dataAdapter.loadMoreComplete();
} else {
dataAdapter.loadMoreComplete();
dataList.addAll(getList);
dataAdapter.notifyDataSetChanged();
}
if (getList.size() == 0) {
dataAdapter.loadMoreEnd();
} else {
page++;
}
}
});
}
@Override
protected void initEvent() {
srlRefresh.setOnRefreshListener(refreshLayout -> {
page = 1;
param.put("current", page);
getData();
});
dataAdapter.setOnLoadMoreListener(() -> {
param.put("current", page);
getData();
}, rvData);
dataAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
startActivity(WorkFinancialDetailActivity.class,"detail",JSON.toJSONString(dataList.get(position)));
}
});
}
@Override
protected int layoutId() {
return R.layout.fg_work_pro;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_add, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add:
// startActivity(WorkInStockSearchActivity.class);
break;
}
return super.onOptionsItemSelected(item);
}
}
package com.wd.workoffice.ui.activity.bat.work;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
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.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.MoneyOutBean;
import com.wd.workoffice.bean.TicketBean;
import com.wd.workoffice.bean.listener.ThreeMenuClickListener;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.WorkFinancialOutAdapter;
import com.wd.workoffice.ui.adapter.WorkTicketAdapter;
import com.wd.workoffice.util.WorkUtils;
import com.wd.workoffice.util.ddmfilter.FinancialOutFilterData;
import com.wd.workoffice.util.ddmfilter.FinancialTicketFilterData;
import com.wd.workoffice.widget.DropDownMenu;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
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 WorkFinancialTicketActivity extends WorkToolBarActivity {
@BindView(R.id.ddm_choose)
DropDownMenu ddmChoose;
private RecyclerView rvData;
private int page = 1;
private Map<String, Object> param;
private SmartRefreshLayout srlRefresh;
private List<TicketBean.RecordsBean> dataList;
private WorkTicketAdapter dataAdapter;
@Override
protected void initView() {
ButterKnife.bind(this);
FinancialTicketFilterData filterData = new FinancialTicketFilterData(this,ddmChoose, new ThreeMenuClickListener() {
@Override
public void clickOne(String value) {
param.put("orderType", WorkUtils.getOrderCode(value));
page = 1;
param.put("current", page);
getData();
}
@Override
public void clickTwo(String value) {
//0未审核 1已通过 2不通过
if (TextUtils.equals(value, "全部状态")) {
param.put("status", "");
} else if (TextUtils.equals(value, "待审核")) {
param.put("status", "0");
} else if (TextUtils.equals(value, "已通过")) {
param.put("status", "1");
} else {
param.put("status", "2");
}
page = 1;
param.put("current", page);
getData();
}
@Override
public void clickThree(String value) {
}
});
rvData = filterData.getRvData();
srlRefresh = filterData.getSrlRefresh();
}
@Override
protected void initData() {
dataList = new ArrayList<>();
dataAdapter = new WorkTicketAdapter(R.layout.item_work_ticket, dataList);
dataAdapter.bindToRecyclerView(rvData);
dataAdapter.setEmptyView(R.layout.view_empty_content, rvData);
param = WorkUtils.pageKey();
param.put("current", page);
param.put("orderType", "SO");
getData();
}
private void getData() {
RtfUtils.getRtf().receiveTicket(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;
}
List<TicketBean.RecordsBean> getList = JSON.parseObject(data.getData().toString(), TicketBean.class).getRecords();
if (page == 1) {
srlRefresh.finishRefresh();
dataList.clear();
dataList.addAll(getList);
dataAdapter.notifyDataSetChanged();
dataAdapter.loadMoreComplete();
} else {
dataAdapter.loadMoreComplete();
dataList.addAll(getList);
dataAdapter.notifyDataSetChanged();
}
if (getList.size() == 0) {
dataAdapter.loadMoreEnd();
} else {
page++;
}
}
});
}
@Override
protected void initEvent() {
srlRefresh.setOnRefreshListener(refreshLayout -> {
page = 1;
param.put("current", page);
getData();
});
dataAdapter.setOnLoadMoreListener(() -> {
param.put("current", page);
getData();
}, rvData);
dataAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
startActivity(WorkFinancialDetailActivity.class,"detail",JSON.toJSONString(dataList.get(position)));
}
});
}
@Override
protected int layoutId() {
return R.layout.fg_work_pro;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_add, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add:
// startActivity(WorkInStockSearchActivity.class);
break;
}
return super.onOptionsItemSelected(item);
}
}
package com.wd.workoffice.ui.adapter;
import android.graphics.Color;
import android.view.View;
import android.widget.LinearLayout;
import com.alibaba.fastjson.JSON;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.AccountBean;
import com.wd.workoffice.bean.AllAccountBean;
import com.wd.workoffice.bean.OrderBean;
import com.wd.workoffice.util.MathUtils;
import java.util.List;
/**
* Created by flexible on 2018/8/13.
*/
public class WorkFinancialAccountAdapter extends BaseQuickAdapter<AllAccountBean.RecordsBean, BaseViewHolder> {
private String[] topColor = {"#359486", "#C45D5D", "#3F617F", "#E3AD6E", "#6A82DB"};
private String[] bottomColor = {"#37A999", "#D66E6E", "#53789A", "#EDB36F", "#738BE3"};
public WorkFinancialAccountAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, AllAccountBean.RecordsBean item) {
LinearLayout llTop = helper.getView(R.id.ll_top);
LinearLayout llBottom = helper.getView(R.id.ll_bottom);
llTop.setBackgroundColor(Color.parseColor(topColor[helper.getAdapterPosition() % 5]));
llBottom.setBackgroundColor(Color.parseColor(bottomColor[helper.getAdapterPosition() % 5]));
helper.setText(R.id.tv_dep_freeze_price, MathUtils.converData(item.getFrozenAmount(), 3));
helper.setText(R.id.tv_dep_price, MathUtils.converData(item.getBalance(), 3));
helper.setText(R.id.tv_name, item.getName());
helper.addOnClickListener(R.id.tv_freeze);
helper.addOnClickListener(R.id.tv_thaw);
helper.addOnClickListener(R.id.tv_see_flow);
}
}
......@@ -28,7 +28,7 @@ public class WorkFlowAdapter extends BaseQuickAdapter<FlowBean.RecordsBean, Base
helper.setText(R.id.tv_price,String.valueOf(item.getMoney()));
helper.setText(R.id.tv_time, item.getCreatedTime());
helper.setText(R.id.tv_desc, item.getDisplayTypeName());
helper.setText(R.id.tv_dep, item.getFlowAccountName());
helper.setText(R.id.tv_dep, item.getDeptName());
}
}
......@@ -80,7 +80,7 @@ public class MathUtils {
value = "0";
}
BigDecimal bg = new BigDecimal(value);
return bg.setScale(scale,RoundingMode.HALF_UP).toString();
return bg.setScale(scale, RoundingMode.HALF_UP).toString();
}
public static String converData(double value, Integer scale) {
......@@ -91,7 +91,7 @@ public class MathUtils {
strValue = String.valueOf(value);
}
BigDecimal bg = new BigDecimal(strValue);
return bg.setScale(scale,RoundingMode.HALF_UP).toString();
return bg.setScale(scale, RoundingMode.HALF_UP).toString();
}
......@@ -118,4 +118,16 @@ public class MathUtils {
BigDecimal b2 = new BigDecimal(v2.trim());
return b1.add(b2).setScale(scale).toString();
}
public static String subtract(String v1, String v2, Integer scale) {
if (TextUtils.isEmpty(v1)) {
v1 = "0";
}
if (TextUtils.isEmpty(v2)) {
v2 = "0";
}
BigDecimal b1 = new BigDecimal(v1.trim());
BigDecimal b2 = new BigDecimal(v2.trim());
return b1.subtract(b2).setScale(scale).toString();
}
}
......@@ -14,6 +14,7 @@ import com.wd.workoffice.R;
import com.wd.workoffice.app.Config;
import com.wd.workoffice.app.WorkApp;
import com.wd.workoffice.bean.workEnum.OrderType;
import com.wd.workoffice.retrofit.RtfUtils;
import java.io.File;
import java.util.HashMap;
......@@ -140,6 +141,16 @@ public class WorkUtils {
}
return name;
}
/**
* 刷新token
*
* @return
*/
public static void refreshToken() {
// RtfUtils.getRtf().refreshToken()
}
public static File uriToFile(Uri uri, Context context) {
String path = null;
if ("file".equals(uri.getScheme())) {
......
package com.wd.workoffice.util.ddmfilter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkApp;
import com.wd.workoffice.bean.listener.ThreeMenuClickListener;
import com.wd.workoffice.ui.adapter.FilterAdapter;
import com.wd.workoffice.widget.DropDownMenu;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class FinancialReceiveTicketFilterData {
DropDownMenu menu;
private List<View> viewList;
private View mainView;
private RecyclerView rvData;
private SmartRefreshLayout srlRefresh;
private List<String> statusList = Arrays.asList("供应订单", "外采购单订单");
private List<String> typeList = Arrays.asList("全部状态", "待审核", "已通过","已驳回");
ThreeMenuClickListener listener;
String[] TABLIST = new String[]{ "销售订单", "全部状态"};
Context context;
public FinancialReceiveTicketFilterData(Context context, DropDownMenu menu, ThreeMenuClickListener listener) {
this.menu = menu;
this.context=context;
this.listener = listener;
initView();
}
private void initView() {
mainView = LayoutInflater.from(context).inflate(R.layout.view_pro, null);
rvData = mainView.findViewById(R.id.rv_data);
srlRefresh = mainView.findViewById(R.id.srl_refresh);
rvData.setLayoutManager(new LinearLayoutManager(context, RecyclerView.VERTICAL, false));
viewList = new ArrayList<>();
addTabView(statusList , 1);
addTabView(typeList, 2);
menu.setDropDownMenu(Arrays.asList(TABLIST), viewList, mainView);
}
private void addTabView(List<String> dataList, int type) {
View view = LayoutInflater.from(WorkApp.getApp()).inflate(R.layout.view_filter_pro, null);
RecyclerView rvData = view.findViewById(R.id.rv_filter);
rvData.setLayoutManager(new LinearLayoutManager(WorkApp.getApp(), RecyclerView.VERTICAL, false));
FilterAdapter filterAdapter = new FilterAdapter(R.layout.item_filter, dataList);
filterAdapter.bindToRecyclerView(rvData);
viewList.add(view);
filterAdapter.setOnItemClickListener((adapter, v, position) -> {
filterAdapter.setChoosePos(position);
menu.setTabText(dataList.get(position));
if (listener != null) {
switch (type) {
case 1:
listener.clickOne(dataList.get(position));
break;
case 2:
listener.clickTwo(dataList.get(position));
break;
}
}
menu.closeMenu();
filterAdapter.notifyDataSetChanged();
});
}
public SmartRefreshLayout getSrlRefresh() {
return srlRefresh;
}
public void setSrlRefresh(SmartRefreshLayout srlRefresh) {
this.srlRefresh = srlRefresh;
}
public RecyclerView getRvData() {
return rvData;
}
public void setRvData(RecyclerView rvData) {
this.rvData = rvData;
}
}
package com.wd.workoffice.util.ddmfilter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkApp;
import com.wd.workoffice.bean.listener.ThreeMenuClickListener;
import com.wd.workoffice.ui.adapter.FilterAdapter;
import com.wd.workoffice.widget.DropDownMenu;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class FinancialTicketFilterData {
DropDownMenu menu;
private List<View> viewList;
private View mainView;
private RecyclerView rvData;
private SmartRefreshLayout srlRefresh;
private List<String> statusList = Arrays.asList("销售订单", "组装订单", "外采购单订单","坩埚订单");
private List<String> typeList = Arrays.asList("全部状态", "待审核", "已通过","已驳回");
ThreeMenuClickListener listener;
String[] TABLIST = new String[]{ "销售订单", "全部状态"};
Context context;
public FinancialTicketFilterData(Context context, DropDownMenu menu, ThreeMenuClickListener listener) {
this.menu = menu;
this.context=context;
this.listener = listener;
initView();
}
private void initView() {
mainView = LayoutInflater.from(context).inflate(R.layout.view_pro, null);
rvData = mainView.findViewById(R.id.rv_data);
srlRefresh = mainView.findViewById(R.id.srl_refresh);
rvData.setLayoutManager(new LinearLayoutManager(context, RecyclerView.VERTICAL, false));
viewList = new ArrayList<>();
addTabView(statusList , 1);
addTabView(typeList, 2);
menu.setDropDownMenu(Arrays.asList(TABLIST), viewList, mainView);
}
private void addTabView(List<String> dataList, int type) {
View view = LayoutInflater.from(WorkApp.getApp()).inflate(R.layout.view_filter_pro, null);
RecyclerView rvData = view.findViewById(R.id.rv_filter);
rvData.setLayoutManager(new LinearLayoutManager(WorkApp.getApp(), RecyclerView.VERTICAL, false));
FilterAdapter filterAdapter = new FilterAdapter(R.layout.item_filter, dataList);
filterAdapter.bindToRecyclerView(rvData);
viewList.add(view);
filterAdapter.setOnItemClickListener((adapter, v, position) -> {
filterAdapter.setChoosePos(position);
menu.setTabText(dataList.get(position));
if (listener != null) {
switch (type) {
case 1:
listener.clickOne(dataList.get(position));
break;
case 2:
listener.clickTwo(dataList.get(position));
break;
}
}
menu.closeMenu();
filterAdapter.notifyDataSetChanged();
});
}
public SmartRefreshLayout getSrlRefresh() {
return srlRefresh;
}
public void setSrlRefresh(SmartRefreshLayout srlRefresh) {
this.srlRefresh = srlRefresh;
}
public RecyclerView getRvData() {
return rvData;
}
public void setRvData(RecyclerView rvData) {
this.rvData = rvData;
}
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--<stroke-->
<!--android:width="1dp"-->
<!--android:color="#ff00ac9a" />-->
<solid android:color="#40ffffff" />
<corners android:radius="9dp" />
</shape>
\ No newline at end of file
......@@ -74,7 +74,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用余额"
android:text="冻结余额"
android:textColor="#b3ffffff"
android:textSize="12sp" />
......
<?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="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingBottom="10mm">
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10mm"
android:layout_marginTop="10mm"
android:background="#359486"
android:paddingHorizontal="30mm"
android:paddingVertical="16mm"
android:text="销售一部"
android:textColor="@color/white"
android:textSize="16sp" />
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10mm"
android:background="#37A999"
android:orientation="horizontal"
android:paddingHorizontal="30mm"
android:paddingVertical="16mm">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="账户余额"
android:textColor="#b3ffffff"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_dep_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4mm"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_price_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用余额"
android:textColor="#b3ffffff"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_dep_freeze_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4mm"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20mm"
android:layout_marginTop="30mm"
android:text="冻结金额"
android:textColor="@color/main_sup_color"
android:textSize="14sp" />
<EditText
android:id="@+id/et_price"
android:layout_width="match_parent"
android:layout_height="33mm"
android:layout_marginHorizontal="20mm"
android:layout_marginTop="20mm"
android:background="@drawable/shape_client_search"
android:gravity="right|center_vertical"
android:hint="¥0.00"
android:inputType="numberDecimal"
android:paddingHorizontal="5mm"
android:textColor="@color/mainTextColor"
android:textSize="16sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20mm"
android:layout_marginTop="20mm">
<TextView
android:id="@+id/tv_max"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="最多可冻结金额¥15000.00"
android:textColor="#ffabbece"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="全部冻结"
android:textColor="#ff37a999"
android:textSize="14sp" />
</RelativeLayout>
</LinearLayout>
<Button
android:id="@+id/btn_ok"
android:layout_width="80mm"
android:layout_height="30mm"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30mm"
android:background="@mipmap/account_bg"
android:text="冻结"
android:textColor="@color/white" />
</LinearLayout>
\ 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_margin="5mm"
android:background="@drawable/shape_account"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="30mm"
android:paddingVertical="16mm">
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="销售一部"
android:textColor="@color/white"
android:textSize="16sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:id="@+id/tv_thaw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_all_account"
android:paddingHorizontal="15mm"
android:paddingVertical="3mm"
android:text="解冻"
android:textColor="@color/white"
android:textSize="10sp" />
<TextView
android:id="@+id/tv_freeze"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10mm"
android:background="@drawable/shape_all_account"
android:paddingHorizontal="15mm"
android:paddingVertical="3mm"
android:text="冻结"
android:textColor="@color/white"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_bottom"
android:background="#D66E6E"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingVertical="16mm"
android:paddingHorizontal="30mm">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="账户余额"
android:textColor="#b3ffffff"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_dep_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4mm"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="冻结余额"
android:textColor="#b3ffffff"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_dep_freeze_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4mm"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_see_flow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="10mm"
android:text="查看流水>"
android:textColor="@color/white"
android:textSize="13sp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论