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

1.上缴财税

2.//TODO ,质检接口数据无对应问题,内部交易订单审核,审核规则,领用申请列表/退件列表/参数,坩埚下单,mes其他页面,mes质量反馈,编辑任务担当无法修改.支数参数
上级 e1265815
...@@ -1810,6 +1810,30 @@ ...@@ -1810,6 +1810,30 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Work.Base" android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.store.StoreFinancialAddActivity"
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.store.StoreFinancialDetailActivity"
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.store.StoreFinancialModifyActivity"
android:configChanges="keyboardHidden|orientation"
android:label="编辑财税"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="com.wd.workoffice.fileprovider" android:authorities="com.wd.workoffice.fileprovider"
......
package com.wd.workoffice.bean;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class FinancailDetailBean {
/**
* createdBy : 680
* createdByName : null
* createdTime : 2020-03-28 11:49:40
* updatedBy : null
* updatedByName : null
* updatedTime : null
* id : 89593c387b57441a9f5508bb167fc279
* taxId : SO10748
* taxType : 2
* taxTypeName : 归还贷款
* amount : 12.0
* status : 0
* auditRemark : null
* editRemark : null
*/
private int createdBy;
private Object createdByName;
private String createdTime;
private Object updatedBy;
private Object updatedByName;
private Object updatedTime;
private String id;
private String taxId;
private int taxType;
private String taxTypeName;
private double amount;
private String status;
private String auditRemark;
private Object editRemark;
public int getCreatedBy() {
return createdBy;
}
public void setCreatedBy(int createdBy) {
this.createdBy = createdBy;
}
public Object getCreatedByName() {
return createdByName;
}
public void setCreatedByName(Object createdByName) {
this.createdByName = createdByName;
}
public String getCreatedTime() {
return createdTime;
}
public void setCreatedTime(String createdTime) {
this.createdTime = createdTime;
}
public 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 String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTaxId() {
return taxId;
}
public void setTaxId(String taxId) {
this.taxId = taxId;
}
public int getTaxType() {
return taxType;
}
public void setTaxType(int taxType) {
this.taxType = taxType;
}
public String getTaxTypeName() {
return taxTypeName;
}
public void setTaxTypeName(String taxTypeName) {
this.taxTypeName = taxTypeName;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getAuditRemark() {
return auditRemark;
}
public void setAuditRemark(String auditRemark) {
this.auditRemark = auditRemark;
}
public Object getEditRemark() {
return editRemark;
}
public void setEditRemark(Object editRemark) {
this.editRemark = editRemark;
}
}
package com.wd.workoffice.bean;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class FinancialTypeBean {
/**
* createdBy : null
* createdByName : null
* createdTime : null
* updatedBy : null
* updatedByName : null
* updatedTime : null
* id : 7
* code : DAIKUANLIXI
* name : 贷款利息
* orderNum : null
* status : null
* deptIds : null
* deptNames : null
*/
private Object createdBy;
private Object createdByName;
private Object createdTime;
private Object updatedBy;
private Object updatedByName;
private Object updatedTime;
private int id;
private String code;
private String name;
private Object orderNum;
private Object status;
private Object deptIds;
private Object deptNames;
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 Object getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Object 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 String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object getOrderNum() {
return orderNum;
}
public void setOrderNum(Object orderNum) {
this.orderNum = orderNum;
}
public Object getStatus() {
return status;
}
public void setStatus(Object status) {
this.status = status;
}
public Object getDeptIds() {
return deptIds;
}
public void setDeptIds(Object deptIds) {
this.deptIds = deptIds;
}
public Object getDeptNames() {
return deptNames;
}
public void setDeptNames(Object deptNames) {
this.deptNames = deptNames;
}
}
package com.wd.workoffice.bean.event;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class AddFinancialNumEvent {
public AddFinancialNumEvent() {
}
}
package com.wd.workoffice.bean.event;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class CheckFinancialEvent {
public CheckFinancialEvent() {
}
}
...@@ -1079,6 +1079,14 @@ public interface ApiService { ...@@ -1079,6 +1079,14 @@ public interface ApiService {
Observable<BaseBean> logisticsApply(@Body RequestBody requestBody); Observable<BaseBean> logisticsApply(@Body RequestBody requestBody);
/**
* 获取财税分页
*
* @return
*/
@PUT("/finance-tax/cancel/{id}")
Observable<BaseBean> storeFinancialCancel(@Path("id")String id);
/** /**
* 获取财税分页 * 获取财税分页
* *
...@@ -1086,6 +1094,38 @@ public interface ApiService { ...@@ -1086,6 +1094,38 @@ public interface ApiService {
*/ */
@GET("/finance-tax/page/list") @GET("/finance-tax/page/list")
Observable<BaseBean> storeFinancial(@QueryMap Map<String, Object> param); Observable<BaseBean> storeFinancial(@QueryMap Map<String, Object> param);
/**
* 获取财税明细
*
* @return
*/
@GET("/finance-tax/detail/{taxId}")
Observable<BaseBean> storeFinancialDetail(@Path("taxId")String id);
/**
* 获取财税明细
*
* @return
*/
@PUT("/finance-tax/audit")
Observable<BaseBean> storeFinancialCheck(@Body RequestBody requestBody);
/**
* 财税类别
*
* @return
*/
@GET("finance-tax-type/listByDept/{deptId}")
Observable<BaseBean> financialType(@Path("deptId")String deptId);
/**
* 新增财税
*
* @return
*/
@POST("/finance-tax/addApply")
Observable<BaseBean> addFinancial(@Body RequestBody requestBody);
/** /**
* 修改个人信息,头像和用户名(app) * 修改个人信息,头像和用户名(app)
......
package com.wd.workoffice.ui.activity.bat.store; package com.wd.workoffice.ui.activity.bat.store;
import android.os.Bundle; import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.material.tabs.TabLayout; 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.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity; import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.FinancialBean;
import com.wd.workoffice.bean.event.CheckFinancialEvent;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.workEnum.PagePermissionType; import com.wd.workoffice.bean.workEnum.PagePermissionType;
import com.wd.workoffice.ui.activity.bat.work.WorkFinancialLogisticAddActivity; import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.ui.adapter.VpDataAdapter; import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.fg.StoreFinancialFragment; import com.wd.workoffice.ui.adapter.FinancialAdapter;
import com.wd.workoffice.ui.fg.WorkLogisticsFragment; import com.wd.workoffice.util.UserKeeper;
import com.wd.workoffice.util.WorkUtils; import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import static com.google.android.material.tabs.TabLayout.MODE_FIXED; import io.reactivex.disposables.Disposable;
/** /**
* 财税 * 财税
...@@ -33,67 +40,168 @@ import static com.google.android.material.tabs.TabLayout.MODE_FIXED; ...@@ -33,67 +40,168 @@ import static com.google.android.material.tabs.TabLayout.MODE_FIXED;
**/ **/
public class StoreFinancialActivity extends WorkToolBarActivity { public class StoreFinancialActivity extends WorkToolBarActivity {
@BindView(R.id.tl_tab) @BindView(R.id.rv_data)
TabLayout tlTab; RecyclerView rvData;
@BindView(R.id.vp_data) @BindView(R.id.srl_refresh)
ViewPager vpData; SmartRefreshLayout srlRefresh;
private String tab[] = { private int page = 1;
"全部", "待审核", "不通过", "已通过"}; private Map<String, Object> param;
private String order[] = { private FinancialAdapter dataAdapter;
"", "0", "2", "1"};//0:待审核 1:已通过 2已驳回 3:待重审 9:已作废 private List<FinancialBean.RecordsBean> dataList;
@Override
protected int layoutId() {
return R.layout.fg_work_contacts;
}
@Override @Override
protected void initView() { protected void initView() {
ButterKnife.bind(this); ButterKnife.bind(this);
tlTab.setupWithViewPager(vpData); rvData.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
tlTab.setTabMode(MODE_FIXED);
} }
@Override @Override
protected void initData() { protected void initData() {
if (!WorkUtils.hasPermission(PagePermissionType.FINANCE.getPermission())) { if (!WorkUtils.hasPermission(PagePermissionType.FINANCE.getPermission())) {
toast(R.string.permission); toast(R.string.permission);
return; return;
} }
FragmentManager sfm = getSupportFragmentManager(); param = WorkUtils.pageKey();
List<Fragment> data = new ArrayList<>(); page = 1;
for (int i = 0; i < tab.length; i++) { param.put("current", page);
StoreFinancialFragment saleFragment = new StoreFinancialFragment(); param.put("payDept", UserKeeper.getInstance().getUserDepId() );
Bundle bundle = new Bundle(); dataList = new ArrayList<>();
bundle.putString("state", order[i]); dataAdapter = new FinancialAdapter(R.layout.item_financial, dataList);
saleFragment.setArguments(bundle); dataAdapter.bindToRecyclerView(rvData);
data.add(saleFragment); dataAdapter.setEmptyView(R.layout.view_empty_content, rvData);
getData();
}
private void getData() {
RtfUtils.getRtf().storeFinancial(param).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
} }
VpDataAdapter vpFgAdapter = new VpDataAdapter(sfm, data);
vpData.setAdapter(vpFgAdapter); @Override
for (int i = 0; i < tab.length; i++) { public void onFail(String errorMsg) {
tlTab.getTabAt(i).setText(tab[i]); hideLoading();
toast(errorMsg);
} }
@Override
public void onSuccess(BaseBean data) {
hideLoading();
if (data.getCode() != 0) {
toast(data.getMessage());
return;
}
List<FinancialBean.RecordsBean> getList = JSON.parseObject(data.getData().toString(), FinancialBean.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 @Override
protected void initEvent() { 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) {
if (!WorkUtils.hasPermission(PagePermissionType.FINANCE_DETAIL.getPermission())) {
toast(R.string.permission);
return;
}
startActivity(StoreFinancialDetailActivity.class, "info",JSON.toJSONString(dataList.get(position)));
}
});
dataAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
switch (view.getId()){
case R.id.tv_modify:
startActivity(StoreFinancialModifyActivity.class, "info",JSON.toJSONString(dataList.get(position)));
break;
case R.id.tv_delete:
delete(dataList.get(position).getId(),position);
break;
}
}
});
} }
private void delete(String id,int position) {
RtfUtils.getRtf().storeFinancialCancel(id).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override @Override
protected int layoutId() { public void doOnSubscribe(Disposable d) {
return R.layout.activity_order;
} }
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public void onFail(String errorMsg) {
getMenuInflater().inflate(R.menu.menu_add, menu); hideLoading();
return super.onCreateOptionsMenu(menu); toast(errorMsg);
} }
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public void onSuccess(BaseBean data) {
switch (item.getItemId()) { hideLoading();
case R.id.add: if (data.getCode() != 0) {
startActivity(WorkFinancialLogisticAddActivity.class); toast(data.getMessage());
break; return;
} }
return super.onOptionsItemSelected(item); toast("作废成功");
dataList.get(position).setStatus("9");
dataAdapter.notifyItemChanged(position);
}
});
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(CheckFinancialEvent event) {
page = 1;
param.put("current", page);
getData();
} }
} }
package com.wd.workoffice.ui.activity.bat.store;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.FinancialTypeBean;
import com.wd.workoffice.bean.event.AddFinancialNumEvent;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.FinancialAddAdapter;
import com.wd.workoffice.util.PickTimeUtils;
import com.wd.workoffice.util.UserKeeper;
import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.utils.TimeUtils;
import io.reactivex.disposables.Disposable;
/**
* 财税
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class StoreFinancialAddActivity extends WorkToolBarActivity {
@BindView(R.id.tv_submit)
TextView tvSubmit;
@BindView(R.id.tv_total)
TextView tvTotal;
@BindView(R.id.rl_bottom)
RelativeLayout rlBottom;
@BindView(R.id.tv_time)
TextView tvTime;
@BindView(R.id.rl_time)
RelativeLayout rlTime;
@BindView(R.id.et_remark)
EditText etRemark;
@BindView(R.id.rv_data)
RecyclerView rvData;
private FinancialAddAdapter dataAdapter;
private List<FinancialTypeBean> dataList;
private Map<String, Object> param;
@Override
protected void initView() {
ButterKnife.bind(this);
rvData.setLayoutManager(new GridLayoutManager(this,2,RecyclerView.VERTICAL,false));
}
@Override
protected void initData() {
param = WorkUtils.simpleParam();
dataList = new ArrayList<>();
dataAdapter = new FinancialAddAdapter(R.layout.item_financial_add, dataList);
dataAdapter.bindToRecyclerView(rvData);
dataAdapter.setEmptyView(R.layout.view_empty_content, rvData);
}
@Override
protected void initEvent() {
getData();
}
private void getData() {
RtfUtils.getRtf().financialType(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;
}
List<FinancialTypeBean> getList = JSON.parseArray(data.getData().toString(), FinancialTypeBean.class);
dataList.clear();
dataList.addAll(getList);
dataAdapter.notifyDataSetChanged();
}
});
}
@Override
protected int layoutId() {
return R.layout.activity_financial_add;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_history, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.history:
startActivity(StoreFinancialActivity.class);
break;
}
return super.onOptionsItemSelected(item);
}
@OnClick({R.id.tv_submit, R.id.rl_time})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_submit:
String time = tvTime.getText().toString();
String remark = etRemark.getText().toString();
if (TextUtils.isEmpty(time)) {
toast("请选择缴费月份");
return;
}
changeNum();
param.put("payDate", time);
param.put("applyRemark", remark);
param.put("payDept", UserKeeper.getInstance().getUserDepId());
submit();
break;
case R.id.rl_time:
PickTimeUtils.showPickTwo(this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
tvTime.setText(TimeUtils.date2String(date, new SimpleDateFormat("yyyyMM")));
}
}).show();
break;
}
}
private void submit() {
RtfUtils.getRtf().addFinancial(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;
}
finish();
toast("提交成功");
}
});
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(AddFinancialNumEvent event) {
changeNum();
}
private void changeNum() {
Map<Integer, String> num = dataAdapter.getNum();
int total = 0;
List<JSONObject> financeTaxItems = new ArrayList<>();
for (Map.Entry<Integer, String> entry : num.entrySet()) {
String value = entry.getValue();
if (!TextUtils.isEmpty(value)) {
total += Integer.valueOf(value);
JSONObject data = new JSONObject();
data.put("taxType", dataList.get(entry.getKey()).getId());
data.put("amount", value);
financeTaxItems.add(data);
}
}
param.put("totalMoney", total);
param.put("financeTaxItems", financeTaxItems);
tvTotal.setText(total + "");
}
}
package com.wd.workoffice.ui.activity.bat.store;
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.alibaba.fastjson.JSONObject;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.FinancailDetailBean;
import com.wd.workoffice.bean.FinancialBean;
import com.wd.workoffice.bean.LogisticDetailBean;
import com.wd.workoffice.bean.event.CheckFinancialEvent;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.workEnum.PagePermissionType;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.FinancialDetailAdapter;
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 java.util.Set;
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.disposables.Disposable;
/**
* 财税详情
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class StoreFinancialDetailActivity 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_time)
TextView tvTime;
@BindView(R.id.tv_status)
TextView tvStatus;
@BindView(R.id.tv_remark)
TextView tvRemark;
@BindView(R.id.rv_data)
RecyclerView rvData;
private List<FinancailDetailBean> dataList;
private FinancialDetailAdapter dataAdapter;
private Map<String, Object> param;
@Override
protected void initView() {
ButterKnife.bind(this);
rvData.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
FinancialBean.RecordsBean info = JSON.parseObject(getIntent().getStringExtra("info"), FinancialBean.RecordsBean.class);
getData(info.getId() + "");
tvTime.setText(info.getPayDate() + "");
tvRemark.setText(info.getApplyRemark());
tvStatus.setText(WorkUtils.getFinancialStatus(Integer.valueOf(info.getStatus())));
if (TextUtils.equals(info.getStatus(), "0") || TextUtils.equals(info.getStatus(), "3")) {
llBottom.setVisibility(View.VISIBLE);
changePermission();
} else {
llBottom.setVisibility(View.GONE);
}
dataList = new ArrayList<>();
dataAdapter = new FinancialDetailAdapter(R.layout.item_financial_detail, dataList, info.getStatus());
dataAdapter.bindToRecyclerView(rvData);
param = new HashMap<>();
param.put("id", info.getId());
}
private void changePermission() {
boolean hasPermission = WorkUtils.hasPermission(PagePermissionType.FINANCE_DETAIL.getPermission());
if (!hasPermission) {
tvRefuse.setVisibility(View.GONE);
tvAgree.setVisibility(View.GONE);
}
}
private void getData(String id) {
RtfUtils.getRtf().storeFinancialDetail(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<FinancailDetailBean> dataBean = JSON.parseArray(data.getData().toString(), FinancailDetailBean.class);
dataList.addAll(dataBean);
dataAdapter.notifyDataSetChanged();
}
});
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_financial_detail;
}
@OnClick({R.id.tv_refuse, R.id.tv_agree})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_refuse:
if (!checkAddParam(2)) {
return;
}
checkDialog(2);
break;
case R.id.tv_agree:
if (!checkAddParam(1)) {
return;
}
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);
RtfUtils.getRtf().storeFinancialCheck(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 CheckFinancialEvent());
toast("操作成功");
finish();
}
});
}
private boolean checkAddParam(int status) {
Map<Integer, String> errorMap = dataAdapter.getErrorMap();
Set<Map.Entry<Integer, String>> entries = errorMap.entrySet();
if (entries.size() == 0 && status == 2) {
toast("请标记错误并填写错误原因");
return false;
}
List<JSONObject> financeTaxItems = new ArrayList<>();
for (int i = 0; i < dataList.size(); i++) {
JSONObject data = new JSONObject();
if (errorMap.containsKey(i)) {
data.put("auditRemark", dataList.get(i).getAuditRemark());
data.put("id", dataList.get(i).getId());
data.put("status", 2);
if (TextUtils.isEmpty(dataList.get(i).getAuditRemark())) {
toast("请标记错误并填写错误原因");
return false;
}
} else {
data.put("auditRemark", dataList.get(i).getAuditRemark());
data.put("id", dataList.get(i).getId());
data.put("status", 1);
}
financeTaxItems.add(data);
}
param.put("financeTaxItems", financeTaxItems);
return true;
}
}
package com.wd.workoffice.ui.activity.bat.store;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
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.JSONObject;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.FinancailDetailBean;
import com.wd.workoffice.bean.FinancialBean;
import com.wd.workoffice.bean.event.CheckFinancialEvent;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.bean.workEnum.PagePermissionType;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.FinancialDetailAdapter;
import com.wd.workoffice.ui.adapter.FinancialModifyAdapter;
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 java.util.Set;
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.disposables.Disposable;
/**
* 财税详情
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class StoreFinancialModifyActivity extends WorkToolBarActivity {
@BindView(R.id.tv_time)
TextView tvTime;
@BindView(R.id.tv_status)
TextView tvStatus;
@BindView(R.id.tv_remark)
EditText tvRemark;
@BindView(R.id.rv_data)
RecyclerView rvData;
private List<FinancailDetailBean> dataList;
private FinancialModifyAdapter dataAdapter;
private Map<String, Object> param;
@Override
protected void initView() {
ButterKnife.bind(this);
rvData.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
FinancialBean.RecordsBean info = JSON.parseObject(getIntent().getStringExtra("info"), FinancialBean.RecordsBean.class);
getData(info.getId() + "");
tvTime.setText(info.getPayDate() + "");
tvRemark.setText(info.getApplyRemark());
tvStatus.setText(WorkUtils.getFinancialStatus(Integer.valueOf(info.getStatus())));
dataList = new ArrayList<>();
dataAdapter = new FinancialModifyAdapter(R.layout.item_financial_modify, dataList);
dataAdapter.bindToRecyclerView(rvData);
param = new HashMap<>();
param.put("id", info.getId());
param.put("payDate",info.getPayDate());
}
private void getData(String id) {
RtfUtils.getRtf().storeFinancialDetail(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<FinancailDetailBean> dataBean = JSON.parseArray(data.getData().toString(), FinancailDetailBean.class);
dataList.addAll(dataBean);
dataAdapter.notifyDataSetChanged();
}
});
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_financial_modify;
}
private void submit() {
for (FinancailDetailBean financailDetailBean : dataList) {
if (financailDetailBean.getAmount() == 0d) {
toast("请输入金额");
return;
}
}
param.put("financeTaxItems",dataList);
param.put("applyRemark", tvRemark.getText().toString());
param.put("payDept", UserKeeper.getInstance().getUserDepId());
RtfUtils.getRtf().addFinancial(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;
}
finish();
toast("提交成功");
EventBus.getDefault().post(new CheckFinancialEvent());
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_report, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.report:
submit();
break;
}
return super.onOptionsItemSelected(item);
}
private void check(int status, String remark) {
param.put("status", status);
param.put("auditRemark", remark);
RtfUtils.getRtf().storeFinancialCheck(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();
}
});
}
// private boolean checkAddParam(int status) {
// Map<Integer, String> errorMap = dataAdapter.getErrorMap();
// Set<Map.Entry<Integer, String>> entries = errorMap.entrySet();
// if (entries.size() == 0 && status == 2) {
// toast("请标记错误并填写错误原因");
// return false;
// }
// List<JSONObject> financeTaxItems = new ArrayList<>();
//
// for (int i = 0; i < dataList.size(); i++) {
// JSONObject data = new JSONObject();
// if (errorMap.containsKey(i)) {
// data.put("auditRemark", dataList.get(i).getAuditRemark());
// data.put("id", dataList.get(i).getId());
// data.put("status", 2);
// if (TextUtils.isEmpty(dataList.get(i).getAuditRemark())) {
// toast("请标记错误并填写错误原因");
// return false;
// }
// } else {
// data.put("auditRemark", dataList.get(i).getAuditRemark());
// data.put("id", dataList.get(i).getId());
// data.put("status", 1);
// }
// financeTaxItems.add(data);
// }
// param.put("financeTaxItems", financeTaxItems);
// return true;
// }
}
package com.wd.workoffice.ui.adapter;
import android.text.TextUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.FinancialBean;
import com.wd.workoffice.bean.LogisticBean;
import com.wd.workoffice.util.WorkUtils;
import java.util.List;
/**
* Created by flexible on 2018/8/13.
*/
public class FinancialAdapter extends BaseQuickAdapter<FinancialBean.RecordsBean, BaseViewHolder> {
public FinancialAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, FinancialBean.RecordsBean item) {
helper.setText(R.id.tv_price, String.valueOf(item.getTotalMoney()));
helper.setText(R.id.tv_status, WorkUtils.getFinancialStatus(Integer.valueOf(item.getStatus())));
helper.setText(R.id.tv_time, item.getPayDate() + "");
if (TextUtils.equals("2", item.getStatus())) {
helper.setGone(R.id.ll_btn, true);
helper.addOnClickListener(R.id.tv_modify, R.id.tv_delete);
}else {
helper.setGone(R.id.ll_btn, false);
}
}
}
package com.wd.workoffice.ui.adapter;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.FinancialTypeBean;
import com.wd.workoffice.bean.event.AddFinancialNumEvent;
import org.greenrobot.eventbus.EventBus;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by flexible on 2018/8/13.
*/
public class FinancialAddAdapter extends BaseQuickAdapter<FinancialTypeBean, BaseViewHolder> {
Map<Integer, String> num = new HashMap<>();
public FinancialAddAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
public Map<Integer, String> getNum() {
return num;
}
public void setNum(Map<Integer, String> num) {
this.num = num;
}
@Override
protected void convert(BaseViewHolder helper, FinancialTypeBean item) {
helper.setText(R.id.tv_name, item.getName());
EditText etNum = helper.getView(R.id.et_num);
etNum.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) {
num.put(helper.getAdapterPosition(), s.toString());
EventBus.getDefault().post(new AddFinancialNumEvent());
}
});
}
}
package com.wd.workoffice.ui.adapter;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.FinancailDetailBean;
import com.wd.workoffice.util.WorkUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.Nullable;
/**
* Created by flexible on 2018/8/13.
*/
public class FinancialDetailAdapter extends BaseQuickAdapter<FinancailDetailBean, BaseViewHolder> {
Map<Integer, String> errorMap = new HashMap<>();
String status;
public Map<Integer, String> getErrorMap() {
return errorMap;
}
public void setErrorMap(Map<Integer, String> errorMap) {
this.errorMap = errorMap;
}
public FinancialDetailAdapter(int layoutResId, @Nullable List<FinancailDetailBean> data, String status) {
super(layoutResId, data);
this.status = status;
}
public FinancialDetailAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, FinancailDetailBean item) {
helper.setText(R.id.tv_type, item.getTaxTypeName());
helper.setText(R.id.tv_price, String.valueOf(item.getAmount()));
helper.setText(R.id.et_remark, item.getAuditRemark());
if (TextUtils.equals("0", status) || TextUtils.equals("3", status)) {
helper.setText(R.id.tv_status, WorkUtils.getFinancialTypeStatus("1"));
} else {
helper.setText(R.id.tv_status, WorkUtils.getFinancialTypeStatus(item.getStatus()));
}
switch (item.getStatus()) {
case "0":
// helper.setText(R.id.tv_status, WorkUtils.getFinancialTypeStatus("1"));
break;
case "1":
helper.setGone(R.id.rl_status, false);
helper.setGone(R.id.rl_remark, false);
helper.setGone(R.id.tv_error, false);
break;
case "2":
helper.setGone(R.id.tv_error, false);
break;
}
EditText remark = helper.getView(R.id.et_remark);
remark.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) {
item.setAuditRemark(s.toString());
}
});
TextView error = helper.getView(R.id.tv_error);
error.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.equals("标记错误",error.getText().toString())){
helper.setText(R.id.tv_status, WorkUtils.getFinancialTypeStatus("2"));
errorMap.put(helper.getAdapterPosition(), "");
error.setText("标记正确");
}else {
helper.setText(R.id.tv_status, WorkUtils.getFinancialTypeStatus("1"));
if (errorMap.containsKey(helper.getAdapterPosition()))
errorMap.remove(helper.getAdapterPosition());
error.setText("标记错误");
}
}
});
}
}
package com.wd.workoffice.ui.adapter;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.FinancailDetailBean;
import com.wd.workoffice.util.WorkUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.Nullable;
/**
* Created by flexible on 2018/8/13.
*/
public class FinancialModifyAdapter extends BaseQuickAdapter<FinancailDetailBean, BaseViewHolder> {
public FinancialModifyAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, FinancailDetailBean item) {
helper.setText(R.id.tv_type, item.getTaxTypeName());
helper.setText(R.id.tv_price, String.valueOf(item.getAmount()));
EditText remark = helper.getView(R.id.tv_price);
remark.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) {
item.setAmount(Integer.valueOf(s.toString()));
}
});
}
}
...@@ -29,6 +29,7 @@ import com.wd.workoffice.ui.activity.bat.order.sale.SaleSaleOrderActivity; ...@@ -29,6 +29,7 @@ import com.wd.workoffice.ui.activity.bat.order.sale.SaleSaleOrderActivity;
import com.wd.workoffice.ui.activity.bat.order.sale.SaleSupplierOrderActivity; import com.wd.workoffice.ui.activity.bat.order.sale.SaleSupplierOrderActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreCrucibleActivity; import com.wd.workoffice.ui.activity.bat.store.StoreCrucibleActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreFinancialActivity; import com.wd.workoffice.ui.activity.bat.store.StoreFinancialActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreFinancialAddActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreOutsourcingActivity; import com.wd.workoffice.ui.activity.bat.store.StoreOutsourcingActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreSaleActivity; import com.wd.workoffice.ui.activity.bat.store.StoreSaleActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreSupplierActivity; import com.wd.workoffice.ui.activity.bat.store.StoreSupplierActivity;
...@@ -115,7 +116,6 @@ public class MainFragment extends WorkBaseFg { ...@@ -115,7 +116,6 @@ public class MainFragment extends WorkBaseFg {
} }
// @Nullable // @Nullable
// @Override // @Override
// public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
...@@ -239,21 +239,21 @@ public class MainFragment extends WorkBaseFg { ...@@ -239,21 +239,21 @@ public class MainFragment extends WorkBaseFg {
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
switch (position) { switch (position) {
case 0: case 0:
if (!WorkUtils.hasPermission(PagePermissionType.SALE_ORDER_START.getPermission())){ if (!WorkUtils.hasPermission(PagePermissionType.SALE_ORDER_START.getPermission())) {
toast(R.string.permission); toast(R.string.permission);
return; return;
} }
startActivity(StoreSaleActivity.class); startActivity(StoreSaleActivity.class);
break; break;
case 1: case 1:
if (!WorkUtils.hasPermission(PagePermissionType.PO_PURCHASE_START.getPermission())){ if (!WorkUtils.hasPermission(PagePermissionType.PO_PURCHASE_START.getPermission())) {
toast(R.string.permission); toast(R.string.permission);
return; return;
} }
startActivity(StoreOutsourcingActivity.class); startActivity(StoreOutsourcingActivity.class);
break; break;
case 2: case 2:
if (!WorkUtils.hasPermission(PagePermissionType.FO_SUPPLIER_START.getPermission())){ if (!WorkUtils.hasPermission(PagePermissionType.FO_SUPPLIER_START.getPermission())) {
toast(R.string.permission); toast(R.string.permission);
return; return;
} }
...@@ -263,17 +263,21 @@ public class MainFragment extends WorkBaseFg { ...@@ -263,17 +263,21 @@ public class MainFragment extends WorkBaseFg {
toast("暂无数据"); toast("暂无数据");
break; break;
case 4: case 4:
startActivity(StoreFinancialActivity.class); if (!WorkUtils.hasPermission(PagePermissionType.FINANCE_TAX.getPermission())) {
toast(R.string.permission);
return;
}
startActivity(StoreFinancialAddActivity.class);
break; break;
case 5: case 5:
if (!WorkUtils.hasPermission(PagePermissionType.CO_CRUCIBLE_START.getPermission())){ if (!WorkUtils.hasPermission(PagePermissionType.CO_CRUCIBLE_START.getPermission())) {
toast(R.string.permission); toast(R.string.permission);
return; return;
} }
startActivity(StoreCrucibleActivity.class); startActivity(StoreCrucibleActivity.class);
break; break;
case 6: case 6:
if (!WorkUtils.hasPermission(PagePermissionType.IO_INSIDE_START.getPermission())){ if (!WorkUtils.hasPermission(PagePermissionType.IO_INSIDE_START.getPermission())) {
toast(R.string.permission); toast(R.string.permission);
return; return;
} }
......
...@@ -23,6 +23,14 @@ public class PickTimeUtils { ...@@ -23,6 +23,14 @@ public class PickTimeUtils {
TimePickerBuilder pvTime = new TimePickerBuilder(ctx, listener); TimePickerBuilder pvTime = new TimePickerBuilder(ctx, listener);
pvTime.setType(new boolean[]{true, true, true, false, false, false}).setTitleSize(16).setContentTextSize(16). pvTime.setType(new boolean[]{true, true, true, false, false, false}).setTitleSize(16).setContentTextSize(16).
setSubCalSize(16); setSubCalSize(16);
// .setRangDate(startDate, endDate);
return pvTime.build();
}
public static TimePickerView showPickTwo(Context ctx, OnTimeSelectListener listener) {
TimePickerBuilder pvTime = new TimePickerBuilder(ctx, listener);
pvTime.setType(new boolean[]{true, true, false, false, false, false}).setTitleSize(16).setContentTextSize(16).
setSubCalSize(16);
// .setRangDate(startDate, endDate); // .setRangDate(startDate, endDate);
return pvTime.build(); return pvTime.build();
} }
......
...@@ -234,6 +234,34 @@ public class WorkUtils { ...@@ -234,6 +234,34 @@ public class WorkUtils {
case 2: case 2:
name = "已驳回"; name = "已驳回";
break; break;
case 3:
name = "待重审";
break;
case 9:
name = "已作废";
break;
}
return name;
}
/**
* 0-待审核,1-审核正常,2-审核数据有误
* @param status
* @return
*/
public static String getFinancialTypeStatus(String status) {
String name = "";
switch (Integer.valueOf(status)) {
case 0:
name = "待审核";
break;
case 1:
name = "审核正常";
break;
case 2:
name = "审核数据有误";
break;
} }
return name; return name;
} }
...@@ -466,4 +494,6 @@ public class WorkUtils { ...@@ -466,4 +494,6 @@ public class WorkUtils {
}; };
return timer.start(); return timer.start();
} }
} }
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/rl_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="12mm"
android:background="@color/white"
android:paddingHorizontal="15mm"
android:layout_alignParentBottom="true">
<TextView
android:id="@+id/tv_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_btn"
android:text="缴纳"
android:layout_alignParentRight="true"
android:paddingHorizontal="30mm"
android:paddingVertical="4mm"
android:textColor="@color/white"
android:textSize="14sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="合计"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:layout_marginHorizontal="4mm"
android:textColor="#fff56c6c"
android:textSize="24sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="正望币"
android:textColor="#ff5e6d82"
android:textSize="12sp" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:layout_above="@id/rl_bottom"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/rl_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="缴费年月"
android:textSize="16sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/tv_desc"
android:gravity="center_vertical|right">
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10mm"
android:ellipsize="end"
android:hint="请选择"
android:maxLines="1"
android:textSize="15sp"
android:textStyle="bold" />
<ImageView
android:layout_width="6mm"
android:layout_height="10mm"
android:background="@mipmap/arrow_right_blue" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:paddingBottom="10mm">
<EditText
android:id="@+id/et_remark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20mm"
android:layout_marginTop="3mm"
android:background="@drawable/shape_input_white"
android:gravity="top"
android:hint="请填写备注…"
android:minLines="2"
android:padding="5mm"
android:textSize="16sp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_data"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="60mm"
android:layout_alignParentBottom="true"
android:gravity="center_vertical|right"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_refuse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10mm"
android:background="@drawable/shape_red_btn"
android:paddingHorizontal="20mm"
android:paddingVertical="5mm"
android:text="拒绝"
android:textColor="@color/white" />
<TextView
android:id="@+id/tv_agree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10mm"
android:background="@drawable/shape_green_btn"
android:paddingHorizontal="20mm"
android:paddingVertical="5mm"
android:text="同意"
android:textColor="@color/white" />
</LinearLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ll_bottom"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ll_bottom"
android:orientation="vertical"
android:paddingBottom="20mm">
<View style="@style/ViewX" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="缴费年月"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout>
<View style="@style/dividerX" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="审核状态"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout>
<View style="@style/dividerX" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="申请备注"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_remark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/flexible_background"
android:paddingVertical="10mm"
android:paddingLeft="10mm"
android:text="开票来源"
android:textSize="15sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_data"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ll_bottom"
android:orientation="vertical"
android:paddingBottom="20mm">
<View style="@style/ViewX" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="缴费年月"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout>
<View style="@style/dividerX" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="审核状态"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/flexible_text_gray"
android:textSize="15sp" />
</RelativeLayout>
<View style="@style/dividerX" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="15mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="申请备注"
android:textSize="15sp" />
<EditText
android:id="@+id/tv_remark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5mm"
android:background="@drawable/shape_input_white"
android:gravity="top"
android:hint="请填写备注…"
android:minLines="2"
android:padding="5mm"
android:textSize="16sp" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/flexible_background"
android:paddingVertical="10mm"
android:paddingLeft="10mm"
android:text="开票来源"
android:textSize="15sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_data"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:paddingBottom="5mm"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<View <View
......
<?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:layout_marginTop="10mm"
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"
android:layout_marginTop="5mm">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="邢台德龙钢铁客户"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="待生产"
android:textSize="14sp" />
</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: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_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="王紫逸"
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_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="王紫逸"
android:textColor="@color/flexible_text_gray"
android:textSize="13sp" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="4mm"
android:visibility="gone">
<TextView
android:id="@+id/tv_delete"
android:layout_width="60mm"
android:layout_height="wrap_content"
android:layout_marginRight="10mm"
android:background="@drawable/selector_btn_color"
android:gravity="center"
android:paddingHorizontal="7mm"
android:paddingVertical="4mm"
android:text="作废"
android:textColor="@color/white" />
<TextView
android:id="@+id/tv_modify"
android:layout_width="60mm"
android:layout_height="wrap_content"
android:background="@drawable/selector_btn_color"
android:gravity="center"
android:paddingHorizontal="7mm"
android:paddingVertical="4mm"
android:text="编辑"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5mm"
app:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="14mm"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="销售-贷款利息"
android:textSize="14sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:id="@+id/et_num"
android:inputType="number"
android:paddingHorizontal="5mm"
android:textColor="#fff56c6c"
android:background="@null"
android:textSize="24sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="正望币"
android:textColor="#ff5e6d82"
android:textSize="12sp"
/>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
\ 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_centerHorizontal="true"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingTop="10mm"
android:paddingBottom="20mm">
<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:text="税种"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
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:text="金额"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textSize="13sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_status"
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:text="审核状态"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textSize="13sp" />
</RelativeLayout>
<LinearLayout
android:id="@+id/rl_remark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm"
android:paddingHorizontal="10mm"
android:paddingVertical="4mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="审核备注"
android:textSize="13sp" />
<EditText
android:id="@+id/et_remark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="right"
android:layout_marginLeft="10mm"
android:background="@null"
android:hint="填写审核备注(标记错误必填)"
android:textSize="13sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_error"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="4mm"
android:background="@drawable/selector_btn_color"
android:paddingHorizontal="7mm"
android:paddingVertical="4mm"
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_centerHorizontal="true"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingTop="10mm"
android:paddingBottom="20mm">
<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:text="税种"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textSize="13sp" />
</RelativeLayout>
<LinearLayout
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:text="金额"
android:textSize="13sp" />
<EditText
android:id="@+id/tv_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:paddingVertical="5mm"
android:gravity="right"
android:textSize="13sp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/add" android:id="@+id/history"
android:title="添加" android:title="添加"
app:showAsAction="always" /> app:showAsAction="always" />
</menu> </menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/history"
android:title="缴费历史"
app:showAsAction="always" />
</menu>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论