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

1.外采购,供应,销售初步调整完成

2.//TODO erp用户激活测试,忘记/重置密码测试,往来(客户两个库),产品下单还差附件,mes,消息,刷新token
上级 b62757c6
......@@ -105,4 +105,5 @@ dependencies {
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.45-androidx'
implementation 'com.qmuiteam:qmui:2.0.0-alpha04'
implementation 'com.contrarywind:Android-PickerView:4.1.6'
implementation 'com.zhihu.android:matisse:0.5.2-beta3'
}
......@@ -776,7 +776,6 @@
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.work.WorkFinancialLogisticsSubmitActivity"
android:configChanges="keyboardHidden|orientation"
......@@ -785,6 +784,14 @@
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.store.StoreFinancialActivity"
android:configChanges="keyboardHidden|orientation"
android:label="上缴财税"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.wd.workoffice.fileprovider"
......
package com.wd.workoffice.bean;
import java.util.List;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class FinancialBean {
private List<RecordsBean> records;
public List<RecordsBean> getRecords() {
return records;
}
public void setRecords(List<RecordsBean> records) {
this.records = records;
}
public static class RecordsBean {
/**
* createdBy : 675
* createdByName : null
* createdTime : 2020-04-01 10:50:54
* updatedBy : null
* updatedByName : null
* updatedTime : null
* id : SO10757
* serialNumber : FT20040110505328
* payDept : 117
* totalMoney : 155.0
* status : 0
* applyRemark : 通过
* auditRemark : null
* applierId : 675
* auditorId : null
* applierName : 李凯
* payDeptName : 销售四公司
* auditorName : null
* payDate : 201911
* financeTaxItems : null
*/
private int createdBy;
private Object createdByName;
private String createdTime;
private Object updatedBy;
private Object updatedByName;
private Object updatedTime;
private String id;
private String serialNumber;
private int payDept;
private double totalMoney;
private String status;
private String applyRemark;
private Object auditRemark;
private int applierId;
private Object auditorId;
private String applierName;
private String payDeptName;
private Object auditorName;
private int payDate;
private Object financeTaxItems;
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 getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public int getPayDept() {
return payDept;
}
public void setPayDept(int payDept) {
this.payDept = payDept;
}
public double getTotalMoney() {
return totalMoney;
}
public void setTotalMoney(double totalMoney) {
this.totalMoney = totalMoney;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getApplyRemark() {
return applyRemark;
}
public void setApplyRemark(String applyRemark) {
this.applyRemark = applyRemark;
}
public Object getAuditRemark() {
return auditRemark;
}
public void setAuditRemark(Object auditRemark) {
this.auditRemark = auditRemark;
}
public int getApplierId() {
return applierId;
}
public void setApplierId(int applierId) {
this.applierId = applierId;
}
public Object getAuditorId() {
return auditorId;
}
public void setAuditorId(Object auditorId) {
this.auditorId = auditorId;
}
public String getApplierName() {
return applierName;
}
public void setApplierName(String applierName) {
this.applierName = applierName;
}
public String getPayDeptName() {
return payDeptName;
}
public void setPayDeptName(String payDeptName) {
this.payDeptName = payDeptName;
}
public Object getAuditorName() {
return auditorName;
}
public void setAuditorName(Object auditorName) {
this.auditorName = auditorName;
}
public int getPayDate() {
return payDate;
}
public void setPayDate(int payDate) {
this.payDate = payDate;
}
public Object getFinanceTaxItems() {
return financeTaxItems;
}
public void setFinanceTaxItems(Object financeTaxItems) {
this.financeTaxItems = financeTaxItems;
}
}
}
......@@ -170,6 +170,16 @@ public class ProductBean {
private int carNum;
private int factoryId;
private String factoryName;
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getFactoryId() {
return factoryId;
}
......
package com.wd.workoffice.retrofit;
import com.alibaba.fastjson.JSONObject;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.Config;
import com.wd.workoffice.bean.ProDetail;
import org.json.JSONObject;
import java.util.Map;
import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
......@@ -370,6 +372,84 @@ public interface ApiService {
@POST("saleOrder/start")
Observable<BaseBean> submitSaleOrder(@Body RequestBody requestBody);
/**
* 下单
* <p>
* customerId 客户ID
* launchUserId 下单用户ID
* launchDeptId 下单部门ID
* receiveDeptId 接单部门ID
* launchOrderAmount下单总金额
* inStockId 入库仓库id
* expandInfo 第二层:订单扩展信息
* 备注: 第二层:订单扩展信息
* <p>
* orderItems
*
* @return
*/
@POST("/crucibleOrder/start")
Observable<BaseBean> submitCrucibleOrder(@Body RequestBody requestBody);
/**
* 下单
* <p>
* launchUserId 下单用户ID
* launchDeptId 下单部门ID
* receiveDeptId 接单部门ID
* launchOrderAmount下单总金额
* inStockId 入库仓库id
* expandInfo 第二层:订单扩展信息
* 备注: 第二层:订单扩展信息
* <p>
* orderItems
*
* @return
*/
@POST("/supplierOrder/start")
Observable<BaseBean> submitSupplierOrder(@Body RequestBody requestBody);
/**
* 下单
* <p>
* launchUserId 下单用户ID
* launchDeptId 下单部门ID
* receiveDeptId 接单部门ID
* launchOrderAmount下单总金额
* inStockId 入库仓库id
* expandInfo 第二层:订单扩展信息
* 备注: 第二层:订单扩展信息
*
* <p>
* orderItems
*type 类别 (暂时使用product)
* product(产品)
* service(服务)
* @return
*/
@POST("/insideOrder/start")
Observable<BaseBean> submitInsideOrder(@Body RequestBody requestBody);
/**
* 下单
* <p>
* launchUserId 下单用户ID
* launchDeptId 下单部门ID
* receiveDeptId 接单部门ID
* launchOrderAmount下单总金额
* inStockId 入库仓库id
* expandInfo 第二层:订单扩展信息
*customerId
* supplierId
* subProcessId
* 备注: 第二层:订单扩展信息
*
* <p>
* orderItems
* @return
*/
@POST("/purchaseOrder/start")
Observable<BaseBean> submitPurchaseOrder(@Body RequestBody requestBody);
/**
* 获取客户分厂
*
......@@ -947,4 +1027,19 @@ public interface ApiService {
Observable<BaseBean> logisticsApply(@Body RequestBody requestBody);
/**
* 获取财税分页
*
* @return
*/
@GET("/finance-tax/page/list")
Observable<BaseBean> storeFinancial(@QueryMap Map<String,Object> param);
/**
* 修改个人信息,头像和用户名(app)
*
* @return
*/
@Multipart
@POST("/open/uploadImgs")
Observable<JSONObject> upload(@Part MultipartBody.Part avatar);
}
package com.wd.workoffice.ui.activity.bat.store;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.material.tabs.TabLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.ui.activity.bat.work.WorkFinancialLogisticAddActivity;
import com.wd.workoffice.ui.adapter.VpDataAdapter;
import com.wd.workoffice.ui.fg.StoreFinancialFragment;
import com.wd.workoffice.ui.fg.WorkLogisticsFragment;
import java.util.ArrayList;
import java.util.List;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import butterknife.ButterKnife;
import static com.google.android.material.tabs.TabLayout.MODE_FIXED;
/**
* 财税
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class StoreFinancialActivity extends WorkToolBarActivity {
@BindView(R.id.tl_tab)
TabLayout tlTab;
@BindView(R.id.vp_data)
ViewPager vpData;
private String tab[] = {
"全部","待审核", "不通过", "已通过"};
private String order[] = {
"", "0", "2", "1"};//0:待审核 1:已通过 2已驳回 3:待重审 9:已作废
@Override
protected void initView() {
ButterKnife.bind(this);
tlTab.setupWithViewPager(vpData);
tlTab.setTabMode(MODE_FIXED);
}
@Override
protected void initData() {
FragmentManager sfm = getSupportFragmentManager();
List<Fragment> data = new ArrayList<>();
for (int i = 0; i < tab.length; i++) {
StoreFinancialFragment saleFragment = new StoreFinancialFragment();
Bundle bundle = new Bundle();
bundle.putString("state", order[i]);
saleFragment.setArguments(bundle);
data.add(saleFragment);
}
VpDataAdapter vpFgAdapter = new VpDataAdapter(sfm, data);
vpData.setAdapter(vpFgAdapter);
for (int i = 0; i < tab.length; i++) {
tlTab.getTabAt(i).setText(tab[i]);
}
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_order;
}
@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(WorkFinancialLogisticAddActivity.class);
break;
}
return super.onOptionsItemSelected(item);
}
}
......@@ -16,6 +16,7 @@ import com.wd.workoffice.bean.workEnum.PermissionType;
import com.wd.workoffice.contract.BatSaleContract;
import com.wd.workoffice.presenter.BatSalePresenter;
import com.wd.workoffice.util.DialogUtils;
import com.wd.workoffice.util.UserKeeper;
import java.util.ArrayList;
import java.util.List;
......@@ -26,7 +27,7 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* 商店-外出库
* 商店-外采购
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
......@@ -103,7 +104,12 @@ public class StoreOutsourcingActivity extends WorkToolBarActivity implements Bat
toast("请先选择客户");
return;
}
startActivityForResult(StoreSaleClientActivity.class, 10002,"code","SUPPLIER","supplier","选择供应商");
if (chooseDep == null) {
toast("请先选择接单部门");
return;
}
startActivityForResult(StoreSaleClientActivity.class, 10002,
"depId",chooseDep.getId()+"","flag","1","code","SUPPLIER","supplier","选择供应商");
break;
case R.id.rl_process:
if (clientId == null) {
......@@ -118,7 +124,11 @@ public class StoreOutsourcingActivity extends WorkToolBarActivity implements Bat
return;
}
if (chooseDep == null) {
toast("请选择生产厂");
toast("请选择部门");
return;
}
if (supplierId == null) {
toast("请选择供应商");
return;
}
if (chooseProcess == null) {
......@@ -126,8 +136,14 @@ public class StoreOutsourcingActivity extends WorkToolBarActivity implements Bat
return;
}
startActivity(StoreSaleProductActivity.class, "depId", chooseDep.getId() + "",
"process", chooseProcess.getName(), "clientName", tvClient.getText().toString(),
"depName", chooseDep.getName(),"transitPartId", supplierId.toString(),"code", PermissionType.PROCESS_PURCHASE.getCode());
"subProcess", chooseProcess.getName(),
"clientName", tvClient.getText().toString(),
"depName", chooseDep.getName(),
"customerId", clientId.toString(),
"transitPartId", supplierId.toString(),
"supplierId", supplierId.toString(),
"supplierName", tvSupplier.getText().toString(),
"code", PermissionType.PROCESS_PURCHASE.getCode());
break;
}
}
......@@ -135,6 +151,7 @@ public class StoreOutsourcingActivity extends WorkToolBarActivity implements Bat
@Override
public void processList(List<ProcessBean> dataList) {
processList = dataList;
processNameList.clear();
for (ProcessBean process : dataList) {
processNameList.add(process.getName());
}
......@@ -152,6 +169,7 @@ public class StoreOutsourcingActivity extends WorkToolBarActivity implements Bat
@Override
public void depList(List<DepBean> dataList) {
depList = dataList;
depNameList.clear();
for (DepBean dep : dataList) {
depNameList.add(dep.getName());
}
......
......@@ -113,9 +113,15 @@ public class StoreSaleActivity extends WorkToolBarActivity implements BatSaleCon
toast("请选择子流程");
return;
}
startActivity(StoreSaleProductActivity.class, "depId", chooseDep.getId() + "",
"process", chooseProcess.getName(), "subProcess", chooseProcess.getId() + "", "clientName", tvClient.getText().toString(),
"depName", chooseDep.getName(), "transitPartId", clientId.toString(), "code", PermissionType.PROCESS_SALE.getCode());
startActivity(StoreSaleProductActivity.class,
"depId", chooseDep.getId() + "",
"process", chooseProcess.getName(),
"subProcess", chooseProcess.getId() + "",
"clientName", tvClient.getText().toString(),
"depName", chooseDep.getName(),
"transitPartId", clientId.toString(),
"customerId", clientId.toString(),
"code", PermissionType.PROCESS_SALE.getCode());
break;
}
}
......
......@@ -100,14 +100,16 @@ public class StoreSaleCarActivity extends WorkToolBarActivity {
public void onViewClicked() {
String allPrice = "";
for (ProductBean.RecordsBean recordsBean : productList) {
allPrice = MathUtils.add(allPrice, MathUtils.multiply(recordsBean.getCarNum() + "", recordsBean.getCarPrice(), 2), 2);
allPrice = MathUtils.add(allPrice, MathUtils.multiply(recordsBean.getCarNum() + "", recordsBean.getInternalPrice()+"", 2), 2);
}
startActivity(StoreSaleConfirmActivity.class, "pro", JSON.toJSONString(productList),
"subProcess", getIntent().getStringExtra("subProcess"),
"supplierId",getIntent().getStringExtra("supplierId"),
"inStockId",getIntent().getStringExtra("inStockId"),
"customerId", getIntent().getStringExtra("customerId"),
"receiveDeptId", getIntent().getStringExtra("receiveDeptId")
, "code", getIntent().getStringExtra("code")
, "launchOrderAmount", allPrice);
"receiveDeptId", getIntent().getStringExtra("receiveDeptId"),
"code", getIntent().getStringExtra("code"),
"launchOrderAmount", allPrice);
}
@Override
......@@ -131,7 +133,7 @@ public class StoreSaleCarActivity extends WorkToolBarActivity {
tvNum.setText("共 ".concat(productList.size() + "").concat(" 件"));
String allPrice = "";
for (ProductBean.RecordsBean recordsBean : productList) {
allPrice = MathUtils.add(allPrice, MathUtils.multiply(recordsBean.getCarNum() + "", recordsBean.getCarPrice(), 2), 2);
allPrice = MathUtils.add(allPrice, MathUtils.multiply(recordsBean.getCarNum() + "", recordsBean.getInternalPrice()+"", 2), 2);
}
tvPrice.setText("总计: ¥ ".concat(allPrice));
}
......
......@@ -63,6 +63,7 @@ public class StoreSaleClientActivity extends WorkToolBarActivity {
if (!TextUtils.isEmpty(getIntent().getStringExtra("supplier"))) {
setTitle(getIntent().getStringExtra("supplier"));
}
clientList = new ArrayList<>();
clientAdapter = new StoreClientAdapter(R.layout.item_store_client, clientList);
clientAdapter.bindToRecyclerView(rvClient);
......@@ -73,6 +74,10 @@ public class StoreSaleClientActivity extends WorkToolBarActivity {
} else {
param.put("searchType", getIntent().getStringExtra("code"));
}
String depId = getIntent().getStringExtra("depId");
if (!TextUtils.isEmpty(depId)) {
param.put("deptId", depId);
}
getData();
}
......@@ -81,10 +86,6 @@ public class StoreSaleClientActivity extends WorkToolBarActivity {
if (TextUtils.isEmpty(getIntent().getStringExtra("flag"))) {
observable = RtfUtils.getRtf().getClient(param);
} else {
String depId = getIntent().getStringExtra("depId");
if (!TextUtils.isEmpty(depId)) {
param.put("deptId", depId);
}
observable = RtfUtils.getRtf().getClientOut(param);
}
observable.compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
......
package com.wd.workoffice.ui.activity.bat.store;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.Menu;
......@@ -7,6 +8,7 @@ import android.view.MenuItem;
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;
......@@ -16,6 +18,7 @@ import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.ProductBean;
import com.wd.workoffice.bean.event.ModifyCarEvent;
import com.wd.workoffice.bean.workEnum.PermissionType;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.StoreProductAdapter;
......@@ -47,14 +50,6 @@ import io.reactivex.disposables.Disposable;
**/
public class StoreSaleProductActivity extends WorkToolBarActivity {
@BindView(R.id.tv_order_type)
TextView tvOrderType;
@BindView(R.id.tv_factory)
TextView tvFactory;
@BindView(R.id.tv_process)
TextView tvProcess;
@BindView(R.id.tv_client)
TextView tvClient;
@BindView(R.id.tv_choose)
TextView tvChoose;
@BindView(R.id.et_key)
......@@ -63,19 +58,60 @@ public class StoreSaleProductActivity extends WorkToolBarActivity {
Button btnSearch;
@BindView(R.id.rv_product)
RecyclerView rvProduct;
@BindView(R.id.tv_desc1)
TextView tvDesc1;
@BindView(R.id.tv_desc2)
TextView tvDesc2;
@BindView(R.id.tv_desc3)
TextView tvDesc3;
@BindView(R.id.tv_desc4)
TextView tvDesc4;
@BindView(R.id.tv_desc5)
TextView tvDesc5;
@BindView(R.id.tv_receive_dep)
TextView tvReceiveDep;
@BindView(R.id.ll_choose)
LinearLayout llChoose;
private Map<String, Object> param;
private List<ProductBean.RecordsBean> clientList;
private StoreProductAdapter clientAdapter;
private int page = 1;
private List<ProductBean.RecordsBean> carList = new ArrayList<>();
private String code;
@Override
protected void initView() {
ButterKnife.bind(this);
rvProduct.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
tvClient.setText("客户名称:" + getIntent().getStringExtra("clientName"));
tvFactory.setText("厂家:" + getIntent().getStringExtra("depName"));
tvProcess.setText("订单流程:" + getIntent().getStringExtra("process"));
code = getIntent().getStringExtra("code");
if (TextUtils.equals(code, PermissionType.PROCESS_PURCHASE.getCode())) {
tvDesc1.setText("订单类型:" + WorkUtils.getPermissionName(getIntent().getStringExtra("code")));
tvDesc2.setText("客户名称:" + getIntent().getStringExtra("clientName"));
tvDesc3.setText("生产厂:" + getIntent().getStringExtra("depName"));
tvDesc4.setText("供应商:" + getIntent().getStringExtra("supplierName"));
tvDesc5.setText("订单子流程:" + getIntent().getStringExtra("subProcess"));
} else if (TextUtils.equals(code, PermissionType.PROCESS_SALE.getCode())) {
tvDesc1.setText("客户名称:" + getIntent().getStringExtra("clientName"));
tvDesc2.setText("厂家:" + getIntent().getStringExtra("depName"));
tvDesc5.setText("订单流程:" + getIntent().getStringExtra("process"));
tvDesc3.setVisibility(View.GONE);
tvDesc4.setVisibility(View.GONE);
} else if (TextUtils.equals(code, PermissionType.PROCESS_INSIDE.getCode())) {
tvReceiveDep.setText("接单部门:" + getIntent().getStringExtra("depName"));
llChoose.setVisibility(View.GONE);
tvReceiveDep.setVisibility(View.VISIBLE);
} else if (TextUtils.equals(code, PermissionType.PROCESS_SUPPLY.getCode())) {
tvDesc1.setText("订单类型:" + WorkUtils.getPermissionName(getIntent().getStringExtra("code")));
tvDesc2.setText("客户名称:" + getIntent().getStringExtra("clientName"));
tvDesc3.setText("生产厂:" + getIntent().getStringExtra("depName"));
tvDesc4.setText("供应商:" + getIntent().getStringExtra("supplierName"));
tvDesc5.setText("订单子流程:" + getIntent().getStringExtra("subProcess"));
} else if (TextUtils.equals(code, PermissionType.PROCESS_CRUCIBLE.getCode())) {
tvReceiveDep.setText("接单部门:" + getIntent().getStringExtra("depName"));
llChoose.setVisibility(View.GONE);
tvReceiveDep.setVisibility(View.VISIBLE);
} else {
}
}
@Override
......@@ -87,14 +123,28 @@ public class StoreSaleProductActivity extends WorkToolBarActivity {
private void openDialog(ProductBean.RecordsBean data) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.view_add_cart, null);
LinearLayout llPrice = view.findViewById(R.id.ll_price);
// if (TextUtils.equals(code, PermissionType.PROCESS_PURCHASE.getCode())) {
// } else if (TextUtils.equals(code, PermissionType.PROCESS_SALE.getCode())) {
// } else if (TextUtils.equals(code, PermissionType.PROCESS_INSIDE.getCode())) {
// } else if (TextUtils.equals(code, PermissionType.PROCESS_SUPPLY.getCode())) {
// llPrice.setVisibility(View.GONE);
// } else if (TextUtils.equals(code, PermissionType.PROCESS_CRUCIBLE.getCode())) {
// } else {
// }
TextView tvOk = view.findViewById(R.id.tv_ok);
TextView tvCancel = view.findViewById(R.id.tv_cancel);
AddAndReduceView num = view.findViewById(R.id.ar_num);
EditText etPrice = view.findViewById(R.id.et_price);
for (ProductBean.RecordsBean recordsBean : carList) {
if (data.getId() == recordsBean.getId()) {
etPrice.setText(recordsBean.getCarPrice());
num.setNumber(recordsBean.getCarNum());
if (TextUtils.equals(code, PermissionType.PROCESS_SUPPLY.getCode())) {
llPrice.setVisibility(View.GONE);
} else {
for (ProductBean.RecordsBean recordsBean : carList) {
if (data.getId() == recordsBean.getId()) {
etPrice.setText(recordsBean.getCarPrice());
num.setNumber(recordsBean.getCarNum());
}
}
}
builder.setView(view);
......@@ -102,7 +152,7 @@ public class StoreSaleProductActivity extends WorkToolBarActivity {
tvOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.isEmpty(etPrice.getText().toString())) {
if (!TextUtils.equals(code, PermissionType.PROCESS_SUPPLY.getCode()) && TextUtils.isEmpty(etPrice.getText().toString())) {
toast("请填写外部价格");
return;
}
......@@ -152,7 +202,7 @@ public class StoreSaleProductActivity extends WorkToolBarActivity {
param.put("current", 1);
param.put("processType", getIntent().getStringExtra("code"));
param.put("outDeptId", getIntent().getStringExtra("depId"));
if (TextUtils.isEmpty(getIntent().getStringExtra("transitPartId"))) {
if (!TextUtils.isEmpty(getIntent().getStringExtra("transitPartId"))) {
param.put("transitPartId", getIntent().getStringExtra("transitPartId"));
}
// param.put("searchValue", "1");
......@@ -178,7 +228,13 @@ public class StoreSaleProductActivity extends WorkToolBarActivity {
toast(data.getMessage());
return;
}
List<ProductBean.RecordsBean> dataList = JSON.parseObject(data.getData().toString(), ProductBean.class).getRecords();
List<ProductBean.RecordsBean> dataList;
ProductBean jsonData = JSON.parseObject(data.getData().toString(), ProductBean.class);
if (jsonData != null) {
dataList = jsonData.getRecords();
} else {
dataList = new ArrayList<>();
}
if (page == 1) {
clientList.clear();
clientList.addAll(dataList);
......@@ -235,9 +291,14 @@ public class StoreSaleProductActivity extends WorkToolBarActivity {
toast("购物车没有产品");
return super.onOptionsItemSelected(item);
}
startActivity(StoreSaleCarActivity.class, "pro", JSON.toJSONString(carList),
"subProcess", getIntent().getStringExtra("subProcess"), "customerId", getIntent().getStringExtra("transitPartId"),
"receiveDeptId", getIntent().getStringExtra("depId"), "code", getIntent().getStringExtra("code"));
startActivity(StoreSaleCarActivity.class,
"pro", JSON.toJSONString(carList),
"supplierId", getIntent().getStringExtra("supplierId"),
"subProcess", getIntent().getStringExtra("subProcess"),
"inStockId", getIntent().getStringExtra("inStockId"),
"customerId", getIntent().getStringExtra("customerId"),
"receiveDeptId", getIntent().getStringExtra("depId"),
"code", getIntent().getStringExtra("code"));
break;
}
return super.onOptionsItemSelected(item);
......@@ -278,4 +339,10 @@ public class StoreSaleProductActivity extends WorkToolBarActivity {
carList.addAll(JSON.parseArray(pro, ProductBean.RecordsBean.class));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) invocation
ButterKnife.bind(this);
}
}
......@@ -77,7 +77,7 @@ public class StoreSupplierActivity extends WorkToolBarActivity implements BatSal
protected void initData() {
batSalePresenter.getDep(PermissionType.SUPPLY_SELL.getCode());
stockParam = WorkUtils.simpleParam();
stockParam.put("sign", "SEND");
// stockParam.put("sign", "SEND");
stockParam.put("deptId", UserKeeper.getInstance().getUserDepId());
}
......@@ -99,7 +99,8 @@ public class StoreSupplierActivity extends WorkToolBarActivity implements BatSal
toast("请先选择接单部门");
return;
}
startActivityForResult(StoreSaleClientActivity.class, 10002, "code", "SUPPLIER", "supplier", "选择供应商");
startActivityForResult(StoreSaleClientActivity.class, 10002,
"flag","1","depId",chooseDep.getId()+"","code", "SUPPLIER", "supplier", "选择供应商");
break;
case R.id.rl_dep:
depDialog.show();
......@@ -124,8 +125,17 @@ public class StoreSupplierActivity extends WorkToolBarActivity implements BatSal
toast("请选择入库仓库");
return;
}
startActivity(StoreSaleProductActivity.class, "depId", chooseDep.getId() + "",
"depName", chooseDep.getName(), "transitPartId", supplierId.toString(), "code", PermissionType.PROCESS_SUPPLY.getCode());
startActivity(StoreSaleProductActivity.class,
"depId", chooseDep.getId() + "",
"depName", chooseDep.getName(),
"inStockId", chooseStock.getId()+"",
"customerId", "",
"clientName", "",
"subProcess", "",
"supplierId", supplierId.toString(),
"supplierName", tvSupplier.getText().toString(),
"transitPartId", supplierId.toString(),
"code", PermissionType.PROCESS_SUPPLY.getCode());
break;
}
}
......@@ -138,6 +148,7 @@ public class StoreSupplierActivity extends WorkToolBarActivity implements BatSal
@Override
public void depList(List<DepBean> dataList) {
depList = dataList;
depNameList.clear();
for (DepBean dep : dataList) {
depNameList.add(dep.getName());
}
......@@ -154,6 +165,7 @@ public class StoreSupplierActivity extends WorkToolBarActivity implements BatSal
@Override
public void getStock(List<StockBean> dataList) {
stockList = dataList;
stockNameList.clear();
for (StockBean dep : dataList) {
stockNameList.add(dep.getName());
}
......@@ -174,7 +186,7 @@ public class StoreSupplierActivity extends WorkToolBarActivity implements BatSal
String clientName = data.getStringExtra("clientName");
supplierId = data.getIntExtra("id", 0);
tvSupplier.setText(clientName);
stockParam.put("customerId", supplierId);
// stockParam.put("customerId", supplierId);
batSalePresenter.getStock(stockParam);
}
}
......
......@@ -27,7 +27,7 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* 商店-坩埚
* 商店-内部交易
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
......
......@@ -27,7 +27,7 @@ import flexible.xd.android_base.utils.ToastUtil;
*/
public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, BaseViewHolder> {
int type;//1 确认订单页面
int type=0;//1 确认订单页面 2 单数量无价格
public StoreCarAdapter(int layoutResId, List data) {
super(layoutResId, data);
......@@ -47,7 +47,13 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
helper.setText(R.id.tv_price, "¥".concat(String.valueOf(item.getInternalPrice())));
helper.setText(R.id.tv_unit, String.valueOf(item.getWeight()).concat("吨"));
helper.setText(R.id.tv_all_price, MathUtils.multiply(item.getCarNum() + "", item.getCarPrice(), 2));
if (type != 1) {
if (type == 1) {
helper.addOnClickListener(R.id.rl_choose_dep);
helper.addOnClickListener(R.id.rl_upload);
if (!TextUtils.isEmpty(item.getFactoryName())) {
helper.setText(R.id.tv_choose_dep, item.getFactoryName());
}
} else if(type == 2){
helper.addOnClickListener(R.id.tv_delete);
AddAndReduceView num = helper.getView(R.id.ar_num);
num.setOnNumberChangedListener(new AddAndReduceView.OnNumberChangedListener() {
......@@ -84,11 +90,19 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
});
num.setNumber(item.getCarNum());
} else {
helper.addOnClickListener(R.id.rl_choose_dep);
helper.addOnClickListener(R.id.rl_upload);
if (!TextUtils.isEmpty(item.getFactoryName())) {
helper.setText(R.id.tv_choose_dep, item.getFactoryName());
}
helper.addOnClickListener(R.id.tv_delete);
AddAndReduceView num = helper.getView(R.id.ar_num);
num.setOnNumberChangedListener(new AddAndReduceView.OnNumberChangedListener() {
@Override
public void OnNumberChanged(int vs) {
item.setCarNum(vs);
helper.setText(R.id.tv_all_price, MathUtils.multiply(vs + "", item.getCarPrice(), 2));
EventBus.getDefault().post(new ModifyCarEvent(JSON.toJSONString(getData())));
}
});
EditText etPrice = helper.getView(R.id.et_price);
helper.setGone(R.id.ll_price,false);
num.setNumber(item.getCarNum());
}
}
......
......@@ -11,6 +11,7 @@ import com.wd.workoffice.app.WorkBaseFg;
import com.wd.workoffice.bean.vo.BatLayoutVo;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.activity.bat.store.StoreFinancialActivity;
import com.wd.workoffice.ui.activity.bat.work.WorkInStockActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreCrucibleActivity;
import com.wd.workoffice.ui.activity.bat.store.StoreOutsourcingActivity;
......@@ -204,6 +205,7 @@ public class MainFragment extends WorkBaseFg {
case 3:
break;
case 4:
startActivity(StoreFinancialActivity.class);
break;
case 5:
startActivity(StoreCrucibleActivity.class);
......
package com.wd.workoffice.ui.fg;
import android.os.Bundle;
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.WorkBaseFg;
import com.wd.workoffice.bean.FinancialBean;
import com.wd.workoffice.bean.LogisticBean;
import com.wd.workoffice.bean.event.CheckLogisticEvent;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.activity.bat.work.WorkLogisticsDetailActivity;
import com.wd.workoffice.ui.adapter.WorkLogisticAdapter;
import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import androidx.annotation.Nullable;
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 StoreFinancialFragment extends WorkBaseFg {
@BindView(R.id.rv_data)
RecyclerView rvData;
@BindView(R.id.srl_refresh)
SmartRefreshLayout srlRefresh;
private String state;
private int page = 1;
private Map<String, Object> param;
private WorkLogisticAdapter dataAdapter;
private List<FinancialBean.RecordsBean> dataList;
@Override
protected void initView() {
ButterKnife.bind(this, getContentView());
rvData.setLayoutManager(new LinearLayoutManager(getActivity(), RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
param = WorkUtils.pageKey();
param.put("status", state);
page = 1;
param.put("current", page);
dataList = new ArrayList<>();
dataAdapter = new WorkLogisticAdapter(R.layout.item_logistics, dataList);
dataAdapter.bindToRecyclerView(rvData);
dataAdapter.setEmptyView(R.layout.view_empty_content, rvData);
getData();
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle arguments = getArguments();
if (arguments != null) {
state = arguments.getString("state");
}
}
private void getData() {
RtfUtils.getRtf().storeFinancial(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<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
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(WorkLogisticsDetailActivity.class, "info",JSON.toJSONString(dataList.get(position)));
}
});
}
@Override
protected int layoutId() {
return R.layout.fg_work_contacts;
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(CheckLogisticEvent event) {
page = 1;
param.put("current", page);
getData();
}
}
package com.wd.workoffice.util;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;
import com.bumptech.glide.request.RequestOptions;
import com.zhihu.matisse.engine.ImageEngine;
public class Glide4Engine implements ImageEngine {
@Override
public void loadThumbnail(Context context, int resize, Drawable placeholder, ImageView imageView, Uri uri) {
Glide.with(context)
.asBitmap() // some .jpeg files are actually gif
.load(uri)
.apply(new RequestOptions()
.override(resize, resize)
.placeholder(placeholder)
.centerCrop())
.into(imageView);
}
@Override
public void loadGifThumbnail(Context context, int resize, Drawable placeholder, ImageView imageView,
Uri uri) {
Glide.with(context)
.asBitmap() // some .jpeg files are actually gif
.load(uri)
.apply(new RequestOptions()
.override(resize, resize)
.placeholder(placeholder)
.centerCrop())
.into(imageView);
}
@Override
public void loadImage(Context context, int resizeX, int resizeY, ImageView imageView, Uri uri) {
Glide.with(context)
.load(uri)
.apply(new RequestOptions()
.override(resizeX, resizeY)
.priority(Priority.HIGH)
.fitCenter())
.into(imageView);
}
@Override
public void loadGifImage(Context context, int resizeX, int resizeY, ImageView imageView, Uri uri) {
Glide.with(context)
.asGif()
.load(uri)
.apply(new RequestOptions()
.override(resizeX, resizeY)
.priority(Priority.HIGH)
.fitCenter())
.into(imageView);
}
@Override
public boolean supportAnimatedGif() {
return true;
}
}
\ No newline at end of file
......@@ -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.bean.workEnum.PermissionType;
import com.wd.workoffice.retrofit.RtfUtils;
import java.io.File;
......@@ -135,6 +136,22 @@ public class WorkUtils {
}
return name;
}
/**
* name:流程code
*
* @param code
* @return
*/
public static String getPermissionName(String code) {
String name ="";
for (PermissionType value : PermissionType.values()) {
if (TextUtils.equals(value.getCode(),code)){
name=value.getName();
}
}
return name;
}
/**
* 财务状态
* 0未审核 1已通过 2不通过
......
......@@ -11,7 +11,15 @@
android:layout_height="wrap_content"
android:padding="10mm">
<TextView
android:id="@+id/tv_receive_dep"
android:layout_width="wrap_content"
android:visibility="gone"
android:layout_height="wrap_content"
android:padding="5mm" />
<LinearLayout
android:id="@+id/ll_choose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
......@@ -27,7 +35,7 @@
android:textStyle="bold" />
<TextView
android:id="@+id/tv_order_type"
android:id="@+id/tv_desc1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3mm"
......@@ -36,7 +44,7 @@
android:textSize="12sp" />
<TextView
android:id="@+id/tv_factory"
android:id="@+id/tv_desc2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3mm"
......@@ -45,7 +53,7 @@
android:textSize="12sp" />
<TextView
android:id="@+id/tv_process"
android:id="@+id/tv_desc3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3mm"
......@@ -53,6 +61,14 @@
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_desc4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3mm"
android:text="订单流程:销售二公司销售默认流程"
android:textColor="@color/flexible_text_gray"
android:textSize="12sp" />
<RelativeLayout
android:layout_width="match_parent"
......@@ -60,7 +76,7 @@
android:layout_marginTop="3mm">
<TextView
android:id="@+id/tv_client"
android:id="@+id/tv_desc5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
......@@ -133,6 +149,6 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_product"
android:layout_width="match_parent"
android:layout_marginTop="10mm"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:layout_marginTop="10mm" />
</LinearLayout>
\ No newline at end of file
......@@ -178,7 +178,6 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="18mm"
android:layout_alignParentRight="true"
android:text="拆分生产订单"
......
......@@ -155,6 +155,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/ll_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
......
......@@ -17,6 +17,7 @@
android:textStyle="bold" />
<LinearLayout
android:id="@+id/ll_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30mm"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论