diff --git a/app/src/main/assets/litepal.xml b/app/src/main/assets/litepal.xml index ce6d2c9..f29b7e0 100644 --- a/app/src/main/assets/litepal.xml +++ b/app/src/main/assets/litepal.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/example/as_trak/LoadScanActivity.java b/app/src/main/java/com/example/as_trak/LoadScanActivity.java index c0cc9a7..9ceb6e4 100644 --- a/app/src/main/java/com/example/as_trak/LoadScanActivity.java +++ b/app/src/main/java/com/example/as_trak/LoadScanActivity.java @@ -10,6 +10,8 @@ import android.content.DialogInterface; import android.content.res.Resources; import android.os.Build; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.util.Log; import android.view.PixelCopy; import android.view.View; @@ -28,6 +30,7 @@ import com.example.as_trak.toast.LoadToast; import org.litepal.LitePal; +import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.List; @@ -44,7 +47,7 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C private DateTimeFormatter formatter; private UpdataDialog updataDialog; // 装载完成对话框 - + private ActivityLoadScanBinding binding; private TipDialog tipDialog; private AlertDialog.Builder alertDialog; @@ -52,18 +55,22 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ActivityLoadScanBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_load_scan); + + binding = DataBindingUtil.setContentView(this, R.layout.activity_load_scan); initScan(); int id = getIntent().getIntExtra("id", 0); + // 航班显示 flightInfo = LitePal.where("id= ?", String.valueOf(id)).findFirst(FlightInfo.class); binding.setData(flightInfo); + // 货箱显示 cargoInfoList = LitePal.where("flightId = ?", String.valueOf(id)).find(CargoInfo.class); adapter = new CargoListAdapter(this, this); adapter.setList(cargoInfoList); binding.setAdapter1(adapter); - formatter = DateTimeFormatter.ofPattern("HH:mm"); + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); // loadToast = new LoadToast(this); loadInfoAdapter = new LoadInfoAdapter(this, this); + loadInfoAdapter.setRecyclerView(binding.loadInfoRecyclerview); binding.setAdapter2(loadInfoAdapter); binding.loadScanSubmit.setOnLongClickListener(this); initDialog(); @@ -84,43 +91,69 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C updataDialog.dismiss(); }); tipDialog = new TipDialog(this); - alertDialog=new AlertDialog.Builder(this); + alertDialog = new AlertDialog.Builder(this); alertDialog.setTitle("装载完成提示") - .setMessage("是否全部修改状态为装载完成") - .setNegativeButton("取消",null) - .setPositiveButton("确定", new DialogInterface.OnClickListener() { + .setMessage("确认装载完成") + .setNegativeButton("取消", null) + .setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - cargoInfoList.forEach(t -> { - t.setState("装载完成"); - t.update(t.getId()); - }); - Toast.makeText(LoadScanActivity.this, "成功", Toast.LENGTH_SHORT).show(); - finish(); + if (cargoInfoTag == null) { + Toast.makeText(LoadScanActivity.this, "没有选择装载单元", Toast.LENGTH_SHORT).show(); + return; + } + cargoInfoTag.setState("装载完成"); + cargoInfoTag.update(cargoInfoTag.getId()); + adapter.notifyDataSetChanged(); + Toast.makeText(LoadScanActivity.this, "装载完成", Toast.LENGTH_SHORT).show(); } }).create(); } + + // 点击装载单元 + @Override + public void clickCargoInfo(int index) { + cargoInfoTag = cargoInfoList.get(index); + // Log.e("TAG", "clickCargoInfo:" + cargoInfoTag.toString()); + loadOperations = LitePal.where("cargoId =? and type = ? and (state IS NULL or state = '修改') ", String.valueOf(cargoInfoTag.getId()), "装载") + .order("id desc").find(LoadOperation.class); + Log.e("TAG", "clickCargoInfo:" + loadOperations); + loadInfoAdapter.setList(loadOperations); + loadInfoAdapter.notifyDataSetChanged(); + } + // 扫码结果 @SuppressLint("NotifyDataSetChanged") @Override public void sanCodeResult(String code) { super.sanCodeResult(code); + addInfo(code); + } + + // 手动添加扫描结果 + public void addSanResult(View view) { + String code = binding.loadSanInfoCode.getText().toString(); + addInfo(code); + } + + // 添加 + private void addInfo(String code) { if (cargoInfoTag == null) { Toast.makeText(this, "没有选择装载单元", Toast.LENGTH_SHORT).show(); return; } - if (cargoInfoTag.getState().equals("装载完成")) { - Toast.makeText(this, "装载单元已经装载完成", Toast.LENGTH_SHORT).show(); - return; - } - int count = LitePal.where("flightId= ? and luggageCode=? and (state IS NULL or state = '修改') ", String.valueOf(flightInfo.getId()), code).count(LoadOperation.class); + // if (cargoInfoTag.getState().equals("装载完成")) { + // Toast.makeText(this, "装载单元已经装载完成", Toast.LENGTH_SHORT).show(); + // return; + // } + int count = LitePal.where("flightId= ? and luggageCode=? and type ='装载' and (state IS NULL or state = '修改') ", String.valueOf(flightInfo.getId()), code).count(LoadOperation.class); if (count > 0) { tipDialog.showError("行李条码:" + code + "重复"); return; } - tipDialog.showSuccess("绑定成功"); - + tipDialog.showSuccess(code + "\t装载成功"); + // 添加行李 LoadOperation loadOperation = new LoadOperation(); loadOperation.setFlightCode(flightInfo.getFlightCode()); loadOperation.setFlightId(flightInfo.getId()); @@ -130,39 +163,37 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C loadOperation.setCargoId(cargoInfoTag.getId()); loadOperation.setLuggageCode(code); // loadOperation.setUser(); - String formattedTime = LocalTime.now().format(formatter); // 格式化当前时间 + String formattedTime = LocalDateTime.now().format(formatter); // 格式化当前时间 loadOperation.setLoadTime(formattedTime); loadOperation.setType("装载"); loadOperation.save(); - loadOperations.add(0, loadOperation); - Log.e("TAG", "sanCodeResult:" + loadOperations.toString()); - loadInfoAdapter.notifyDataSetChanged(); + loadOperations.add(0, loadOperation);//列表 + loadInfoAdapter.notifyItemInserted(0); + binding.loadInfoRecyclerview.scrollToPosition(0); + loadOperation.setBg(true); + changeBackgroundColorAfterDelay(loadOperation); + // 更新货箱状态 int size = loadOperations.size(); Log.e("TAG", "更新的id:" + cargoInfoTag.getId() + "数量:" + size); cargoInfoTag.setCount(size); cargoInfoTag.setState("装载中"); cargoInfoTag.update(cargoInfoTag.getId()); - } - - // 点击装载单元 - @Override - public void clickCargoInfo(int index) { - cargoInfoTag = cargoInfoList.get(index); - // Log.e("TAG", "clickCargoInfo:" + cargoInfoTag.toString()); - loadOperations = LitePal.where("cargoId =? and type = ? and (state IS NULL or state = '修改') ", String.valueOf(cargoInfoTag.getId()), "装载").find(LoadOperation.class); - loadInfoAdapter.setList(loadOperations); - loadInfoAdapter.notifyDataSetChanged(); + private Handler handler = new Handler(Looper.getMainLooper()); + private void changeBackgroundColorAfterDelay(LoadOperation loadOperation) { + handler.postDelayed(() -> { + loadOperation.setBg(false); + loadInfoAdapter.notifyDataSetChanged(); + }, 3000); } - // 修改行李号 @SuppressLint("NotifyDataSetChanged") @Override public void updateCargoInfo(int index) { - if (cargoInfoTag.getState().equals("装载完成")) { - Toast.makeText(this, "装载单元已经装载完成", Toast.LENGTH_SHORT).show(); - return; - } + // if (cargoInfoTag.getState().equals("装载完成")) { + // Toast.makeText(this, "装载单元已经装载完成", Toast.LENGTH_SHORT).show(); + // return; + // } LoadOperation loadOperation = loadOperations.get(index); updataDialog.setIndex(index); updataDialog.setCode(loadOperation.getLuggageCode()); @@ -173,10 +204,10 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C @SuppressLint("NotifyDataSetChanged") @Override public void deleteCargoInfo(int index) { - if (cargoInfoTag.getState().equals("装载完成")) { - Toast.makeText(this, "装载单元已经装载完成", Toast.LENGTH_SHORT).show(); - return; - } + // if (cargoInfoTag.getState().equals("装载完成")) { + // Toast.makeText(this, "装载单元已经装载完成", Toast.LENGTH_SHORT).show(); + // return; + // } LoadOperation loadOperation = loadOperations.get(index); loadOperation.setState("删除"); loadOperation.update(loadOperation.getId()); diff --git a/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java b/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java index fbf73b1..2425be1 100644 --- a/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java +++ b/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java @@ -2,6 +2,8 @@ package com.example.as_trak.adapter; import android.annotation.SuppressLint; import android.content.Context; +import android.os.Handler; +import android.os.Looper; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MenuItem; @@ -106,4 +108,15 @@ public class LoadInfoAdapter extends RecyclerView.Adapter dismiss()); + } diff --git a/app/src/main/java/com/example/as_trak/entity/LoadOperation.java b/app/src/main/java/com/example/as_trak/entity/LoadOperation.java index b773d42..5772711 100644 --- a/app/src/main/java/com/example/as_trak/entity/LoadOperation.java +++ b/app/src/main/java/com/example/as_trak/entity/LoadOperation.java @@ -52,6 +52,15 @@ public class LoadOperation extends LitePalSupport { */ private String state; + private boolean bg =false; + + public boolean isBg() { + return bg; + } + + public void setBg(boolean bg) { + this.bg = bg; + } public String getUnLoadTime() { return unLoadTime; @@ -176,6 +185,7 @@ public class LoadOperation extends LitePalSupport { @Override public String toString() { return "LoadOperation{" + + "order="+orderNum+ "id=" + id + ", flightCode='" + flightCode + '\'' + ", flightId=" + flightId + diff --git a/app/src/main/res/layout/activity_load_scan.xml b/app/src/main/res/layout/activity_load_scan.xml index f151468..a55a614 100644 --- a/app/src/main/res/layout/activity_load_scan.xml +++ b/app/src/main/res/layout/activity_load_scan.xml @@ -46,6 +46,7 @@ android:gravity="center" android:text="@{data.takeoffTime}" android:textSize="20sp" /> + + + + + + + + + + + @@ -118,15 +151,13 @@ android:background="#e1e1e1" /> - - - - -