diff --git a/app/src/main/java/com/example/tyre/InStoreHouseActivity.java b/app/src/main/java/com/example/tyre/InStoreHouseActivity.java index 0885858..02cf6d2 100644 --- a/app/src/main/java/com/example/tyre/InStoreHouseActivity.java +++ b/app/src/main/java/com/example/tyre/InStoreHouseActivity.java @@ -37,7 +37,9 @@ import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.model.Response; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import cn.pda.serialport.Tools; @@ -89,7 +91,15 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView private List patternSize; // === 广播接收器 (保持不变) === private KeyReceiver keyReceiver; - + private static final String[] TYRE_TYPE_CODES = {"new", "circulating", "renovate", "experimental", "scrap"}; + private Map tyreTypeMap = new HashMap<>(); + private void initTyreTypeMap() { + tyreTypeMap.put("全新胎", "new"); + tyreTypeMap.put("周转胎", "circulating"); + tyreTypeMap.put("翻新胎", "renovate"); + tyreTypeMap.put("实验胎", "experimental"); + tyreTypeMap.put("报废胎", "scrap"); + } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -102,7 +112,7 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView binding.back.setOnClickListener(view -> { finish(); }); - + initTyreTypeMap(); EPC=binding.EPC; wtbm=binding.wtbm; wtbm.requestFocus(); @@ -295,6 +305,12 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView String kind = spinnerkind.getSelectedItem() != null ? spinnerkind.getSelectedItem().toString() : selectedKind; + String kindCode = tyreTypeMap.get(kind); + if (kindCode == null) { + kindCode = "new"; // 设置默认值或报错 + Toast.makeText(this, "轮胎类型选择错误", Toast.LENGTH_SHORT).show(); + return; + } String grooves = spinnergcts.getSelectedItem() != null ? spinnergcts.getSelectedItem().toString() : selectedGcts; @@ -318,7 +334,7 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView .params("tyreLevel", level) .params("tyrePattern", pattern) .params("grooves", grooves) - .params("tyreType", kind) + .params("tyreType", kindCode) .params("patternDepth", depthStr) .params("CreateBy", SharedPreferencesUtils.getstring("user", "admin")) .execute(new StringCallback() { @@ -373,14 +389,12 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView try { Gson gson = new Gson(); InStoreSpinnerVo vo = gson.fromJson(response.body(), InStoreSpinnerVo.class); - // 设置 Adapter (逻辑保持不变) - setAdapter(spinnerkind, vo.getKindList()); + // setAdapter(spinnerkind, vo.getKindList()); setAdapter(spinnerpattern, vo.getPatternList()); setAdapter(spinnerlevel, vo.getLevelList()); setAdapter(spinnergcts, vo.getGctsList()); setAdapter(spinnerBrand, vo.getTyreBrandList()); - // 特殊处理:型号 (需要处理 Label/Value) List sizeLabels = new ArrayList<>(); // if (vo.getTyreSizeList() != null) { diff --git a/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java b/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java index 6be9ce8..21d29af 100644 --- a/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java +++ b/app/src/main/java/com/example/tyre/OutStoreHouseActivity.java @@ -12,6 +12,7 @@ import android.util.Log; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; import androidx.databinding.ObservableBoolean; import com.android.hdhe.uhf.reader.UhfReader; @@ -44,6 +45,7 @@ public class OutStoreHouseActivity extends AppCompatActivity { TextView huawen; TextView wtbm; TextView ltlb; + long lastTime; long nextTime; private ActivityOutStoreHouseBinding binding; @@ -56,7 +58,9 @@ public class OutStoreHouseActivity extends AppCompatActivity { private ArrayList listepc = new ArrayList(); private KeyReceiver keyReceiver; private ObservableBoolean aType; - + private static final int STATE_IDLE = 0; // 空闲状态,可扫描 + private static final int STATE_LOCKED = 1; // 锁定状态,禁止下拉 + private int currentSpinnerState = STATE_IDLE; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -84,6 +88,7 @@ public class OutStoreHouseActivity extends AppCompatActivity { cengji = binding.cengji; huawen = binding.huawen; wtbm = binding.wtbm; + ltlb = binding.ltlb; } private void setupClickListeners() { @@ -179,15 +184,18 @@ public class OutStoreHouseActivity extends AppCompatActivity { nextTime = lastTime; Log.e("TAG", "run: " + time); } + hideLoadingDialog(); + Log.e("EPC", "listepc:+ " + listepc); + if (listepc != null && !listepc.isEmpty()) { + startFlag = false; + scan.setText(listepc.get(0).toString()); + showLoadingDialog(); + find(listepc.get(0).toString()); + } + clearData(); } }); - Log.e("EPC", "listepc:+ " + listepc); - if (listepc != null && !listepc.isEmpty()) { - startFlag = false; - scan.setText(listepc.get(0).toString()); - find(listepc.get(0).toString()); - } - clearData(); + } private void clearData() { @@ -203,6 +211,7 @@ public class OutStoreHouseActivity extends AppCompatActivity { @Override public void onSuccess(Response response) { String body = response.body(); + hideLoadingDialog(); try { Gson gson = new Gson(); BaseTyre baseTyre = gson.fromJson(body, BaseTyre.class); @@ -214,7 +223,8 @@ public class OutStoreHouseActivity extends AppCompatActivity { String size = safeGetString(baseTyre.getTyreModel()); String level = safeGetString(baseTyre.getTyreLevel()); String pattern = safeGetString(baseTyre.getTyrePattern()); - String kind = safeGetString(baseTyre.getTyreType()); + String kind = getTyreType(safeGetString(baseTyre.getTyreType())); + String deptId = safeGetString(baseTyre.getDeptId()); pinpai.setText(brand); wtbm.setText(tyreno); // zbh.setText(zb); @@ -222,6 +232,22 @@ public class OutStoreHouseActivity extends AppCompatActivity { cengji.setText(level); huawen.setText(pattern); ltlb.setText(kind); + String deptNameFromServer = safeGetString(baseTyre.getDeptName()); // 或者 getFactorySite() + String[] siteArray = getResources().getStringArray(R.array.zxzd); + // 遍历数组,寻找与服务器返回数据匹配的站点名称 + // 这里假设 baseTyre 返回的是站点名称(如 "光明修理厂") + // 如果返回的是 ID(如 200),则需要先通过 getDeptId() 反查名称,或者直接根据 ID 逻辑处理 + int targetIndex = 0; // 默认选中第一个 + for (int i = 0; i < siteArray.length; i++) { + if (siteArray[i].equals(deptNameFromServer)) { + targetIndex = i; + break; + } + } + binding.outStoreSiteNow.setSelection(targetIndex); + binding.outStoreSiteNow.setBackground(ContextCompat.getDrawable(OutStoreHouseActivity.this, R.drawable.bg_textview_plain)); + binding.outStoreSiteNow.setEnabled(false); + currentSpinnerState = STATE_LOCKED; } else { new CommonDialog(OutStoreHouseActivity.this).setMessage("轮胎不存在!").show(); } @@ -277,7 +303,21 @@ public class OutStoreHouseActivity extends AppCompatActivity { } return 209; } - + public String getTyreType(String type) { + if (type.equals("circulating")) { + return "周转胎"; + } + else if (type.equals("renovate")) { + return "翻新胎"; + } + else if (type.equals("experimental")) { + return "实验胎"; + } + else if (type.equals("scrap")) { + return "报废胎"; + } + return "全新胎"; + } /** * Inventory EPC Thread */ diff --git a/app/src/main/java/com/example/tyre/entity/BaseTyre.java b/app/src/main/java/com/example/tyre/entity/BaseTyre.java index 7d5ed0f..9a7f06a 100644 --- a/app/src/main/java/com/example/tyre/entity/BaseTyre.java +++ b/app/src/main/java/com/example/tyre/entity/BaseTyre.java @@ -34,6 +34,7 @@ public class BaseTyre private String tyreLevel; + /** 轮胎花纹 */ private String tyrePattern; @@ -42,8 +43,8 @@ public class BaseTyre /** 所属车队 */ private String team; - - + private String deptId; + private String deptName; private String carNo; private String wheelPostion; @@ -54,6 +55,22 @@ public class BaseTyre private String pressure; + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + public String getPressure() { return pressure; } diff --git a/app/src/main/res/drawable/bg_textview_plain.xml b/app/src/main/res/drawable/bg_textview_plain.xml new file mode 100644 index 0000000..5388ea9 --- /dev/null +++ b/app/src/main/res/drawable/bg_textview_plain.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_instorehouse.xml b/app/src/main/res/layout/activity_instorehouse.xml index ae06c81..a3f71b9 100644 --- a/app/src/main/res/layout/activity_instorehouse.xml +++ b/app/src/main/res/layout/activity_instorehouse.xml @@ -279,6 +279,7 @@ android:layout_height="48dp" android:background="@drawable/rounded_input_bg" android:paddingStart="12dp" + android:entries="@array/tyreType" android:spinnerMode="dropdown" /> 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 6ee8057..1b5a2eb 100644 --- a/app/src/main/res/layout/activity_out_store_house.xml +++ b/app/src/main/res/layout/activity_out_store_house.xml @@ -204,7 +204,26 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> + + + + + 一分公司修理厂 光明修理厂 石岩修理厂 + 运维部门 + + + 全新胎 + 周转胎 + 翻新胎 + 实验胎 + 报废胎 + + 二级保养 小修