修改入库界面以及调拨出库逻辑

asv2022.3.1
杨万里 2 days ago
parent 118cf21ea4
commit 790dc3a4f1

@ -37,7 +37,9 @@ import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response; import com.lzy.okgo.model.Response;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import cn.pda.serialport.Tools; import cn.pda.serialport.Tools;
@ -89,7 +91,15 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView
private List<TyreSizeVo> patternSize; private List<TyreSizeVo> patternSize;
// === 广播接收器 (保持不变) === // === 广播接收器 (保持不变) ===
private KeyReceiver keyReceiver; private KeyReceiver keyReceiver;
private static final String[] TYRE_TYPE_CODES = {"new", "circulating", "renovate", "experimental", "scrap"};
private Map<String,String> tyreTypeMap = new HashMap<>();
private void initTyreTypeMap() {
tyreTypeMap.put("全新胎", "new");
tyreTypeMap.put("周转胎", "circulating");
tyreTypeMap.put("翻新胎", "renovate");
tyreTypeMap.put("实验胎", "experimental");
tyreTypeMap.put("报废胎", "scrap");
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -102,7 +112,7 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView
binding.back.setOnClickListener(view -> { binding.back.setOnClickListener(view -> {
finish(); finish();
}); });
initTyreTypeMap();
EPC=binding.EPC; EPC=binding.EPC;
wtbm=binding.wtbm; wtbm=binding.wtbm;
wtbm.requestFocus(); wtbm.requestFocus();
@ -295,6 +305,12 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView
String kind = spinnerkind.getSelectedItem() != null ? String kind = spinnerkind.getSelectedItem() != null ?
spinnerkind.getSelectedItem().toString() : selectedKind; 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 ? String grooves = spinnergcts.getSelectedItem() != null ?
spinnergcts.getSelectedItem().toString() : selectedGcts; spinnergcts.getSelectedItem().toString() : selectedGcts;
@ -318,7 +334,7 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView
.params("tyreLevel", level) .params("tyreLevel", level)
.params("tyrePattern", pattern) .params("tyrePattern", pattern)
.params("grooves", grooves) .params("grooves", grooves)
.params("tyreType", kind) .params("tyreType", kindCode)
.params("patternDepth", depthStr) .params("patternDepth", depthStr)
.params("CreateBy", SharedPreferencesUtils.getstring("user", "admin")) .params("CreateBy", SharedPreferencesUtils.getstring("user", "admin"))
.execute(new StringCallback() { .execute(new StringCallback() {
@ -373,14 +389,12 @@ public class InStoreHouseActivity extends AllBaseActivity implements AdapterView
try { try {
Gson gson = new Gson(); Gson gson = new Gson();
InStoreSpinnerVo vo = gson.fromJson(response.body(), InStoreSpinnerVo.class); InStoreSpinnerVo vo = gson.fromJson(response.body(), InStoreSpinnerVo.class);
// 设置 Adapter (逻辑保持不变) // 设置 Adapter (逻辑保持不变)
setAdapter(spinnerkind, vo.getKindList()); // setAdapter(spinnerkind, vo.getKindList());
setAdapter(spinnerpattern, vo.getPatternList()); setAdapter(spinnerpattern, vo.getPatternList());
setAdapter(spinnerlevel, vo.getLevelList()); setAdapter(spinnerlevel, vo.getLevelList());
setAdapter(spinnergcts, vo.getGctsList()); setAdapter(spinnergcts, vo.getGctsList());
setAdapter(spinnerBrand, vo.getTyreBrandList()); setAdapter(spinnerBrand, vo.getTyreBrandList());
// 特殊处理:型号 (需要处理 Label/Value) // 特殊处理:型号 (需要处理 Label/Value)
List<String> sizeLabels = new ArrayList<>(); List<String> sizeLabels = new ArrayList<>();
// if (vo.getTyreSizeList() != null) { // if (vo.getTyreSizeList() != null) {

@ -12,6 +12,7 @@ import android.util.Log;
import android.widget.TextView; import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.databinding.ObservableBoolean; import androidx.databinding.ObservableBoolean;
import com.android.hdhe.uhf.reader.UhfReader; import com.android.hdhe.uhf.reader.UhfReader;
@ -44,6 +45,7 @@ public class OutStoreHouseActivity extends AppCompatActivity {
TextView huawen; TextView huawen;
TextView wtbm; TextView wtbm;
TextView ltlb; TextView ltlb;
long lastTime; long lastTime;
long nextTime; long nextTime;
private ActivityOutStoreHouseBinding binding; private ActivityOutStoreHouseBinding binding;
@ -56,7 +58,9 @@ public class OutStoreHouseActivity extends AppCompatActivity {
private ArrayList<String> listepc = new ArrayList<String>(); private ArrayList<String> listepc = new ArrayList<String>();
private KeyReceiver keyReceiver; private KeyReceiver keyReceiver;
private ObservableBoolean aType; private ObservableBoolean aType;
private static final int STATE_IDLE = 0; // 空闲状态,可扫描
private static final int STATE_LOCKED = 1; // 锁定状态,禁止下拉
private int currentSpinnerState = STATE_IDLE;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -84,6 +88,7 @@ public class OutStoreHouseActivity extends AppCompatActivity {
cengji = binding.cengji; cengji = binding.cengji;
huawen = binding.huawen; huawen = binding.huawen;
wtbm = binding.wtbm; wtbm = binding.wtbm;
ltlb = binding.ltlb;
} }
private void setupClickListeners() { private void setupClickListeners() {
@ -179,15 +184,18 @@ public class OutStoreHouseActivity extends AppCompatActivity {
nextTime = lastTime; nextTime = lastTime;
Log.e("TAG", "run: " + time); 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() { private void clearData() {
@ -203,6 +211,7 @@ public class OutStoreHouseActivity extends AppCompatActivity {
@Override @Override
public void onSuccess(Response<String> response) { public void onSuccess(Response<String> response) {
String body = response.body(); String body = response.body();
hideLoadingDialog();
try { try {
Gson gson = new Gson(); Gson gson = new Gson();
BaseTyre baseTyre = gson.fromJson(body, BaseTyre.class); BaseTyre baseTyre = gson.fromJson(body, BaseTyre.class);
@ -214,7 +223,8 @@ public class OutStoreHouseActivity extends AppCompatActivity {
String size = safeGetString(baseTyre.getTyreModel()); String size = safeGetString(baseTyre.getTyreModel());
String level = safeGetString(baseTyre.getTyreLevel()); String level = safeGetString(baseTyre.getTyreLevel());
String pattern = safeGetString(baseTyre.getTyrePattern()); String pattern = safeGetString(baseTyre.getTyrePattern());
String kind = safeGetString(baseTyre.getTyreType()); String kind = getTyreType(safeGetString(baseTyre.getTyreType()));
String deptId = safeGetString(baseTyre.getDeptId());
pinpai.setText(brand); pinpai.setText(brand);
wtbm.setText(tyreno); wtbm.setText(tyreno);
// zbh.setText(zb); // zbh.setText(zb);
@ -222,6 +232,22 @@ public class OutStoreHouseActivity extends AppCompatActivity {
cengji.setText(level); cengji.setText(level);
huawen.setText(pattern); huawen.setText(pattern);
ltlb.setText(kind); 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 { } else {
new CommonDialog(OutStoreHouseActivity.this).setMessage("轮胎不存在!").show(); new CommonDialog(OutStoreHouseActivity.this).setMessage("轮胎不存在!").show();
} }
@ -277,7 +303,21 @@ public class OutStoreHouseActivity extends AppCompatActivity {
} }
return 209; 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 * Inventory EPC Thread
*/ */

@ -34,6 +34,7 @@ public class BaseTyre
private String tyreLevel; private String tyreLevel;
/** 轮胎花纹 */ /** 轮胎花纹 */
private String tyrePattern; private String tyrePattern;
@ -42,8 +43,8 @@ public class BaseTyre
/** 所属车队 */ /** 所属车队 */
private String team; private String team;
private String deptId;
private String deptName;
private String carNo; private String carNo;
private String wheelPostion; private String wheelPostion;
@ -54,6 +55,22 @@ public class BaseTyre
private String pressure; 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() { public String getPressure() {
return pressure; return pressure;
} }

@ -0,0 +1,6 @@
<!-- res/drawable/bg_textview_plain.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/white" /> <!-- 背景色,根据你的主题调整 -->
<corners android:radius="4dp" /> <!-- 圆角,根据你的 bg_select_grey 样式调整 -->
<stroke android:width="1dp" android:color="#DDDDDD" /> <!-- 边框颜色 -->
</shape>

@ -279,6 +279,7 @@
android:layout_height="48dp" android:layout_height="48dp"
android:background="@drawable/rounded_input_bg" android:background="@drawable/rounded_input_bg"
android:paddingStart="12dp" android:paddingStart="12dp"
android:entries="@array/tyreType"
android:spinnerMode="dropdown" /> android:spinnerMode="dropdown" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

@ -204,7 +204,26 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
</LinearLayout> </LinearLayout>
<LinearLayout
style="@style/layout_t12_s8_style"
android:layout_width="match_parent"
android:layout_height="45dp">
<TextView
style="@style/alltext"
android:layout_width="90dp"
android:layout_height="match_parent"
android:text="当前站点:" />
<Spinner
android:id="@+id/out_store_site_now"
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@drawable/bg_select_grey"
android:entries="@array/zxzd"
android:paddingStart="12dp" />
</LinearLayout>
<LinearLayout <LinearLayout
style="@style/layout_t12_s8_style" style="@style/layout_t12_s8_style"
android:layout_width="match_parent" android:layout_width="match_parent"

@ -36,7 +36,17 @@
<item>一分公司修理厂</item> <item>一分公司修理厂</item>
<item>光明修理厂</item> <item>光明修理厂</item>
<item>石岩修理厂</item> <item>石岩修理厂</item>
<item>运维部门</item>
</string-array> </string-array>
<string-array name="tyreType">
<item>全新胎</item>
<item>周转胎</item>
<item>翻新胎</item>
<item>实验胎</item>
<item>报废胎</item>
</string-array>
<string-array name="work_type"> <string-array name="work_type">
<item>二级保养</item> <item>二级保养</item>
<item>小修</item> <item>小修</item>

Loading…
Cancel
Save