提交 36d33404 authored 作者: lgd's avatar lgd

1.修改数字增减框

2.//TODO 坩埚下单,mes其他页面,mes用户反馈空也展示,编辑任务担当无法修改
上级 0b062579
......@@ -167,7 +167,7 @@ public class ProductBean {
private String transitPartTypeCode;
private Object remark;
private String carPrice;
private int carNum;
private String carNum;
private double carDoubleNum;
private int factoryId;
private String factoryName;
......@@ -259,11 +259,11 @@ public class ProductBean {
this.carPrice = carPrice;
}
public int getCarNum() {
public String getCarNum() {
return carNum;
}
public void setCarNum(int carNum) {
public void setCarNum(String carNum) {
this.carNum = carNum;
}
......
......@@ -186,7 +186,7 @@ public class TicketAddBean {
private Object customerBranchFactoryName;
private Object orderTypeName;
private String carPrice;
private int carNum;
private String carNum;
public String getCarPrice() {
return carPrice;
......@@ -196,11 +196,11 @@ public class TicketAddBean {
this.carPrice = carPrice;
}
public int getCarNum() {
public String getCarNum() {
return carNum;
}
public void setCarNum(int carNum) {
public void setCarNum(String carNum) {
this.carNum = carNum;
}
public int getCreatedBy() {
......
......@@ -88,7 +88,7 @@ public class ProductOrderProTargetActivity extends WorkToolBarActivity {
for (ProductBean.RecordsBean recordsBean : carList) {
if (data.getId() == recordsBean.getId()) {
etPrice.setText(recordsBean.getCarPrice());
num.setNumber(Integer.valueOf(recordsBean.getCarNum()));
num.setNumber(recordsBean.getCarNum());
}
}
builder.setView(view);
......@@ -124,7 +124,7 @@ public class ProductOrderProTargetActivity extends WorkToolBarActivity {
* @param number 数量
* @param price 单价
*/
private void addCart(ProductBean.RecordsBean chooseProduct, int number, String price) {
private void addCart(ProductBean.RecordsBean chooseProduct, String number, String price) {
boolean isHas = false;
for (ProductBean.RecordsBean recordsBean : carList) {
if (chooseProduct.getId() == recordsBean.getId()) {
......
......@@ -669,7 +669,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
* @param number 数量
* @param price 单价
*/
private void addCart(ProductBean.RecordsBean chooseProduct, int number, String price) {
private void addCart(ProductBean.RecordsBean chooseProduct, String number, String price) {
boolean isHas = false;
for (ProductBean.RecordsBean recordsBean : carList) {
if (chooseProduct.getId() == recordsBean.getId()) {
......@@ -744,7 +744,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
addCartDialog.show();
}
private void addCartInside(TradingBean.RecordsBean quantity, List<ProductBean.RecordsBean> data, int number) {
private void addCartInside(TradingBean.RecordsBean quantity, List<ProductBean.RecordsBean> data, String number) {
for (ProductBean.RecordsBean bean : data) {
bean.setCarNum(number);
}
......
......@@ -138,7 +138,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.getInternalPrice()+"", 2), 2);
allPrice = MathUtils.add(allPrice, MathUtils.multiply(recordsBean.getCarNum(), recordsBean.getInternalPrice()+"", 3), 3);
}
tvPrice.setText("总计: ¥ ".concat(allPrice));
}
......
......@@ -167,7 +167,7 @@ public class StoreSaleProductActivity extends WorkToolBarActivity {
* @param number 数量
* @param price 单价
*/
private void addCart(ProductBean.RecordsBean chooseProduct, int number, String price) {
private void addCart(ProductBean.RecordsBean chooseProduct, String number, String price) {
boolean isHas = false;
for (ProductBean.RecordsBean recordsBean : carList) {
if (chooseProduct.getId() == recordsBean.getId()) {
......
......@@ -137,7 +137,7 @@ public class StoreTradingProductActivity extends WorkToolBarActivity {
addCartDialog.show();
}
private void addCart(TradingBean.RecordsBean quantity, List<ProductBean.RecordsBean> data, int number) {
private void addCart(TradingBean.RecordsBean quantity, List<ProductBean.RecordsBean> data, String number) {
for (ProductBean.RecordsBean bean : data) {
bean.setCarNum(number);
}
......
......@@ -109,7 +109,7 @@ public class DeviceBuyProductActivity extends WorkToolBarActivity {
* @param number 数量
* @param price 单价
*/
private void addCart(DeviceBean.RecordsBean chooseProduct, int number, String price) {
private void addCart(DeviceBean.RecordsBean chooseProduct, String number, String price) {
boolean isHas = false;
for (DeviceBean.RecordsBean recordsBean : carList) {
if (chooseProduct.getId() == recordsBean.getId()) {
......
......@@ -90,7 +90,7 @@ public class WorkChooseProductActivity extends WorkToolBarActivity {
num.setNumber(recordsBean.getCarNum());
}
}
num.setMaxNum(data.getProductCount());
num.setMaxNum(Double.valueOf(data.getProductCount()));
builder.setView(view);
AlertDialog addCartDialog = builder.create();
tvOk.setOnClickListener(new View.OnClickListener() {
......@@ -124,7 +124,7 @@ public class WorkChooseProductActivity extends WorkToolBarActivity {
* @param number 数量
* @param price 单价
*/
private void addCart(TicketAddBean.RecordsBean chooseProduct, int number, String price) {
private void addCart(TicketAddBean.RecordsBean chooseProduct, String number, String price) {
boolean isHas = false;
for (TicketAddBean.RecordsBean recordsBean : carList) {
if (chooseProduct.getId() == recordsBean.getId()) {
......
......@@ -41,11 +41,12 @@ public class DeviceCarAdapter extends BaseQuickAdapter<DeviceBean.RecordsBean, B
AddAndReduceView num = helper.getView(R.id.ar_num);
num.setOnNumberChangedListener(new AddAndReduceView.OnNumberChangedListener() {
@Override
public void OnNumberChanged(int vs) {
public void OnNumberChanged(String 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);
etPrice.setText(item.getCarPrice());
......
......@@ -46,7 +46,7 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
helper.setText(R.id.tv_spec, item.getSpec());
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.getInternalPrice()+"", 2));
helper.setText(R.id.tv_all_price, MathUtils.multiply(item.getCarNum() , item.getInternalPrice()+"", 3));
if (type == 1) {
helper.addOnClickListener(R.id.rl_choose_dep);
helper.addOnClickListener(R.id.rl_upload);
......@@ -61,7 +61,7 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
AddAndReduceView num = helper.getView(R.id.ar_num);
num.setOnNumberChangedListener(new AddAndReduceView.OnNumberChangedListener() {
@Override
public void OnNumberChanged(int vs) {
public void OnNumberChanged(String 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())));
......@@ -75,7 +75,7 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
AddAndReduceView num = helper.getView(R.id.ar_num);
num.setOnNumberChangedListener(new AddAndReduceView.OnNumberChangedListener() {
@Override
public void OnNumberChanged(int vs) {
public void OnNumberChanged(String 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())));
......@@ -106,9 +106,7 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
}
});
num.setNumber(item.getCarNum());
}
}
}
......@@ -41,11 +41,12 @@ public class TradingProCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBe
num.setNumber(item.getCarNum());
num.setOnNumberChangedListener(new AddAndReduceView.OnNumberChangedListener() {
@Override
public void OnNumberChanged(int vs) {
public void OnNumberChanged(String vs) {
item.setCarNum(vs);
helper.setText(R.id.tv_all_price, "小计:"+MathUtils.multiply(vs + "", item.getInternalPrice() + "", 2));
EventBus.getDefault().post(new ModifyCarEvent(JSON.toJSONString(getData())));
}
});
}
......
......@@ -5,6 +5,7 @@ import android.util.Log;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Arrays;
import freemarker.template.utility.CollectionUtils;
......@@ -80,7 +81,8 @@ public class MathUtils {
value = "0";
}
BigDecimal bg = new BigDecimal(value);
return bg.setScale(scale, RoundingMode.HALF_UP).toString();
DecimalFormat decimalFormat = new DecimalFormat("#######################.###");
return decimalFormat.format(bg.setScale(scale, RoundingMode.HALF_UP));
}
public static String converData(double value, Integer scale) {
......@@ -91,7 +93,8 @@ public class MathUtils {
strValue = String.valueOf(value);
}
BigDecimal bg = new BigDecimal(strValue);
return bg.setScale(scale, RoundingMode.HALF_UP).toString();
DecimalFormat decimalFormat = new DecimalFormat("#######################.###");
return decimalFormat.format(bg.setScale(scale, RoundingMode.HALF_UP));
}
......@@ -104,7 +107,8 @@ public class MathUtils {
}
BigDecimal b1 = new BigDecimal(v1.trim());
BigDecimal b2 = new BigDecimal(v2.trim());
return b1.multiply(b2).setScale(scale).toString();
DecimalFormat decimalFormat = new DecimalFormat("#######################.###");
return decimalFormat.format(b1.multiply(b2).setScale(scale, RoundingMode.HALF_UP));
}
public static String add(String v1, String v2, Integer scale) {
......@@ -116,7 +120,8 @@ public class MathUtils {
}
BigDecimal b1 = new BigDecimal(v1.trim());
BigDecimal b2 = new BigDecimal(v2.trim());
return b1.add(b2).setScale(scale).toString();
DecimalFormat decimalFormat = new DecimalFormat("#######################.###");
return decimalFormat.format(b1.add(b2).setScale(scale, RoundingMode.HALF_UP));
}
public static String subtract(String v1, String v2, Integer scale) {
......@@ -128,8 +133,10 @@ public class MathUtils {
}
BigDecimal b1 = new BigDecimal(v1.trim());
BigDecimal b2 = new BigDecimal(v2.trim());
return b1.subtract(b2).setScale(scale).toString();
DecimalFormat decimalFormat = new DecimalFormat("#######################.###");
return decimalFormat.format(b1.subtract(b2).setScale(scale, RoundingMode.HALF_UP));
}
public static String divide(String v1, String v2, Integer scale) {
if (TextUtils.isEmpty(v1)) {
v1 = "0";
......@@ -139,7 +146,8 @@ public class MathUtils {
}
BigDecimal b1 = new BigDecimal(v1.trim());
BigDecimal b2 = new BigDecimal(v2.trim());
return b1.divide(b2).setScale(scale).toString();
DecimalFormat decimalFormat = new DecimalFormat("#######################.###");
return decimalFormat.format(b1.divide(b2).setScale(scale, RoundingMode.HALF_UP));
}
......
package com.wd.workoffice.util;
import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
......@@ -9,6 +10,7 @@ import android.provider.MediaStore;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
......@@ -699,5 +701,47 @@ public class WorkUtils {
return timer.start();
}
/*** 小数点后的位数 */
private static final int POINTER_LENGTH = 3;
private static final String POINTER = ".";
private static final String ZERO = "0";
private static int curSelection;
/***
* 保留两位小数
* @param editText
* @param length 整数数字长度
*/
@SuppressLint("SetTextI18n")
public static void keepTwoDecimals(EditText editText) {
String number = editText.getText().toString();
//第一位不能输入小点
if (number.length() == 1 && TextUtils.equals(number.substring(0, 1), POINTER)) {
editText.setText("");
return;
}
//第一位0时,后续不能输入其他数字
if (number.length() > 1 && TextUtils.equals(number.substring(0, 1), ZERO) &&
!TextUtils.equals(number.substring(1, 2), POINTER)) {
editText.setText(number.substring(0, 1));
editText.setSelection(editText.length());
return;
}
String[] numbers = number.split("\\.");
//已经输入小数点的情况下
if (numbers.length == 2) {
//小数处理
int decimalsLength = numbers[1].length();
if (decimalsLength > POINTER_LENGTH) {
curSelection = editText.getSelectionEnd();
editText.setText(number.substring(0, numbers[0].length() + 1 + POINTER_LENGTH));
editText.setSelection(editText.getText().length());
}
}
}
}
package com.wd.workoffice.widget;
import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.wd.workoffice.R;
import com.wd.workoffice.util.MathUtils;
import com.wd.workoffice.util.WorkUtils;
import flexible.xd.android_base.utils.ToastUtil;
......@@ -17,10 +21,9 @@ public class AddAndReduceView extends LinearLayout implements View.OnClickListen
private final Button add;
private final Button remove;
private final TextView tvNum;
private int num = 1;
private int maxNum = 10000;
private final EditText tvNum;
private String num = "1";
private double maxNum = 10000f;
public AddAndReduceView(Context context, AttributeSet attrs) {
super(context, attrs);
......@@ -31,58 +34,84 @@ public class AddAndReduceView extends LinearLayout implements View.OnClickListen
add.setOnClickListener(this);
remove.setOnClickListener(this);
tvNum.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) {
WorkUtils.keepTwoDecimals(tvNum);
}
@Override
public void afterTextChanged(Editable s) {
try {
Double.valueOf(s.toString());
num = s.toString();
if (mOnNumberChangedListener != null)
mOnNumberChangedListener.OnNumberChanged(num);
}catch (Exception e){
}
}
});
}
public void setNumber(int number) {
public void setNumber(String number) {
num = number;
tvNum.setText(number + "");
tvNum.setText(number);
}
public int getNumber() {
public String getNumber() {
return num;
}
@Override
public void onClick(View v) {
String s = tvNum.getText().toString();
num = Integer.parseInt(s);
switch (v.getId()) {
case R.id.btn_add:
if (num == maxNum) {
if (Double.valueOf(num) == maxNum) {
ToastUtil.showShort("目前已选择最大数量");
return;
}
if (maxNum - Double.valueOf(num) < 1) {
num = String.valueOf(maxNum);
tvNum.setText(num);
if (mOnNumberChangedListener != null)
mOnNumberChangedListener.OnNumberChanged(num);
ToastUtil.showShort("目前已选择最大数量");
return;
}
num++;
tvNum.setText(num + "");
num = MathUtils.add(num, "1", 3);
tvNum.setText(num);
if (mOnNumberChangedListener != null)
mOnNumberChangedListener.OnNumberChanged(num);
break;
case R.id.btn_reduce:
if (num > 1) {
num--;
tvNum.setText(num + "");
if (mOnNumberChangedListener != null)
mOnNumberChangedListener.OnNumberChanged(num);
return;
//接口回调
if (Double.valueOf(num) <=1) {
Toast.makeText(getContext(), "不能小于0", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getContext(), "不能小于1", Toast.LENGTH_SHORT).show();
num = MathUtils.subtract(num, "1", 3);
tvNum.setText(num);
if (mOnNumberChangedListener != null)
mOnNumberChangedListener.OnNumberChanged(String.valueOf(num));
}
break;
}
}
public int getMaxNum() {
public Double getMaxNum() {
return maxNum;
}
public void setMaxNum(int maxNum) {
public void setMaxNum(Double maxNum) {
this.maxNum = maxNum;
}
public interface OnNumberChangedListener {
void OnNumberChanged(int vs);
void OnNumberChanged(String vs);
}
private OnNumberChangedListener mOnNumberChangedListener;
......
......@@ -14,12 +14,14 @@
android:textColor="#666666"
android:textSize="17sp" />
<TextView
<EditText
android:id="@+id/tv_num"
android:layout_width="0dp"
android:layout_height="30mm"
android:layout_gravity="center"
android:layout_weight="1"
android:background="@null"
android:inputType="numberDecimal"
android:gravity="center"
android:text="1"
android:textColor="#5C7589"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论