diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5bcf46a..b8db0f4 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -135,6 +135,10 @@
android:name=".SwitchActivity"
android:exported="false" />
+
post(MyUrl.url + "/system/dict/data/tyreTypeList").execute(new StringCallback() {
+ OkGo.post(MyUrl.url + "/system/dict/data/tyreTypeList")
+ .execute(new StringCallback() {
@Override
public void onSuccess(Response response) {
hideLoadingDialog();
@@ -377,7 +380,7 @@ public class InStoreHouseActivity extends AppCompatActivity implements AdapterVi
List stringList = inStoreSpinnerVo.getKindList();
List patternList = inStoreSpinnerVo.getPatternList();
List patternLevel = inStoreSpinnerVo.getLevelList();
- List patternSize = inStoreSpinnerVo.getTyreSizeList();
+ List patternSize = inStoreSpinnerVo.getTyreSizeList().stream().map(InStoreSpinnerVo.labelvalue::getLabel).collect(Collectors.toList());
List patternBrand = inStoreSpinnerVo.getTyreBrandList();
List patternGcts = inStoreSpinnerVo.getGctsList();
ArrayAdapter arrayAdapter =
@@ -540,6 +543,7 @@ public class InStoreHouseActivity extends AppCompatActivity implements AdapterVi
case KeyEvent.KEYCODE_F3:
case KeyEvent.KEYCODE_F4:
case KeyEvent.KEYCODE_F5:
+ case 136:
// 扫描
startFlag = true;
break;
diff --git a/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java b/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java
index 1ab1ffa..22f0c06 100644
--- a/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java
+++ b/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java
@@ -314,6 +314,7 @@ public class OutStoreHouseActivity extends AppCompatActivity {
case KeyEvent.KEYCODE_F3:
case KeyEvent.KEYCODE_F4:
case KeyEvent.KEYCODE_F5:
+ case 136:
//扫描
startFlag = true;
break;
diff --git a/app/src/main/java/com/example/tyre/TestActivity.java b/app/src/main/java/com/example/tyre/TestActivity.java
index 49d46ad..081daa7 100644
--- a/app/src/main/java/com/example/tyre/TestActivity.java
+++ b/app/src/main/java/com/example/tyre/TestActivity.java
@@ -141,6 +141,7 @@ public class TestActivity extends AppCompatActivity {
public void onBackPressed() {
hideLoadingDialog();
Log.e("onBackPressed", "onBackPressed:+ " );
+ finish();
// // 处理返回按钮点击事件
// if (isStart) {
// // 如果当前处于开始状态,可以执行退出逻辑
@@ -340,6 +341,7 @@ public class TestActivity extends AppCompatActivity {
case KeyEvent.KEYCODE_F3:
case KeyEvent.KEYCODE_F4:
case KeyEvent.KEYCODE_F5:
+ case 136:
//扫描
startFlag = true;
break;
diff --git a/app/src/main/java/com/example/tyre/TyreLayoutActivity.java b/app/src/main/java/com/example/tyre/TyreLayoutActivity.java
index 3eaa5e6..5f2bc02 100644
--- a/app/src/main/java/com/example/tyre/TyreLayoutActivity.java
+++ b/app/src/main/java/com/example/tyre/TyreLayoutActivity.java
@@ -429,6 +429,7 @@ public class TyreLayoutActivity extends AppCompatActivity {
case KeyEvent.KEYCODE_F3:
case KeyEvent.KEYCODE_F4:
case KeyEvent.KEYCODE_F5:
+ case 136:
//扫描
startFlag = true;
break;
diff --git a/app/src/main/java/com/example/tyre/TyreSearchActivity.java b/app/src/main/java/com/example/tyre/TyreSearchActivity.java
index 5c30557..7ca72a5 100644
--- a/app/src/main/java/com/example/tyre/TyreSearchActivity.java
+++ b/app/src/main/java/com/example/tyre/TyreSearchActivity.java
@@ -296,6 +296,7 @@ public class TyreSearchActivity extends AppCompatActivity {
case KeyEvent.KEYCODE_F3:
case KeyEvent.KEYCODE_F4:
case KeyEvent.KEYCODE_F5:
+ case 136:
binding.scanButton.callOnClick();
break;
}
diff --git a/app/src/main/java/com/example/tyre/UpActivity.java b/app/src/main/java/com/example/tyre/UpActivity.java
index b45eafb..8097740 100644
--- a/app/src/main/java/com/example/tyre/UpActivity.java
+++ b/app/src/main/java/com/example/tyre/UpActivity.java
@@ -21,8 +21,6 @@ import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
-import androidx.appcompat.app.AppCompatActivity;
-
import com.android.hdhe.uhf.reader.UhfReader;
import com.android.hdhe.uhf.readerInterface.TagModel;
import com.example.tyre.databinding.ActivityUpBinding;
@@ -49,7 +47,7 @@ import java.util.List;
import cn.pda.serialport.Tools;
-public class UpActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
+public class UpActivity extends AllBaseActivity implements AdapterView.OnItemSelectedListener {
// 防抖延迟时间 (毫秒)
private static final long DEBOUNCE_DELAY = 500;
@@ -78,6 +76,8 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
private Toast mToast;
private Toast toast;
private KeyReceiver keyReceiver;
+ private boolean dataType;
+
// 用于存储最后一次扫描到的 EPC
private String lastScannedEpc;
// 用于处理防抖逻辑的 Handler
@@ -137,6 +137,21 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
Thread thread = new InventoryThread();
thread.start();
Util.initSoundPool(this);
+
+ Intent intent = getIntent();
+
+ if (intent.getBooleanExtra("dataType", false)) dataType = true;
+ else dataType = false;
+ if (dataType) {
+ // 从保养跳转过来的
+ binding.azlw.setText(intent.getStringExtra("location"));
+ binding.car.setText(intent.getStringExtra("carNo"));
+ ;
+ binding.start.setText(intent.getStringExtra("licheng"));
+ ;
+ }
+
+
}
private void bindViews() {
@@ -185,8 +200,9 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
});
binding.back.setOnClickListener(v -> {
- Intent intent = new Intent(this, HomePageActivity.class);
- startActivity(intent);
+ // Intent intent = new Intent(this, HomePageActivity.class);
+ // startActivity(intent);
+ finish();
});
binding.searchButton.setOnClickListener(v -> {
@@ -321,16 +337,34 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
@Override
public void onNothingSelected(AdapterView> parent) {
}
-
+ // 提交函数
private void up_insert(String rfid, String carNo, String millage, String wheel, String selfNo) {
- OkGo.post(MyUrl.url + "/tyre/install/PdaInstallTyre").tag(this).params("tyreRfid", rfid).params("mileage", millage).params("carNo", carNo).params("wheelPostion", wheel).params("selfNo", selfNo).params("CreateBy", SharedPreferencesUtils.getstring("user", "admin")).execute(new StringCallback() {
- @Override
- public void onSuccess(Response response) {
- hideLoadingDialog();
- String body = response.body();
- Gson gson = new Gson();
- AjaxResult ajaxResult = gson.fromJson(body, AjaxResult.class);
- handleResponse(ajaxResult);
+ OkGo.post(MyUrl.url + "/tyre/install/PdaInstallTyre")
+ .tag(this)
+ .params("tyreRfid", rfid)
+ .params("mileage", millage)
+ .params("carNo", carNo)
+ .params("wheelPostion", wheel)
+ .params("selfNo", selfNo)
+ .params("CreateBy", SharedPreferencesUtils.getstring("user", "admin"))
+ .execute(new StringCallback() {
+ @Override
+ public void onSuccess(Response response) {
+ hideLoadingDialog();
+ String body = response.body();
+ Gson gson = new Gson();
+ AjaxResult ajaxResult = gson.fromJson(body, AjaxResult.class);
+ if (ajaxResult.getCode().equals("0") && dataType) {
+ Intent intent = new Intent();
+ baseTyreResult.setWheelPostion(wheel);
+ intent.putExtra("json", gson.toJson(baseTyreResult));
+ setResult(RESULT_OK, intent);
+ finish();
+ return;
+ }
+
+
+ handleResponse(ajaxResult);
// try {
// Gson gson = new Gson();
// BaseTyre baseTyre = gson.fromJson(body, BaseTyre.class);
@@ -342,8 +376,8 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
// } catch (JsonSyntaxException e) {
// return;
// }
- }
- });
+ }
+ });
}
private void handleResponse(AjaxResult result) {
@@ -380,7 +414,7 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
}
});
}
-
+ private BaseTyre baseTyreResult;
// 基本信息查询
private void find(String epc) {
OkGo.post(MyUrl.url + "/tyre/tyre/pdaQueryTyreInfo").tag(this).params("tyreEpc", epc).execute(new StringCallback() {
@@ -391,7 +425,9 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
try {
Gson gson = new Gson();
BaseTyre baseTyre = gson.fromJson(body, BaseTyre.class);
+
if (baseTyre != null) {
+ baseTyreResult=baseTyre;
// 空值处理:若字段为 null 则显示空字符串
String TyreNo = safeGetString(baseTyre.getTyreNo());
th.setText(TyreNo);
@@ -462,8 +498,9 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
var myResult = response.body();
if (myResult.getCode() == 0) {
Gson gson = new Gson();
- List baseCarList = gson.fromJson(myResult.getJson(), new TypeToken>() {
- }.getType());
+ List baseCarList =
+ gson.fromJson(myResult.getJson(), new TypeToken>() {
+ }.getType());
Log.e("EPC", "listepc:+ " + baseCarList.size());
if (baseCarList != null && baseCarList.size() > 0) {
List carNoList = new ArrayList<>();
@@ -565,11 +602,14 @@ public class UpActivity extends AppCompatActivity implements AdapterView.OnItemS
case KeyEvent.KEYCODE_F3:
case KeyEvent.KEYCODE_F4:
case KeyEvent.KEYCODE_F5:
+ case 136:
// 扫描
startFlag = true;
break;
}
}
- };
+ }
+
+ ;
}
}
diff --git a/app/src/main/java/com/example/tyre/entity/InStoreSpinnerVo.java b/app/src/main/java/com/example/tyre/entity/InStoreSpinnerVo.java
index 675c91c..68b3c55 100644
--- a/app/src/main/java/com/example/tyre/entity/InStoreSpinnerVo.java
+++ b/app/src/main/java/com/example/tyre/entity/InStoreSpinnerVo.java
@@ -4,7 +4,8 @@ import java.util.List;
public class InStoreSpinnerVo {
private List tyreBrandList;
- private List tyreSizeList;
+ private List tyreSizeList;
+ private List tyreSizeList1;
private List levelList;
private List patternList;
private List kindList;
@@ -26,11 +27,11 @@ public class InStoreSpinnerVo {
this.tyreBrandList = tyreBrandList;
}
- public List getTyreSizeList() {
+ public List getTyreSizeList() {
return tyreSizeList;
}
- public void setTyreSizeList(List tyreSizeList) {
+ public void setTyreSizeList(List tyreSizeList) {
this.tyreSizeList = tyreSizeList;
}
@@ -57,4 +58,33 @@ public class InStoreSpinnerVo {
public void setKindList(List kindList) {
this.kindList = kindList;
}
+
+ public List getTyreSizeList1() {
+ return tyreSizeList1;
+ }
+
+ public void setTyreSizeList1(List tyreSizeList1) {
+ this.tyreSizeList1 = tyreSizeList1;
+ }
+
+ public class labelvalue {
+ private String label;
+ private String value;
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
}
diff --git a/app/src/main/java/com/example/tyre/maintenance/CreateWorkOrderActivity.java b/app/src/main/java/com/example/tyre/maintenance/CreateWorkOrderActivity.java
index ee49a9f..03c047e 100644
--- a/app/src/main/java/com/example/tyre/maintenance/CreateWorkOrderActivity.java
+++ b/app/src/main/java/com/example/tyre/maintenance/CreateWorkOrderActivity.java
@@ -61,17 +61,13 @@ public class CreateWorkOrderActivity extends BaseActivity {
@Override
public void afterTextChanged(Editable s) {
Log.e("TAG", "afterTextChanged:" + s);
- if (searchRunnable != null) {
- handler.removeCallbacks(searchRunnable);
+ if (isSearch){
+ if (searchRunnable != null) {
+ handler.removeCallbacks(searchRunnable);
+ }
+ searchRunnable = () -> selectCarNo(s.toString());
+ handler.postDelayed(searchRunnable, 1000);
}
-
- // Start search after 1 second delay
- searchRunnable = () -> selectCarNo(s.toString());
- handler.postDelayed(searchRunnable, 1000);
-
- // 搜索
- // selectCarNo(s.toString());
-
isSearch = true;
}
});
diff --git a/app/src/main/java/com/example/tyre/maintenance/WorkExecuteActivity.java b/app/src/main/java/com/example/tyre/maintenance/WorkExecuteActivity.java
index 96b132e..6e21cd4 100644
--- a/app/src/main/java/com/example/tyre/maintenance/WorkExecuteActivity.java
+++ b/app/src/main/java/com/example/tyre/maintenance/WorkExecuteActivity.java
@@ -6,6 +6,8 @@ import android.util.Log;
import android.view.View;
import android.widget.Toast;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
import androidx.databinding.DataBindingUtil;
import com.example.tyre.R;
@@ -20,12 +22,12 @@ import com.example.tyre.maintenance.been.BaseTyre;
import com.example.tyre.maintenance.been.BizOrderTireDetail;
import com.example.tyre.maintenance.been.Order;
import com.example.tyre.maintenance.dialog.TipResultDialog;
-import com.example.tyre.maintenance.dialog.TireChangeDialog;
import com.example.tyre.maintenance.dialog.TireUpdateDialog;
import com.example.tyre.util.CommonDialog;
import com.example.tyre.util.MyUrl;
import com.example.tyre.util.SharedPreferencesUtils;
import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
@@ -40,19 +42,23 @@ import java.util.Map;
public class WorkExecuteActivity extends BaseActivity {
private ActivityWorkExecuteBinding binding;
private Map tyreMap;
- private TireUpdateDialog tireUpdateDialog;//点击轮胎弹窗
+ private TireUpdateDialog tireUpdateDialog;// 点击轮胎弹窗
private Map orderSubmitMap;
private List tireDetails;
private List fileList;
private TipResultDialog tipDialog;
private List baseTyreList;
+ private String epcTag = "";// 屏蔽重复查询
+ private String carNo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_work_execute);
+ initRFIDAndKeyReceiver();
Intent intent = getIntent();
- String carNo = intent.getStringExtra("carNo");
+
+ carNo = intent.getStringExtra("carNo");
binding.setCarNo(carNo);
tyreMap = new HashMap<>();
selectCarNo(carNo);
@@ -67,12 +73,21 @@ public class WorkExecuteActivity extends BaseActivity {
binding.setDate(intent.getStringExtra("maintainDate"));
tireUpdateDialog = new TireUpdateDialog(this, new TireUpdateDialog.TireUpdateDialogSaveListener() {
@Override
- public void onSave(BizOrderTireDetail bizOrderTireDetail, File image) {
+ public void onSave(BizOrderTireDetail bizOrderTireDetail, File image, boolean isupdate, BizOrderTireDetail newTireDetail) {
// 返回轮胎信息
bizOrderTireDetail.setOrderId(order.getOrderId());
tireDetails.add(bizOrderTireDetail);
fileList.add(image);
tireUpdateDialog.dismiss();
+ if (isupdate) {
+ // 换新胎
+ tireDetails.add(newTireDetail);
+ BaseTyre baseTyre = newTireDetail.getBaseTyre();
+ String positionName = newTireDetail.getPositionName();
+ tyreMap.put(positionName, baseTyre);
+ initTire(positionName, baseTyre);// 页面信息修改
+
+ }
}
@Override
@@ -87,12 +102,7 @@ public class WorkExecuteActivity extends BaseActivity {
}
- @Override
- public void onChengeTong(String location) {
- // 同车互换
-
- }
});
tireClick();
@@ -131,11 +141,28 @@ public class WorkExecuteActivity extends BaseActivity {
}
BaseTyre baseTyre = tyreMap.get(location);
if (baseTyre == null) {
+ ActivityResultLauncher launcher = registerForActivityResult(
+ new ActivityResultContracts.StartActivityForResult(),
+ result -> {
+ if (result.getResultCode() == RESULT_OK) {
+ Intent data = result.getData();
+ // 返回json转换
+ BaseTyre reBaseTyre = gson.fromJson(data.getStringExtra("json"), BaseTyre.class);
+
+ }
+ }
+ );
+
Intent intent = new Intent(this, UpActivity.class);
- intent.putExtra("state", true);
- startActivity(intent);
+ intent.putExtra("dataType", true);
+ intent.putExtra("location", location);
+ intent.putExtra("carNo", carNo);
+ intent.putExtra("licheng", s);
+ launcher.launch(intent);
+ }else {
+ tireUpdateDialog.setBaseTyre(baseTyre);
}
- tireUpdateDialog.setBaseTyre(baseTyre);
+
}
// 查询轮胎信息
@@ -204,7 +231,6 @@ public class WorkExecuteActivity extends BaseActivity {
}
}
-
// 查询车辆信息
private void selectCarNo(String carNo) {
OkGo.post(MyUrl.url + "/tyre/car/PdaQueryCarList").tag(this).params("carNo", carNo).execute(new MyRecultCall(dialog, this) {
@@ -228,8 +254,7 @@ public class WorkExecuteActivity extends BaseActivity {
Order order = (Order) orderSubmitMap.get("order");
order.setInputMileage(binding.workLicheng.getText().toString());
order.setDescription(binding.workBuchong.getText().toString());
- Log.e("TAG", "提交:" + fileList.size());
- Log.e("TAG", "提交:" + fileList.get(0).getPath());
+
OkGo.post(MyUrl.url + "/tyre/order/PDASaveMaintenanceOrder")
.params("json", gson.toJson(orderSubmitMap))
.addFileParams("files", fileList)
@@ -256,7 +281,6 @@ public class WorkExecuteActivity extends BaseActivity {
tireUpdateDialog.setImage(file);
}
-
// 删除实时表、卸车记录表
private void down_insert(String rfid, String carNo, String millage, String wheel, String patternDepth) {
OkGo.post(MyUrl.url + "/tyre/install/PdaUnInstallTyre").tag(this)
@@ -270,14 +294,65 @@ public class WorkExecuteActivity extends BaseActivity {
@Override
public void onSuccess(Response response) {
String body = response.body();
-
- Gson gson = new Gson();
AjaxResult ajaxResult = gson.fromJson(body, AjaxResult.class);
handleResponse(ajaxResult);
}
});
}
+ // 装车
+ private void up_insert(String rfid, String carNo, String millage, String wheel, String selfNo) {
+ OkGo.post(MyUrl.url + "/tyre/install/PdaInstallTyre")
+ .tag(this)
+ .params("tyreRfid", rfid)
+ .params("mileage", millage)
+ .params("carNo", carNo)
+ .params("wheelPostion", wheel)
+ .params("selfNo", selfNo)
+ .params("CreateBy", SharedPreferencesUtils.getstring("user", "admin"))
+ .execute(new StringCallback() {
+ @Override
+ public void onSuccess(Response response) {
+ String body = response.body();
+ AjaxResult ajaxResult = gson.fromJson(body, AjaxResult.class);
+ handleResponse(ajaxResult);
+
+ }
+ });
+ }
+
+ @Override
+ public void sanEpcCall(String epc) {
+ super.sanEpcCall(epc);
+ if (!epcTag.equals(epc)) {
+ find(epc);
+ }
+ epcTag = epc;
+ }
+
+ // 基本信息查询
+ private void find(String epc) {
+ OkGo.post(MyUrl.url + "/tyre/tyre/pdaQueryTyreInfo").tag(this).params("tyreEpc", epc).execute(new StringCallback() {
+ @Override
+ public void onSuccess(Response response) {
+ String body = response.body();
+ try {
+ Gson gson = new Gson();
+ BaseTyre baseTyre = gson.fromJson(body, BaseTyre.class);
+ if (baseTyre != null) {
+ epcTag = "";
+ tireUpdateDialog.setNewBaseTyre(baseTyre);
+ } else {
+ new CommonDialog(context).setMessage("系统无此轮胎!").show();
+
+ }
+ } catch (JsonSyntaxException e) {
+ return;
+ }
+ }
+ });
+ }
+
private void handleResponse(AjaxResult result) {
switch (result.getCode()) {
case "500":
diff --git a/app/src/main/java/com/example/tyre/maintenance/base/BaseActivity.java b/app/src/main/java/com/example/tyre/maintenance/base/BaseActivity.java
index 3df1b0e..19a6386 100644
--- a/app/src/main/java/com/example/tyre/maintenance/base/BaseActivity.java
+++ b/app/src/main/java/com/example/tyre/maintenance/base/BaseActivity.java
@@ -6,17 +6,21 @@ import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
+import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.graphics.Rect;
+import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
+import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
+import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
@@ -24,6 +28,11 @@ import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider;
+import com.android.hdhe.uhf.reader.UhfReader;
+import com.example.tyre.MyApplication;
+import com.example.tyre.R;
+import com.example.tyre.maintenance.receiver.MyKeyInfoCall;
+import com.example.tyre.maintenance.receiver.MyKeyReceiver;
import com.example.tyre.util.MyUrl;
import com.google.gson.Gson;
@@ -32,6 +41,7 @@ import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
+import cn.pda.serialport.Tools;
import okhttp3.MediaType;
public class BaseActivity extends AppCompatActivity {
@@ -44,6 +54,7 @@ public class BaseActivity extends AppCompatActivity {
// 拍照
private Uri img_uri;
private File outputImage;
+ public byte[] accessBytes = Tools.HexString2Bytes("00000000");
@SuppressLint("SimpleDateFormat")
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -178,5 +189,69 @@ public class BaseActivity extends AppCompatActivity {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
return imm.isAcceptingText();
}
+ public UhfReader uhfReader;
+ public MediaPlayer music;
+ private MyKeyReceiver keyReceiver;
+ public void initRFID() {
+ uhfReader = MyApplication.getManager();
+ music = MediaPlayer.create(this, R.raw.msg);
+ }
+ public void initRFIDAndKeyReceiver() {
+ initRFID();
+ initKeyRecriver(this::readEPC);
+ }
+ @SuppressLint("UnspecifiedRegisterReceiverFlag")
+ public void initKeyRecriver(MyKeyInfoCall call) {
+ keyReceiver = new MyKeyReceiver(call);
+ IntentFilter filter = new IntentFilter();
+ filter.addAction("android.rfid.FUN_KEY");
+ filter.addAction("android.intent.action.FUN_KEY");
+ registerReceiver(keyReceiver, filter);
+ }
+
+
+ // 扫描epc
+ protected void readEPC() {
+ var tagModels = uhfReader.inventoryRealTime();
+ if (tagModels == null || tagModels.isEmpty()) {
+ Toast.makeText(context, "读取失败", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ // tagModels.forEach(t-> {
+ // byte[] bytes = t.getmEpcBytes();
+ // var epc = Tools.Bytes2HexString(bytes, bytes.length);
+ //
+ // Log.e("TAG", "读取到: "+epc);
+ // });
+ byte[] bytes = tagModels.get(0).getmEpcBytes();
+ // uhfReader.selectEPC(epcBytes);// 选择epc
+ //
+ // byte[] bytes = uhfReader.readFrom6C(1, 2, 4, accessBytes);
+ if (bytes == null || bytes.length == 0) {
+ // Toast.makeText(context, "读取失败", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ music.start();
+ var epc = Tools.Bytes2HexString(bytes, bytes.length);
+ Log.e("TAG", "onkeyDown:" + epc);
+ sanEpcCall(epc);
+ }
+
+ // 扫描epc返回
+ public void sanEpcCall(String epc) {
+
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ try {
+ if (keyReceiver != null) {
+ unregisterReceiver(keyReceiver);
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
}
diff --git a/app/src/main/java/com/example/tyre/maintenance/been/BaseTyre.java b/app/src/main/java/com/example/tyre/maintenance/been/BaseTyre.java
index f553ff8..a91929f 100644
--- a/app/src/main/java/com/example/tyre/maintenance/been/BaseTyre.java
+++ b/app/src/main/java/com/example/tyre/maintenance/been/BaseTyre.java
@@ -48,6 +48,7 @@ public class BaseTyre extends BaseObservable {
*/
private String tyrePattern;
private String patternDepth;
+ private String patternDepth1;
private String grooves;
/**
* 轮胎类别
@@ -63,13 +64,17 @@ public class BaseTyre extends BaseObservable {
private String wheelPostion;
private Long deptId;
- public String getPatternDepth() {
+ public String getPatternDepth1() {
if (patternDepth != null && !patternDepth.isEmpty()) {
return patternDepth + " mm";
}
return patternDepth;
}
+ public String getPatternDepth() {
+ return patternDepth;
+ }
+
public void setPatternDepth(String patternDepth) {
this.patternDepth = patternDepth;
}
diff --git a/app/src/main/java/com/example/tyre/maintenance/been/BizOrderTireDetail.java b/app/src/main/java/com/example/tyre/maintenance/been/BizOrderTireDetail.java
index 7ed17dd..9d319b0 100644
--- a/app/src/main/java/com/example/tyre/maintenance/been/BizOrderTireDetail.java
+++ b/app/src/main/java/com/example/tyre/maintenance/been/BizOrderTireDetail.java
@@ -42,9 +42,6 @@ public class BizOrderTireDetail {
*/
private String treadDepth;
private String remark;
-
-
-
/**
* 胎压
*/
@@ -54,6 +51,27 @@ public class BizOrderTireDetail {
* 轮胎状态描述(截图中的“新胎”、“模拟数据”)
*/
private String tireStatus;
+ // 数据类型(保养;换新胎,卸车;换新胎,装车)
+ private String dataType;
+ private BaseTyre baseTyre;//基础轮胎信息
+
+
+
+ public BaseTyre getBaseTyre() {
+ return baseTyre;
+ }
+
+ public void setBaseTyre(BaseTyre baseTyre) {
+ this.baseTyre = baseTyre;
+ }
+
+ public String getDataType() {
+ return dataType;
+ }
+
+ public void setDataType(String dataType) {
+ this.dataType = dataType;
+ }
public String getRemark() {
return remark;
diff --git a/app/src/main/java/com/example/tyre/maintenance/dialog/TireChangeDialog.java b/app/src/main/java/com/example/tyre/maintenance/dialog/TireChangeDialog.java
index 157f8dd..6d09d6c 100644
--- a/app/src/main/java/com/example/tyre/maintenance/dialog/TireChangeDialog.java
+++ b/app/src/main/java/com/example/tyre/maintenance/dialog/TireChangeDialog.java
@@ -17,6 +17,7 @@ import androidx.databinding.DataBindingUtil;
import com.example.tyre.R;
import com.example.tyre.databinding.DialogTireChangeBinding;
import com.example.tyre.maintenance.been.BaseTyre;
+import com.example.tyre.maintenance.been.BizOrderTireDetail;
import java.util.HashMap;
import java.util.List;
@@ -27,9 +28,11 @@ public class TireChangeDialog extends Dialog {
private List baseTyreList;
private Map tyreMap;
private String locationOld;
+ private TireChangeListener tireChangeListener;
- public TireChangeDialog(@NonNull Context context) {
+ public TireChangeDialog(@NonNull Context context, TireChangeListener tireChangeListener) {
super(context, R.style.MyMiddleDialogStyle);
+ this.tireChangeListener = tireChangeListener;
binding =
DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.dialog_tire_change, null, false);
binding.dialogTitle1.setOnClickListener(view -> dismiss());
@@ -47,8 +50,8 @@ public class TireChangeDialog extends Dialog {
baseTyreList.forEach(tire -> {
String wheelPostion = tire.getWheelPostion();
tyreMap.put(wheelPostion, tire);
- if (tire.getTyreNo()==null||tire.getTyreNo().equals("")){
- tire.setTyreNo("t:"+wheelPostion);
+ if (tire.getTyreNo() == null || tire.getTyreNo().equals("")) {
+ tire.setTyreNo("t:" + wheelPostion);
}
initTire(wheelPostion, tire);
});
@@ -88,17 +91,17 @@ public class TireChangeDialog extends Dialog {
}
BaseTyre baseTyre = tyreMap.get(location);
BaseTyre baseTyreOld = tyreMap.get(this.locationOld);
- if (baseTyre==null) {
+ if (baseTyre == null) {
Toast.makeText(getContext(), "当前轮胎位置不存在", Toast.LENGTH_SHORT).show();
return;
}
initTire(this.locationOld, baseTyre);
- Log.e("TAG", "tireLayoutCllick:" + location+","+baseTyre.toString());
+ Log.e("TAG", "tireLayoutCllick:" + location + "," + baseTyre.toString());
initTire(location, baseTyreOld);
- Log.e("TAG", "tireLayoutCllick:" + location+","+baseTyreOld.toString());
-
+ Log.e("TAG", "tireLayoutCllick:" + location + "," + baseTyreOld.toString());
+ Toast.makeText(getContext(), "互换成功", Toast.LENGTH_SHORT).show();
}
/**
@@ -145,4 +148,9 @@ public class TireChangeDialog extends Dialog {
break;
}
}
+
+ public interface TireChangeListener {
+ void onChangeSave(BizOrderTireDetail bizOrderTireDetail);
+
+ }
}
diff --git a/app/src/main/java/com/example/tyre/maintenance/dialog/TireUpdateDialog.java b/app/src/main/java/com/example/tyre/maintenance/dialog/TireUpdateDialog.java
index 0d39ec1..fd01a9f 100644
--- a/app/src/main/java/com/example/tyre/maintenance/dialog/TireUpdateDialog.java
+++ b/app/src/main/java/com/example/tyre/maintenance/dialog/TireUpdateDialog.java
@@ -27,15 +27,14 @@ public class TireUpdateDialog extends Dialog {
private BaseTyre baseTyre;
private ObservableBoolean isupdate;
private BizOrderTireDetail bizOrderTireDetail;
+ private BizOrderTireDetail newTireDetail;// 新轮胎
private TireUpdateDialogSaveListener listener;
private File image;
private ObservableBoolean photoState;
- private TireChangeDialog tireChangeDialog;
+ private TireChangeDialog tireChangeDialog;// 同车轮胎互换弹窗
private List baseTyreList;
+ private BaseTyre newBaseTyre;
- public void setBaseTyreList(List baseTyreList) {
- this.baseTyreList = baseTyreList;
- }
public TireUpdateDialog(@NonNull Context context, TireUpdateDialogSaveListener listener) {
super(context, R.style.MyMiddleDialogStyle);
@@ -50,8 +49,8 @@ public class TireUpdateDialog extends Dialog {
isupdate.set(isChecked);
});
- // 保存按钮点击事件
- binding.dialogTireUpdateSave.setOnClickListener(view -> {
+
+ binding.dialogTireUpdateSave.setOnClickListener(view -> {// 保存按钮点击事件
String shendu = binding.dialogTireShendu1.getText().toString();
String taiya = binding.dialogTireTaiya1.getText().toString();
if (shendu.isEmpty() || taiya.isEmpty()) {
@@ -66,7 +65,21 @@ public class TireUpdateDialog extends Dialog {
bizOrderTireDetail.setTreadDepth(shendu);// 花纹深度
bizOrderTireDetail.setTirePress(taiya);// 胎压
- listener.onSave(bizOrderTireDetail, image);
+ boolean isupdate1 = isupdate.get();
+
+ if (isupdate1) {
+ String s = binding.newTireInfo2.getText().toString();
+ String s1 = binding.dialogTireShendu2.getText().toString();
+ String s2 = binding.dialogTireTaiya2.getText().toString();
+ if (s1.isEmpty() || s2.isEmpty()) {
+ Toast.makeText(context, "请输入花纹深度和胎压", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ newTireDetail.setTreadDepth(s1);// 花纹深度
+ newTireDetail.setTirePress(s2);// 胎压
+ bizOrderTireDetail.setDataType("换新胎,卸车");
+ }
+ listener.onSave(bizOrderTireDetail, image, isupdate1,newTireDetail);
});
// 同车互换
binding.dialogButtonTong.setOnClickListener(view -> {
@@ -82,8 +95,36 @@ public class TireUpdateDialog extends Dialog {
photoState = new ObservableBoolean(false);
binding.setPhotoState(photoState);
setContentView(binding.getRoot());
- tireChangeDialog=new TireChangeDialog(context);
+ tireChangeDialog = new TireChangeDialog(context, new TireChangeDialog.TireChangeListener() {
+ @Override
+ public void onChangeSave(BizOrderTireDetail bizOrderTireDetail) {
+ }
+
+
+ });
+
+ }
+
+ // 换新胎了
+ public void setNewBaseTyre(BaseTyre newBaseTyre) {
+ this.newBaseTyre = newBaseTyre;
+
+ // 显示用
+ String tyreNo = baseTyre.getTyreNo();
+ String selfNo = baseTyre.getSelfNo();
+ binding.newTireInfo1.setText(tyreNo == null ? baseTyre.getTyreEpc() : tyreNo);
+ binding.newTireInfo2.setText(selfNo);
+ binding.dialogTireShendu2.setText(newBaseTyre.getPatternDepth());
+ // id
+ Long tyreId = baseTyre.getTyreId();
+ newTireDetail.setTireId(tyreId);
+ newTireDetail.setTireCode(tyreNo);
+ newTireDetail.setBaseTyre(newBaseTyre);
+ }
+
+ public void setBaseTyreList(List baseTyreList) {
+ this.baseTyreList = baseTyreList;
}
public void setBaseTyre(BaseTyre baseTyre) {
@@ -93,6 +134,13 @@ public class TireUpdateDialog extends Dialog {
bizOrderTireDetail.setTireId(baseTyre.getTyreId());
bizOrderTireDetail.setTireCode(baseTyre.getTyreNo());
bizOrderTireDetail.setPositionName(baseTyre.getWheelPostion());
+ bizOrderTireDetail.setDataType("保养");
+ bizOrderTireDetail.setBaseTyre(baseTyre);
+ // 换新胎初始化
+ newTireDetail = new BizOrderTireDetail();
+ newTireDetail.setPositionName(baseTyre.getWheelPostion());// 保存轮位
+ newTireDetail.setDataType("换新胎,装车");
+ // 重置ui
photoState.set(false);
binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_xiangji);
show();
@@ -130,9 +178,10 @@ public class TireUpdateDialog extends Dialog {
}
public interface TireUpdateDialogSaveListener {
- void onSave(BizOrderTireDetail bizOrderTireDetail, File image);
+ void onSave(BizOrderTireDetail bizOrderTireDetail, File image, boolean isupdate,BizOrderTireDetail newTireDetail);
void onTakePhoto();
- void onChengeTong(String location);
+
+
}
}
diff --git a/app/src/main/java/com/example/tyre/maintenance/receiver/MyKeyInfoCall.java b/app/src/main/java/com/example/tyre/maintenance/receiver/MyKeyInfoCall.java
new file mode 100644
index 0000000..382ba58
--- /dev/null
+++ b/app/src/main/java/com/example/tyre/maintenance/receiver/MyKeyInfoCall.java
@@ -0,0 +1,9 @@
+package com.example.tyre.maintenance.receiver;
+
+/**
+ * @author wanghao
+ * @date 2024/7/9 17:24
+ */
+public interface MyKeyInfoCall {
+ void onkeyDown();
+}
diff --git a/app/src/main/java/com/example/tyre/maintenance/receiver/MyKeyReceiver.java b/app/src/main/java/com/example/tyre/maintenance/receiver/MyKeyReceiver.java
new file mode 100644
index 0000000..3cff7eb
--- /dev/null
+++ b/app/src/main/java/com/example/tyre/maintenance/receiver/MyKeyReceiver.java
@@ -0,0 +1,30 @@
+package com.example.tyre.maintenance.receiver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+import android.view.KeyEvent;
+
+public class MyKeyReceiver extends BroadcastReceiver {
+ private MyKeyInfoCall myKeyInfoCall;
+
+ public MyKeyReceiver() {
+ }
+
+ public MyKeyReceiver(MyKeyInfoCall myKeyInfoCall) {
+ this.myKeyInfoCall = myKeyInfoCall;
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.e("TAG", "onReceive:" + intent.getAction());
+ var keydown = intent.getBooleanExtra("keydown", false);
+ var keyCode = intent.getIntExtra("keyCode", 0);
+ Log.e("TAG", "onReceive:" + keydown + " --" + keyCode);
+ if (keydown && (keyCode == 135 || keyCode ==136)) {
+ myKeyInfoCall.onkeyDown();
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_down.xml b/app/src/main/res/layout/activity_down.xml
index 2bcee7b..ef4beb5 100644
--- a/app/src/main/res/layout/activity_down.xml
+++ b/app/src/main/res/layout/activity_down.xml
@@ -156,7 +156,8 @@
android:textSize="22sp"
android:textColor="@color/black"
android:background="@drawable/bg_santex_coppy"
- android:gravity="center" />
+ android:gravity="center"
+ android:inputType="number"/>
+ style="@style/buttonStyle"/>
+ style="@style/buttonStyle"/>
diff --git a/app/src/main/res/layout/activity_instorehouse.xml b/app/src/main/res/layout/activity_instorehouse.xml
index 79d7b0e..0c5a9d2 100644
--- a/app/src/main/res/layout/activity_instorehouse.xml
+++ b/app/src/main/res/layout/activity_instorehouse.xml
@@ -46,6 +46,8 @@
android:layout_marginTop="10dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout3">
@@ -62,6 +64,10 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_santex_coppy"
+ android:inputType="textVisiblePassword"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:selectable="true"
/>
diff --git a/app/src/main/res/layout/activity_test.xml b/app/src/main/res/layout/activity_test.xml
index d9537ef..6f559bb 100644
--- a/app/src/main/res/layout/activity_test.xml
+++ b/app/src/main/res/layout/activity_test.xml
@@ -61,28 +61,18 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout2">
-
-
+ android:text="基本信息"/>
@@ -97,7 +87,7 @@
-
+
+ android:gravity="center"
+ android:inputType="textVisiblePassword"/>
+ android:gravity="center"
+ android:inputType="number"/>
@@ -407,6 +406,7 @@
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
+ android:visibility="gone"
app:layout_columnSpan="2" />
@@ -466,12 +466,14 @@
-
+ app:layout_columnWeight="1"
+ android:hint="输入轮胎自编号"/>
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/raw/msg.mp3 b/app/src/main/res/raw/msg.mp3
new file mode 100644
index 0000000..0d1d5cb
Binary files /dev/null and b/app/src/main/res/raw/msg.mp3 differ