diff --git a/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java b/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java index 817a4ff..b523707 100644 --- a/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java +++ b/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java @@ -7,27 +7,21 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; -import android.os.Handler; -import android.os.Message; import android.os.SystemClock; import android.util.Log; -import android.view.KeyEvent; -import android.view.View; -import android.widget.AdapterView; -import android.widget.Button; -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.ActivityOutStoreHouseBinding; import com.example.tyre.entity.AjaxResult; import com.example.tyre.entity.BaseTyre; import com.example.tyre.entity.EPC; -import com.example.tyre.entity.Tyre; import com.example.tyre.util.CommonDialog; import com.example.tyre.util.MyUrl; -import com.example.tyre.util.PlayMusic; import com.example.tyre.util.SharedPreferencesUtils; import com.example.tyre.util.Util; import com.google.gson.Gson; @@ -36,28 +30,23 @@ import com.lzy.okgo.OkGo; import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.model.Response; - -import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; -import androidx.appcompat.app.AppCompatActivity; import cn.pda.serialport.Tools; -import com.example.tyre.databinding.ActivityOutStoreHouseBinding; public class OutStoreHouseActivity extends AppCompatActivity { - private ActivityOutStoreHouseBinding binding; - TextView scan; TextView pinpai; TextView xinghao; TextView cengji; TextView huawen; - Button button; TextView wtbm; - Button back; TextView ltlb; + long lastTime; + long nextTime; + private ActivityOutStoreHouseBinding binding; private boolean isStart = true; private ProgressDialog progressDialog; private boolean runFlag = true; @@ -65,11 +54,10 @@ public class OutStoreHouseActivity extends AppCompatActivity { private UhfReader manager; // UHF manager,UHF Operating handle private ArrayList listEPC; private ArrayList listepc = new ArrayList(); - long lastTime; - long nextTime; private Toast mToast; private Toast toast; private KeyReceiver keyReceiver; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -90,21 +78,17 @@ public class OutStoreHouseActivity extends AppCompatActivity { xinghao = binding.xinghao; cengji = binding.cengji; huawen = binding.huawen; - button = binding.button; wtbm = binding.wtbm; - back = binding.back; - ltlb = binding.ltlb; } private void setupClickListeners() { binding.button.setOnClickListener(v -> { showLoadingDialog(); - out_inventory(scan.getText().toString(),SharedPreferencesUtils.getstring("user","admin")); + out_inventory(scan.getText().toString(), SharedPreferencesUtils.getstring("user", "admin")); }); binding.back.setOnClickListener(v -> { - Intent intent = new Intent(this, HomePageActivity.class); - startActivity(intent); + finish(); }); } @@ -127,60 +111,27 @@ public class OutStoreHouseActivity extends AppCompatActivity { unregisterReceiver(); } + @Override protected void onDestroy() { startFlag = false; runFlag = false; super.onDestroy(); } + private void showLoadingDialog() { progressDialog = new ProgressDialog(this); progressDialog.setMessage("数据加载中..."); progressDialog.setCancelable(false); progressDialog.show(); } + private void hideLoadingDialog() { if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } } - /** - * Inventory EPC Thread - */ - class InventoryThread extends Thread { - private List tagList; - byte[] accessPassword = Tools.HexString2Bytes("00000000"); - @Override - public void run() { - super.run(); - while (runFlag) { - if (startFlag) { - tagList = manager.inventoryRealTime(); //实时盘存 - if (tagList != null && !tagList.isEmpty()) { - //播放提示音 - Util.play(1, 0); - for (TagModel tag : tagList) { - if (tag == null) { - String epcStr = ""; - addToList(listEPC, epcStr, (byte) -1); - } else { - String epcStr = Tools.Bytes2HexString(tag.getmEpcBytes(), tag.getmEpcBytes().length); - byte rssi = tag.getmRssi(); - addToList(listEPC, epcStr, rssi); - } - } - } - tagList = null; - try { - Thread.sleep(20); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - } - } + private void addToList(final List list, final String epc, final byte rssi) { runOnUiThread(new Runnable() { @Override @@ -194,7 +145,7 @@ public class OutStoreHouseActivity extends AppCompatActivity { list.add(epcTag); listepc.add(epc); - }else { + } else { for (int i = 0; i < list.size(); i++) { EPC mEPC = list.get(i); // list contain this epc @@ -216,7 +167,7 @@ public class OutStoreHouseActivity extends AppCompatActivity { } // play sound - lastTime = SystemClock.elapsedRealtime(); + lastTime = SystemClock.elapsedRealtime(); long time = lastTime - nextTime; if (time >= 60) { Util.play(1, 0); @@ -226,72 +177,130 @@ public class OutStoreHouseActivity extends AppCompatActivity { } }); Log.e("EPC", "listepc:+ " + listepc); - if (listepc != null && !listepc.isEmpty()){ + if (listepc != null && !listepc.isEmpty()) { startFlag = false; scan.setText(listepc.get(0).toString()); find(listepc.get(0).toString()); } clearData(); } + private void clearData() { listEPC.removeAll(listEPC); listepc.removeAll(listepc); } + // 基本信息查询 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) { - // 空值处理:若字段为 null 则显示空字符串 - String brand = safeGetString(baseTyre.getTyreBrand()); - String tyreno = safeGetString(baseTyre.getTyreNo()); + @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) { + // 空值处理:若字段为 null 则显示空字符串 + String brand = safeGetString(baseTyre.getTyreBrand()); + String tyreno = safeGetString(baseTyre.getTyreNo()); // String zb = safeGetString(baseTyre.getSelfNo()); - String size = safeGetString(baseTyre.getTyreModel()); - String level = safeGetString(baseTyre.getTyreLevel()); - String pattern = safeGetString(baseTyre.getTyrePattern()); - String kind = safeGetString(baseTyre.getTyreType()); - pinpai.setText(brand); - wtbm.setText(tyreno); + String size = safeGetString(baseTyre.getTyreModel()); + String level = safeGetString(baseTyre.getTyreLevel()); + String pattern = safeGetString(baseTyre.getTyrePattern()); + String kind = safeGetString(baseTyre.getTyreType()); + pinpai.setText(brand); + wtbm.setText(tyreno); // zbh.setText(zb); - xinghao.setText(size); - cengji.setText(level); - huawen.setText(pattern); - ltlb.setText(kind); - }else { - new CommonDialog(OutStoreHouseActivity.this).setMessage("轮胎不存在!").show(); + xinghao.setText(size); + cengji.setText(level); + huawen.setText(pattern); + ltlb.setText(kind); + } else { + new CommonDialog(OutStoreHouseActivity.this).setMessage("轮胎不存在!").show(); + } + } catch (JsonSyntaxException e) { + // 处理 JSON 解析错误 + new CommonDialog(OutStoreHouseActivity.this).setMessage("扫描出错!").show(); + return; + } } - } catch (JsonSyntaxException e) { - // 处理 JSON 解析错误 - new CommonDialog(OutStoreHouseActivity.this).setMessage("扫描出错!").show(); - return; - } - } - }); + }); } + private String safeGetString(String value) { return value == null || "null".equals(value) ? "" : value; } - private void out_inventory(String epc,String createBy) { + + private void out_inventory(String epc, String createBy) { + String outReason = binding.outReason.getSelectedItem().toString();//出库原因 OkGo.post(MyUrl.url + "/tyre/inventory/pdaOutInventory").tag(this) .params("tyreRfid", epc) - .params("createBy",createBy) + // .params("outReason", outReason) + .params("createBy", createBy) .execute(new StringCallback() { - @Override - public void onSuccess(Response response) { - String body = response.body(); - hideLoadingDialog(); - Gson gson = new Gson(); - AjaxResult ajaxResult = gson.fromJson(body, AjaxResult.class); - new CommonDialog(OutStoreHouseActivity.this).setMessage(ajaxResult.getMsg()).show(); + @Override + public void onSuccess(Response response) { + String body = response.body(); + hideLoadingDialog(); + Gson gson = new Gson(); + AjaxResult ajaxResult = gson.fromJson(body, AjaxResult.class); + new CommonDialog(OutStoreHouseActivity.this).setMessage(ajaxResult.getMsg()).show(); + } + }); + } + + private void registerReceiver() { + keyReceiver = new KeyReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction("android.rfid.FUN_KEY"); + filter.addAction("android.intent.action.FUN_KEY"); + registerReceiver(keyReceiver, filter); + } + + private void unregisterReceiver() { + unregisterReceiver(keyReceiver); + } + + /** + * Inventory EPC Thread + */ + class InventoryThread extends Thread { + byte[] accessPassword = Tools.HexString2Bytes("00000000"); + private List tagList; + + @Override + public void run() { + super.run(); + while (runFlag) { + if (startFlag) { + tagList = manager.inventoryRealTime(); // 实时盘存 + if (tagList != null && !tagList.isEmpty()) { + // 播放提示音 + Util.play(1, 0); + for (TagModel tag : tagList) { + if (tag == null) { + String epcStr = ""; + addToList(listEPC, epcStr, (byte) -1); + } else { + String epcStr = + Tools.Bytes2HexString(tag.getmEpcBytes(), tag.getmEpcBytes().length); + byte rssi = tag.getmRssi(); + addToList(listEPC, epcStr, rssi); + } + } + } + tagList = null; + try { + Thread.sleep(20); + } catch (InterruptedException e) { + + e.printStackTrace(); + } + } } - }); + } } private class KeyReceiver extends BroadcastReceiver { @@ -302,36 +311,10 @@ public class OutStoreHouseActivity extends AppCompatActivity { keyCode = intent.getIntExtra("keycode", 0); } boolean keyDown = intent.getBooleanExtra("keydown", false); - if (keyDown) { - if (toast == null) { - // toast = Toast.makeText(OutStoreHouseActivity.this, "KeyReceiver:keyCode = down" + keyCode, Toast.LENGTH_SHORT); - } else { - // toast.setText("KeyReceiver:keyCode = down" + keyCode); - } - // toast.show(); - switch (keyCode) { - case KeyEvent.KEYCODE_F1: - case KeyEvent.KEYCODE_F2: - case KeyEvent.KEYCODE_F3: - case KeyEvent.KEYCODE_F4: - case KeyEvent.KEYCODE_F5: - case 136: - //扫描 - startFlag = true; - break; - } + if (keyDown && (keyCode == 135 || keyCode == 136)) { + startFlag = true; } } } - private void registerReceiver() { - keyReceiver = new KeyReceiver(); - IntentFilter filter = new IntentFilter(); - filter.addAction("android.rfid.FUN_KEY"); - filter.addAction("android.intent.action.FUN_KEY"); - registerReceiver(keyReceiver, filter); - } - private void unregisterReceiver() { - unregisterReceiver(keyReceiver); - } } diff --git a/app/src/main/res/drawable/bg_button_black.xml b/app/src/main/res/drawable/bg_button_black.xml index 16d2b3a..64f69a6 100644 --- a/app/src/main/res/drawable/bg_button_black.xml +++ b/app/src/main/res/drawable/bg_button_black.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_out_store_house.xml b/app/src/main/res/layout/activity_out_store_house.xml index 9e38f03..dda902e 100644 --- a/app/src/main/res/layout/activity_out_store_house.xml +++ b/app/src/main/res/layout/activity_out_store_house.xml @@ -1,122 +1,99 @@ + android:background="@color/allbg" + android:orientation="vertical"> + + android:layout_height="55dp" + android:text="轮胎出库" /> + + android:layout_height="45dp"> + + android:layout_height="match_parent" /> + + android:layout_height="45dp"> + + android:layout_height="match_parent" /> - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + android:layout_height="45dp"> + + android:layout_height="match_parent" /> - + @@ -128,12 +105,12 @@ - + - + @@ -141,167 +118,124 @@ + android:layout_height="45dp"> + + android:layout_height="match_parent" /> + + android:layout_height="45dp"> + + android:layout_height="match_parent" /> - - - - + android:layout_height="45dp"> + + + + + + + + + android:layout_height="match_parent" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + style="@style/layout_t12_s8_style" + android:layout_width="match_parent" + android:layout_height="45dp"> + + + + + + + + +