Commit 2a51e02b authored by hywang's avatar hywang

修复部分bug

修改低频标签为20个一起操作
parent 5a67a9b2
......@@ -8,8 +8,8 @@ android {
applicationId "com.phlx.wool"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0.1"
versionCode 11
versionName "1.1.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
......@@ -36,6 +36,13 @@ android {
enabled true
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
greendao {
......
......@@ -51,6 +51,7 @@ public class Configs {
public static final String SP_UNIT_CODE = "sp_unit_code";
public static final String SP_UNIT_PHONE = "sp_unit_phone";
public static final String SP_UNIT_ID_CARD = "sp_unit_id_card";
public static final String SP_UNIT_VILLAGE_NAME = "sp_unit_villag_name";
//type inventory页面显示类型
public static final String WORK_TYPE_M = "work_type_mark";
public static final String WORK_TYPE_Q = "work_type_quarantine";
......@@ -66,7 +67,7 @@ public class Configs {
public static PrinterInstance myPrinter;
public static boolean ISCONNECTED;
// public static boolean ISCONNECTED;
public static String packageName(Context context) {
PackageManager manager = context.getPackageManager();
......
......@@ -67,7 +67,7 @@ public class Repository extends BaseModel implements HttpDataSource, LocalDataSo
@Override
public Observable<CattleResponse> versionGet() {
public Observable<CattleResponse<Double>> versionGet() {
return mHttpDataSource.versionGet();
}
......
......@@ -34,7 +34,7 @@ public interface ApiService {
* 获取版本号
*/
@GET("/app/getAppVsesion?type=2")
Observable<CattleResponse> versionGet();
Observable<CattleResponse<Double>> versionGet();
/**
* 下载新版本
......
......@@ -31,7 +31,7 @@ public interface HttpDataSource {
/**
* 获取版本号
*/
Observable<CattleResponse> versionGet();
Observable<CattleResponse<Double>> versionGet();
/**
* 下载新版本
......
......@@ -47,7 +47,7 @@ public class HttpDataSourceImpl implements HttpDataSource {
}
@Override
public Observable<CattleResponse> versionGet() {
public Observable<CattleResponse<Double>> versionGet() {
return apiService.versionGet();
}
......
......@@ -38,6 +38,7 @@ public class Label extends BaseObservable implements Parcelable {
/**
* 耳标EPC
*/
// @Index(name = "LabelEpc", unique = false)
@SerializedName("slugno")
private String Epc;
......@@ -50,7 +51,7 @@ public class Label extends BaseObservable implements Parcelable {
/**
* 耳标tid
*/
@Index(name = "LabelTid", unique = false)
// @Index(name = "LabelTid", unique = false)
@SerializedName("innercode")
private String Tid;
......@@ -64,7 +65,7 @@ public class Label extends BaseObservable implements Parcelable {
/**
* 时间戳
*/
@Index(name = "labelTime")
// @Index(name = "labelTime")
@SerializedName("inputTime")
private long timestamp;
......
......@@ -57,6 +57,41 @@ public class Unit extends BaseObservable implements Parcelable {
@SerializedName("managerphone")
private String managerPhone;
/**
* 旗县市代码
*/
@SerializedName("citycode")
private String cityCode;
/**
* 旗县市名称
*/
@SerializedName("cityname")
private String cityName;
/**
* 乡镇代码
*/
@SerializedName("townscode")
private String townsCode;
/**
* 乡镇名称
*/
@SerializedName("townsname")
private String townsName;
/**
* 村代码
*/
@SerializedName("villagecode")
private String villageCode;
/**
* 村名称
*/
@SerializedName("villagename")
private String villageName;
/**
* 时间戳
......@@ -65,146 +100,191 @@ public class Unit extends BaseObservable implements Parcelable {
@SerializedName("inputTime")
private long timestamp;
public Unit() {
}
protected Unit(Parcel in) {
if (in.readByte() == 0) {
id = null;
} else {
id = in.readLong();
}
pastureUnitCode = in.readString();
managerCode = in.readString();
managerName = in.readString();
idCard = in.readString();
managerPhone = in.readString();
cityCode = in.readString();
cityName = in.readString();
townsCode = in.readString();
townsName = in.readString();
villageCode = in.readString();
villageName = in.readString();
timestamp = in.readLong();
}
@Generated(hash = 433244320)
public Unit(Long id, String pastureUnitCode, String managerCode,
String managerName, String idCard, String managerPhone, String cityCode,
String cityName, String townsCode, String townsName, String villageCode,
String villageName, long timestamp) {
this.id = id;
this.pastureUnitCode = pastureUnitCode;
this.managerCode = managerCode;
this.managerName = managerName;
this.idCard = idCard;
this.managerPhone = managerPhone;
this.cityCode = cityCode;
this.cityName = cityName;
this.townsCode = townsCode;
this.townsName = townsName;
this.villageCode = villageCode;
this.villageName = villageName;
this.timestamp = timestamp;
}
public Long getId() {
return this.id;
@Override
public void writeToParcel(Parcel dest, int flags) {
if (id == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeLong(id);
}
dest.writeString(pastureUnitCode);
dest.writeString(managerCode);
dest.writeString(managerName);
dest.writeString(idCard);
dest.writeString(managerPhone);
dest.writeString(cityCode);
dest.writeString(cityName);
dest.writeString(townsCode);
dest.writeString(townsName);
dest.writeString(villageCode);
dest.writeString(villageName);
dest.writeLong(timestamp);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<Unit> CREATOR = new Creator<Unit>() {
@Override
public Unit createFromParcel(Parcel in) {
return new Unit(in);
}
@Override
public Unit[] newArray(int size) {
return new Unit[size];
}
};
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getPastureUnitCode() {
return this.pastureUnitCode;
return pastureUnitCode;
}
public void setPastureUnitCode(String pastureUnitCode) {
this.pastureUnitCode = pastureUnitCode;
}
public String getManagerCode() {
return this.managerCode;
return managerCode;
}
public void setManagerCode(String managerCode) {
this.managerCode = managerCode;
}
public String getManagerName() {
return this.managerName;
return managerName;
}
public void setManagerName(String managerName) {
this.managerName = managerName;
}
public String getIdCard() {
return this.idCard;
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public String getManagerPhone() {
return this.managerPhone;
return managerPhone;
}
public void setManagerPhone(String managerPhone) {
this.managerPhone = managerPhone;
}
public long getTimestamp() {
return this.timestamp;
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
@Override
public int describeContents() {
return 0;
public String getTownsCode() {
return townsCode;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeValue(this.id);
dest.writeString(this.pastureUnitCode);
dest.writeString(this.managerCode);
dest.writeString(this.managerName);
dest.writeString(this.idCard);
dest.writeString(this.managerPhone);
dest.writeLong(this.timestamp);
public void setTownsCode(String townsCode) {
this.townsCode = townsCode;
}
protected Unit(Parcel in) {
this.id = (Long) in.readValue(Long.class.getClassLoader());
this.pastureUnitCode = in.readString();
this.managerCode = in.readString();
this.managerName = in.readString();
this.idCard = in.readString();
this.managerPhone = in.readString();
this.timestamp = in.readLong();
public String getTownsName() {
return townsName;
}
public void setTownsName(String townsName) {
this.townsName = townsName;
}
@Generated(hash = 730934383)
public Unit(Long id, String pastureUnitCode, String managerCode,
String managerName, String idCard, String managerPhone,
long timestamp) {
this.id = id;
this.pastureUnitCode = pastureUnitCode;
this.managerCode = managerCode;
this.managerName = managerName;
this.idCard = idCard;
this.managerPhone = managerPhone;
this.timestamp = timestamp;
public String getVillageCode() {
return villageCode;
}
public void setVillageCode(String villageCode) {
this.villageCode = villageCode;
}
@Generated(hash = 1236212320)
public Unit() {
public String getVillageName() {
return villageName;
}
public static final Creator<Unit> CREATOR = new Creator<Unit>() {
@Override
public Unit createFromParcel(Parcel source) {
return new Unit(source);
public void setVillageName(String villageName) {
this.villageName = villageName;
}
@Override
public Unit[] newArray(int size) {
return new Unit[size];
public long getTimestamp() {
return timestamp;
}
};
@Override
public String toString() {
return "Unit{" +
"id=" + id +
", pastureUnitCode='" + pastureUnitCode + '\'' +
", managerCode='" + managerCode + '\'' +
", managerName='" + managerName + '\'' +
", idCard='" + idCard + '\'' +
", managerPhone='" + managerPhone + '\'' +
", timestamp=" + timestamp +
'}';
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
}
......@@ -47,8 +47,14 @@ public class RetrofitClient {
//缓存时间
private static final int CACHE_TIMEOUT = 10 * 1024 * 1024;
//服务端根路径
public static String baseUrl = "192.168.8.189";
public static String port = "80";
public static String baseUrl =
"58.18.92.126"
// "192.168.100.101"
;
public static String port =
"899"
// "80"
;
private static Context mContext = Utils.getContext();
......@@ -62,10 +68,10 @@ public class RetrofitClient {
public static RetrofitClient getInstance() {
Object obj = new Object();
synchronized (obj){
if (uniqueInstance==null){
synchronized (obj){
uniqueInstance=new RetrofitClient();
synchronized (obj) {
if (uniqueInstance == null) {
synchronized (obj) {
uniqueInstance = new RetrofitClient();
}
}
}
......@@ -81,9 +87,9 @@ public class RetrofitClient {
if (TextUtils.isEmpty(url)) {
if (Configs.isAddPort) {
url = "http://" + SPUtils.getInstance().getString(Configs.SP_APP_IP, baseUrl) +":"+
url = "http://" + SPUtils.getInstance().getString(Configs.SP_APP_IP, baseUrl) + ":" +
SPUtils.getInstance().getString(Configs.SP_APP_PORT, port);
}else {
} else {
url = "http://" + SPUtils.getInstance().getString(Configs.SP_APP_IP, baseUrl);
}
}
......
......@@ -87,8 +87,9 @@ public class MainBarVM<M extends BaseModel> extends BaseViewModel<M> {
//注销账号
public BindingCommand logoutOnClick = new BindingCommand(() -> {
SPUtils.getInstance().put(Configs.SP_USER_NAME, "");
SPUtils.getInstance().put(Configs.SP_USER_PASSWORD, "");
// SPUtils.getInstance().put(Configs.SP_USER_NAME, "");
// SPUtils.getInstance().put(Configs.SP_USER_PASSWORD, "");
Configs.isOnLine = false;
startActivity(LoginActivity.class);
finish();
});
......
package com.phlx.wool.ui.inventory;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import androidx.annotation.NonNull;
......@@ -35,6 +37,8 @@ public class InventoryActivity extends BaseActivity<ActivityInventoryBinding, In
private String type = null;
private String labelStr = "";
@Override
public void initParam() {
super.initParam();
......@@ -93,6 +97,26 @@ public class InventoryActivity extends BaseActivity<ActivityInventoryBinding, In
@Override
public void initViewObservable() {
super.initViewObservable();
binding.etInvDesc.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
// labelStr = charSequence.toString().trim();
}
@Override
public void afterTextChanged(Editable editable) {
binding.etInvDesc.removeTextChangedListener(this);
viewModel.trim();
binding.etInvDesc.setSelection(editable.length());
binding.etInvDesc.addTextChangedListener(this);
}
});
viewModel.inventoryBtnEvent.observe(this, aBoolean -> {
if (binding.inventory.getText().equals("盘点")) {
binding.inventory.setText("停止");
......
......@@ -180,27 +180,72 @@ public class InventoryVM extends BackBarVM<Repository> implements OnInventoryLis
return observableList.indexOf(inventoryItem);
}
/**
* 删除换行
*/
public void trim() {
tipDesc.set(tipDesc.get().trim());
}
/**
* 确定
* 添加按钮
*/
public BindingCommand onFixedClickCommand = new BindingCommand(new BindingAction() {
public BindingCommand onAddClickCommand = new BindingCommand(new BindingAction() {
@Override
public void call() {
//如果是低频
if("1".equals(Configs.FREQUENCY_CONFIG)){
mList.clear();
String epcStr = tipDesc.get();
if(!StringUtils.isEmpty(epcStr)) {
if("".equals(tipDesc.get().trim())){
ToastUtils.showShort("请扫描标签");
return;
}
if (mList.size() >= 20) {
ToastUtils.showShort("单次标签扫描已达20上限");
return;
}
String epc = tipDesc.get();
String tid = tipDesc.get();
String tag = epc + tid;
if (!map.containsKey(tag)) {
Label label = new Label();
label.setEpc(epcStr);
label.setTid(epcStr);
label.setEpc(epc);
label.setTid(tid);
mList.add(label);
InventoryItem itemViewModel = new InventoryItem(InventoryVM.this, label);
observableList.add(itemViewModel);
labelCount++;
labelNum.set(String.valueOf(labelCount));
soundPool.play(musicId.get(1), 1, 1, 0, 0, 1);
map.put(tag, mList.size() - 1);
} else {
ToastUtils.showShort("重复标签");
}
tipDesc.set("");
}
});
/**
* 确定
*/
public BindingCommand onFixedClickCommand = new BindingCommand(new BindingAction() {
@Override
public void call() {
//如果是低频
// if ("1".equals(Configs.FREQUENCY_CONFIG)) {
// mList.clear();
// String epcStr = tipDesc.get();
// if (!StringUtils.isEmpty(epcStr)) {
// Label label = new Label();
// label.setEpc(epcStr);
// label.setTid(epcStr);
// mList.add(label);
// }
// }
if (mList != null && mList.size() > 0) {
showDialog("正在验证标签...");
addSubscribe(Observable.create((ObservableOnSubscribe<List<Label>>) emitter -> {
try {
......@@ -208,7 +253,6 @@ public class InventoryVM extends BackBarVM<Repository> implements OnInventoryLis
legalCount = 0;
KLog.e(mList.toString());
for (int i = 0; i < mList.size(); i++) {
List<Label> allLablel = DbUtil.getInstance().queryAll(Label.class);
QueryBuilder<Label> builder =
DbUtil.getInstance().getQueryBuilder(Label.class)
.where(LabelDao.Properties.Epc.eq(mList.get(i).getEpc()));
......@@ -232,12 +276,14 @@ public class InventoryVM extends BackBarVM<Repository> implements OnInventoryLis
.doOnSubscribe(disposable -> {
})
.subscribe((Consumer<List<Label>>) response -> {
dismissDialog();
if (legalCount > 0) {
labelCheckEvent.setValue("" + legalCount);
} else {
jumpToActivity();
}
}, (Consumer<ResponseThrowable>) throwable -> {
dismissDialog();
ToastUtils.showShort(throwable.message);
}));
} else {
......@@ -261,6 +307,8 @@ public class InventoryVM extends BackBarVM<Repository> implements OnInventoryLis
} else {
ToastUtils.showShort("请扫描耳标");
}
}
/**
......
......@@ -20,6 +20,7 @@ import com.phlx.wool.Configs;
import com.phlx.wool.R;
import com.phlx.wool.data.VMFactory;
import com.phlx.wool.databinding.ActivityLoginBinding;
import com.phlx.wool.net.RetrofitClient;
import com.phlx.wool.rfid.ModuleManager;
import com.phlx.wool.ui.base.BaseActivity;
......@@ -60,10 +61,13 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginVM> {
super.initData();
setSupportActionBar(binding.include.toolbar);
viewModel.initToolbar();
downloadUrl = "http://" + SPUtils.getInstance().getString(Configs.SP_APP_IP,
"192.168.8.110") + ":" +
SPUtils.getInstance().getString(Configs.SP_APP_PORT, "80") + Configs.downloadApk;
downloadUrl = "http://"
+ SPUtils.getInstance().getString(Configs.SP_APP_IP, RetrofitClient.baseUrl)
+ ":" +
SPUtils.getInstance().getString(Configs.SP_APP_PORT, RetrofitClient.port)
+ Configs.downloadApk;
path = Environment.getExternalStorageDirectory().getAbsolutePath();
viewModel.requestVersion(this);
}
......@@ -83,11 +87,11 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginVM> {
exitApp();
});
viewModel.appUpdateEvent.observe(this,new Observer<String>() {
viewModel.appUpdateEvent.observe(this,new Observer<Integer>() {
@Override
public void onChanged(String s) {
String versionName = ApkUtil.getVersionName(LoginActivity.this);
if (!versionName.equals(s)){
public void onChanged(Integer s) {
int versionCode = ApkUtil.getVersionCode(LoginActivity.this);
if (versionCode!=s){
appUpdate(s);
}
}
......@@ -114,7 +118,7 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginVM> {
}
private void appUpdate(String versionName) {
private void appUpdate(int versionCode) {
UpdateConfiguration configuration = new UpdateConfiguration()
.setEnableLog(true)
.setJumpInstallPage(true)
......@@ -132,8 +136,8 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginVM> {
.setSmallIcon(R.mipmap.ic_launcher)
.setShowNewerToast(true)
.setConfiguration(configuration)
.setApkVersionCode(1)
.setApkVersionName(versionName)
.setApkVersionCode(versionCode)
.setApkVersionName(ApkUtil.getVersionName(LoginActivity.this))
.download();
}
......
......@@ -49,7 +49,7 @@ public class LoginVM extends BackBarVM<Repository> {
public SingleLiveEvent<Boolean> pSwitchEvent = new SingleLiveEvent<>();
public SingleLiveEvent<Boolean> exitEvent = new SingleLiveEvent<>();
//更新app
public SingleLiveEvent<String> appUpdateEvent = new SingleLiveEvent<>();
public SingleLiveEvent<Integer> appUpdateEvent = new SingleLiveEvent<>();
public LoginVM(@NonNull Application application, Repository repository) {
......@@ -214,10 +214,10 @@ public class LoginVM extends BackBarVM<Repository> {
.compose(RxUtils.schedulersTransformer())
.compose(RxUtils.exceptionTransformer())
.doOnSubscribe(disposable -> showDialog("正在检测版本..."))
.subscribe((Consumer<CattleResponse<String>>) response -> {
.subscribe((Consumer<CattleResponse<Double>>) response -> {
dismissDialog();
if (response.getCode() == 0) {
appUpdateEvent.setValue(response.getData());
appUpdateEvent.setValue(response.getData().intValue());
}
}, (Consumer<ResponseThrowable>) throwable -> {
dismissDialog();
......
......@@ -95,8 +95,7 @@ public class MainActivity extends BaseActivity<ActivityMainBinding, MainVM> {
@Override
public void initViewObservable() {
viewModel.drawerEvent.observe(this,
aBoolean -> binding.drawerLeft.openDrawer(GravityCompat.START));
viewModel.drawerEvent.observe(this, aBoolean -> binding.drawerLeft.openDrawer(GravityCompat.START));
viewModel.nullEvent.observe(this, aBoolean -> {
new MaterialDialog.Builder(this).title("系统信息").content("请先选择养殖场!!!")
.cancelable(false).canceledOnTouchOutside(false)
......
......@@ -81,8 +81,7 @@ public class SearchUnitFragment extends DialogFragment implements DialogInterfac
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.dialog_search, container, false);
init();//实例化
......
......@@ -41,8 +41,7 @@ public class UnitSearchAdapter extends RecyclerView.Adapter<UnitSearchAdapter.My
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).
inflate(R.layout.item_unit_search, parent, false);
View view = LayoutInflater.from(context).inflate(R.layout.item_unit_search, parent, false);
MyViewHolder holder = new MyViewHolder(view);
view.setOnClickListener(this);
return holder;
......@@ -52,13 +51,13 @@ public class UnitSearchAdapter extends RecyclerView.Adapter<UnitSearchAdapter.My
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.name.setText(units.get(position).getManagerName());
holder.phone.setText(units.get(position).getManagerPhone());
holder.id.setText(units.get(position).getManagerCode());
// holder.id.setText(units.get(position).getManagerCode());
holder.idCard.setText(units.get(position).getIdCard());
if (highlightStr != null) {
setSpecifiedText(holder.name, highlightStr);
setSpecifiedText(holder.phone, highlightStr);
setSpecifiedText(holder.id, highlightStr);
// setSpecifiedText(holder.id, highlightStr);
setSpecifiedText(holder.idCard, highlightStr);
}
holder.itemView.setTag(position);
......@@ -82,14 +81,14 @@ public class UnitSearchAdapter extends RecyclerView.Adapter<UnitSearchAdapter.My
TextView name;
TextView phone;
TextView id;
// TextView id;
TextView idCard;
public MyViewHolder(View view) {
super(view);
name = (TextView) view.findViewById(R.id.name_tv);
phone = (TextView) view.findViewById(R.id.phone_tv);
id = (TextView) view.findViewById(R.id.id_tv);
// id = (TextView) view.findViewById(R.id.id_tv);
idCard = (TextView) view.findViewById(R.id.idCard_tv);
}
}
......
......@@ -109,6 +109,7 @@ public class SettingActivity extends BaseActivity<ActivitySettingBinding, Settin
PrefUtils.setString(this, Configs.DEVICEADDRESS, devicesAddress);
mBtAdapter = BluetoothAdapter.getDefaultAdapter();
binding.ipAddress.setIpAddress(SPUtils.getInstance().getString(Configs.SP_APP_IP, RetrofitClient.baseUrl));
binding.portEdit.setText(SPUtils.getInstance().getString(Configs.SP_APP_PORT, RetrofitClient.port));
ModuleManager.openCom();
initPermissions();
......@@ -355,7 +356,7 @@ public class SettingActivity extends BaseActivity<ActivitySettingBinding, Settin
switch (msg.what) {
case Connect.SUCCESS:
Configs.isConnected = true;
Configs.ISCONNECTED = Configs.isConnected;
// Configs.ISCONNECTED = Configs.isConnected;
Configs.DEVICENAME = devicesName;
if (interfaceType == 0) {
PrefUtils.setString(SettingActivity.this, Configs.DEVICEADDRESS, devicesAddress);
......@@ -388,7 +389,7 @@ public class SettingActivity extends BaseActivity<ActivitySettingBinding, Settin
break;
case Connect.CLOSED:
Configs.isConnected = false;
Configs.ISCONNECTED = Configs.isConnected;
// Configs.ISCONNECTED = Configs.isConnected;
Configs.DEVICENAME = devicesName;
Toast.makeText(SettingActivity.this, "连接关闭", Toast.LENGTH_SHORT).show();
XLog.i(TAG, "ZL at MainActivity Handler() 连接关闭!");
......
......@@ -56,6 +56,8 @@ import okhttp3.RequestBody;
*/
public class UploadVM extends BackBarVM<Repository> {
private String toastStr = "";
public ObservableField<Boolean> isUploadMarking = new ObservableField<Boolean>(false);
public ObservableField<Boolean> isUploadHarmless = new ObservableField<Boolean>(false);
public ObservableField<Boolean> isUploadQuarantine = new ObservableField<Boolean>(false);
......@@ -150,7 +152,14 @@ public class UploadVM extends BackBarVM<Repository> {
} else if (isUploadVillusGauge.get() && !isVillusGaugeUpload) {
uploadVillusGauge();
} else {
if (!isUploadMarking.get() && !isUploadHarmless.get() && !isUploadQuarantine.get() && !isUploadVillusBuy.get() && !isUploadVillusGauge.get()) {
ToastUtils.showShort("请选择上传的项目");
} else if (!"".equals(toastStr)) {
ToastUtils.showShort(toastStr);
} else {
ToastUtils.showShort("上传成功");
finish();
}
}
}
......@@ -162,6 +171,7 @@ public class UploadVM extends BackBarVM<Repository> {
isQuarantineUpload = false;
isVillusBuyUpload = false;
isVillusGaugeUpload = false;
toastStr = "";
uploadNext();
......@@ -208,6 +218,7 @@ public class UploadVM extends BackBarVM<Repository> {
}).deleteAsyncBatch(Marking.class, result);
} else {
dismissDialog();
toastStr +="marking上传失败;";
ToastUtils.showShort("marking上传失败");
uploadNext();
}
......@@ -284,6 +295,7 @@ public class UploadVM extends BackBarVM<Repository> {
}
}).deleteAsyncBatch(Quarantine.class, result);
} else {
toastStr +="上传检疫数据失败;";
ToastUtils.showShort("上传检疫数据失败");
uploadNext();
}
......@@ -358,6 +370,7 @@ public class UploadVM extends BackBarVM<Repository> {
}
}).deleteAsyncBatch(Harmless.class, result);
} else {
toastStr +="上传无害化失败;";
ToastUtils.showShort("上传无害化失败");
uploadNext();
}
......@@ -422,6 +435,7 @@ public class UploadVM extends BackBarVM<Repository> {
}
}).updateAsyncBatch(VillusBuyEntity.class, result);
} else {
toastStr +="上传绒毛购买数据失败;";
ToastUtils.showShort("上传绒毛购买数据失败");
uploadNext();
}
......@@ -486,6 +500,7 @@ public class UploadVM extends BackBarVM<Repository> {
}
}).updateAsyncBatch(VillusGaugeEntity.class, result);
} else {
toastStr +="上传绒毛测量数据失败;";
ToastUtils.showShort("上传绒毛测量数据失败");
uploadNext();
}
......
......@@ -122,7 +122,7 @@ public class VillusBuyActivity extends BaseActivity<ActivityVillusBuyBinding, Vi
public void onTimeSelectChanged(Date date) {
}
})
.setType(new boolean[]{true, true, true, true, true, true})
.setType(new boolean[]{true, true, true, false, false, false})
.isDialog(true) //默认设置false ,内部实现将DecorView 作为它的父控件。
.addOnCancelClickListener(new View.OnClickListener() {
@Override
......
......@@ -81,7 +81,7 @@ public class VillusGaugeActivity extends BaseActivity<ActivityVillusGaugeBinding
public void onTimeSelectChanged(Date date) {
}
})
.setType(new boolean[]{true, true, true, true, true, true})
.setType(new boolean[]{true, true, true, false, false, false})
.isDialog(true) //默认设置false ,内部实现将DecorView 作为它的父控件。
.addOnCancelClickListener(new View.OnClickListener() {
@Override
......
......@@ -86,7 +86,7 @@ public class VillusBuyVM extends BackBarVM<Repository> {
dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date _date = new Date();
entity.setBuyBatch(dateFormat.format(_date) + "-" + SPUtils.getInstance().getString(Configs.SP_ID));
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
superiorPertainItemData = new ArrayList<>();
List<DivisionEntity> superiorDivisionEntities = model.getPertain("152900");
......
......@@ -59,7 +59,7 @@ public class VillusGaugeVM extends BackBarVM<Repository> {
entity = new VillusGaugeEntity();
}
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
batchItemData = new ArrayList<>();
List<VillusBuyEntity> villusBuyEntities = model.getVillusBuy();
......
......@@ -135,7 +135,7 @@ public class HarmlessActivity extends BaseActivity<ActivityHarmlessBinding, Harm
public void onTimeSelectChanged(Date date) {
}
})
.setType(new boolean[]{true, true, true, true, true, true})
.setType(new boolean[]{true, true, true, false, false, false})
.isDialog(true) //默认设置false ,内部实现将DecorView 作为它的父控件。
.addOnCancelClickListener(new View.OnClickListener() {
@Override
......
......@@ -67,7 +67,7 @@ public class HarmlessVM extends BackBarVM<Repository> {
item.getTreatmentMethodCode()));
}
}
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
}
//初始化ToolBar
......
......@@ -106,7 +106,7 @@ public class MarkingActivity extends BaseActivity<ActivityMarkingBinding, Markin
public void onTimeSelectChanged(Date date) {
}
})
.setType(new boolean[]{true, true, true, true, true, true})
.setType(new boolean[]{true, true, false, false, false, false})
.isDialog(true) //默认设置false ,内部实现将DecorView 作为它的父控件。
.addOnCancelClickListener(new View.OnClickListener() {
@Override
......
......@@ -56,6 +56,8 @@ public class MarkingVM extends BackBarVM<Repository> {
entity = new Marking();
}
entity.setBirthPlace(SPUtils.getInstance().getString(Configs.SP_UNIT_VILLAGE_NAME));
varietyItemData = new ArrayList<>();
List<Variety> varieties = model.getVariety();
if (varieties != null && varieties.size() > 0) {
......@@ -63,7 +65,7 @@ public class MarkingVM extends BackBarVM<Repository> {
varietyItemData.add(new ItemData(variety.getVarietyName(), variety.getVarietyCode()));
}
}
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
}
//初始化ToolBar
......@@ -117,7 +119,8 @@ public class MarkingVM extends BackBarVM<Repository> {
public BindingCommand onVeterinaryNameClick = new BindingCommand(() -> showSearch.call());
public void setBirthTime(Date date) {
entity.setBirthTime(dateFormat.format(date));
String dateStr = dateFormat.format(date);
entity.setBirthTime(dateStr.substring(0, dateStr.length() - 3));
entity.notifyChange();
}
......
......@@ -121,7 +121,7 @@ public class QuarantineActivity extends BaseActivity<ActivityQuarantineBinding,
public void onTimeSelectChanged(Date date) {
}
})
.setType(new boolean[]{true, true, true, true, true, true})
.setType(new boolean[]{true, true, true, false, false, false})
.isDialog(true) //默认设置false ,内部实现将DecorView 作为它的父控件。
.addOnCancelClickListener(new View.OnClickListener() {
@Override
......
......@@ -66,7 +66,7 @@ public class QuarantineVM extends BackBarVM<Repository> {
variety.getVarietyCode()));
}
}
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
}
@Override
......
......@@ -190,14 +190,11 @@ public class UnitActivity extends BaseActivity<ActivityUnitBinding, UnitVM> impl
}
private void saveUnit(Unit unit) {
SPUtils.getInstance().put(Configs.SP_UNIT_NAME,
unit.getManagerName());
SPUtils.getInstance().put(Configs.SP_UNIT_CODE,
unit.getManagerCode());
SPUtils.getInstance().put(Configs.SP_UNIT_PHONE,
unit.getManagerPhone());
SPUtils.getInstance().put(Configs.SP_UNIT_ID_CARD,
unit.getIdCard());
SPUtils.getInstance().put(Configs.SP_UNIT_NAME, unit.getManagerName());
SPUtils.getInstance().put(Configs.SP_UNIT_CODE, unit.getManagerCode());
SPUtils.getInstance().put(Configs.SP_UNIT_PHONE, unit.getManagerPhone());
SPUtils.getInstance().put(Configs.SP_UNIT_ID_CARD, unit.getIdCard());
SPUtils.getInstance().put(Configs.SP_UNIT_VILLAGE_NAME, unit.getVillageName());
finish();
}
......@@ -205,8 +202,7 @@ public class UnitActivity extends BaseActivity<ActivityUnitBinding, UnitVM> impl
if (tip != null) {
String emptyStr = "找不到和您查询的 " + tip + " 相符的内容或信息\n\n" + "建议:\n\n" + "请检查输入字词有无错误\n\n"
+ "请尝试其他查询词\n\n" + "请改用较常见的字词\n\n";
binding.unitEmptyTv.setText(RichTextUtil.matcherSearchTitle(new Integer(Color.RED),
emptyStr, tip));
binding.unitEmptyTv.setText(RichTextUtil.matcherSearchTitle(new Integer(Color.RED), emptyStr, tip));
}
}
}
......@@ -43,8 +43,7 @@ public class UnitVM extends BackBarVM<Repository> {
//给RecyclerView添加ObservableList
public ObservableList<UnitItem> observableList = new ObservableArrayList<>();
//给RecyclerView添加ItemBinding
public ItemBinding<UnitItem> itemBinding = ItemBinding.of(BR.viewModel,
R.layout.item_unit_rv);
public ItemBinding<UnitItem> itemBinding = ItemBinding.of(BR.viewModel, R.layout.item_unit_rv);
public SingleLiveEvent<Boolean> showSearch = new SingleLiveEvent<>();
......@@ -198,8 +197,7 @@ public class UnitVM extends BackBarVM<Repository> {
/**
* 重新加载
*/
public BindingCommand onRestClickCommand =
new BindingCommand(new BindingAction() {
public BindingCommand onRestClickCommand = new BindingCommand(new BindingAction() {
@Override
public void call() {
loadUnit();
......@@ -208,8 +206,7 @@ public class UnitVM extends BackBarVM<Repository> {
/**
* 确定
*/
public BindingCommand onFixedClickCommand =
new BindingCommand(new BindingAction() {
public BindingCommand onFixedClickCommand = new BindingCommand(new BindingAction() {
@Override
public void call() {
btnLiveData.call();
......
......@@ -77,6 +77,7 @@
android:text="标签个数:"
android:textColor="#4963cd"
android:textSize="@dimen/desc_text_size"
android:visibility="visible"
binding:layout_constraintStart_toStartOf="@id/unit_desc"
binding:layout_constraintTop_toBottomOf="@+id/unit_desc" />
......@@ -122,6 +123,7 @@
android:layout_height="wrap_content"
android:background="@drawable/input_frame_bg"
android:gravity="center_vertical"
android:digits="0123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
binding:layout_constraintLeft_toRightOf="@+id/inventory_epc_tip_desc"
binding:layout_constraintRight_toLeftOf="@+id/progress_bar"
binding:layout_constraintTop_toTopOf="@+id/inventory_epc_tip_desc"
......@@ -141,6 +143,19 @@
binding:layout_constraintEnd_toEndOf="parent"
binding:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatButton
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_30"
android:textColor="@color/white"
android:background="@drawable/setting_btn_bg"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:visibility="visible"
android:text="+"
binding:layout_constraintEnd_toEndOf="parent"
binding:layout_constraintTop_toTopOf="parent"
binding:onClickCommand="@{viewModel.onAddClickCommand}"/>
<View
android:id="@+id/inventory_epc_line"
android:layout_width="match_parent"
......
......@@ -163,7 +163,7 @@
<RadioButton
android:id="@+id/online"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="22dp"
android:layout_marginStart="@dimen/dp_20"
android:layout_weight="1"
android:text="@string/onLine"
......
......@@ -93,6 +93,7 @@
android:id="@+id/weight_selected_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="@string/weight"
android:textColor="@color/black"
android:textSize="@dimen/desc_text_size"
......@@ -132,6 +133,7 @@
android:id="@+id/parity_selected_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="@string/parity"
android:textColor="@color/black"
android:textSize="@dimen/desc_text_size"
......@@ -145,6 +147,7 @@
android:id="@+id/twin_sheep_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="@string/twin_sheep"
android:textColor="@color/black"
android:textSize="@dimen/desc_text_size"
......@@ -158,6 +161,7 @@
android:id="@+id/ewe_selected_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="@string/ewe"
android:textColor="@color/black"
android:textSize="@dimen/desc_text_size"
......@@ -172,6 +176,7 @@
android:id="@+id/ram_selected_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="@string/ram"
android:textColor="@color/black"
android:textSize="@dimen/desc_text_size"
......@@ -263,6 +268,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:background="@drawable/input_frame_bg"
android:visibility="gone"
android:hint="请输入重量"
android:inputType="numberDecimal"
android:maxLines="1"
......@@ -307,6 +313,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:background="@drawable/input_frame_bg"
android:visibility="gone"
android:hint="请输入胎次"
android:inputType="number"
android:maxLines="1"
......@@ -322,6 +329,7 @@
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:visibility="gone"
android:checked="@{viewModel.entity.isTwins==0?false:true}"
android:text="@string/yes"
android:textSize="@dimen/edit_size"
......@@ -337,6 +345,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:background="@drawable/input_frame_bg"
android:visibility="gone"
android:hint="请输入母羊号"
android:maxLines="1"
android:text="@={viewModel.entity.eweEpc}"
......@@ -352,6 +361,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:background="@drawable/input_frame_bg"
android:visibility="gone"
android:hint="请输入公羊号"
android:maxLines="1"
android:text="@={viewModel.entity.ramEpc}"
......
......@@ -26,16 +26,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/manager_id_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:text="@{viewModel.entity.managerCode}"
android:textSize="@dimen/sp_15"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/manager_name_tv" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/manager_phone_tv"
android:layout_width="wrap_content"
......@@ -53,7 +43,7 @@
android:text="@{viewModel.entity.idCard}"
android:textSize="@dimen/sp_15"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintStart_toStartOf="@+id/manager_phone_tv"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/manager_phone_tv" />
<androidx.appcompat.widget.AppCompatCheckBox
......
......@@ -14,6 +14,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!--
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/id_tv"
android:layout_width="wrap_content"
......@@ -23,6 +24,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/name_tv"
android:layout_marginTop="@dimen/dp_5" />
-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/phone_tv"
......@@ -40,8 +42,9 @@
android:textSize="@dimen/sp_13"
android:layout_marginEnd="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/phone_tv" />
android:layout_marginStart="@dimen/dp_20"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/name_tv" />
<View
android:layout_width="match_parent"
......
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<foreground android:drawable="@drawable/ic_launcher" />
</adaptive-icon>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<foreground android:drawable="@drawable/ic_launcher" />
</adaptive-icon>
\ No newline at end of file
<resources>
<string name="app_name">WoolManager</string>
<string name="app_name">羊毛追溯系统</string>
<string name="setting">设置</string>
<string name="jobNum">工号:</string>
<string name="pleaseInputUserName">请输入用户名</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment