|
@@ -18,6 +18,7 @@ import androidx.activity.result.contract.ActivityResultContracts;
|
|
|
import androidx.appcompat.app.AlertDialog;
|
|
|
import androidx.viewbinding.ViewBinding;
|
|
|
|
|
|
+import com.blankj.utilcode.util.ClickUtils;
|
|
|
import com.blankj.utilcode.util.GsonUtils;
|
|
|
import com.blankj.utilcode.util.LogUtils;
|
|
|
import com.blankj.utilcode.util.ThreadUtils;
|
|
@@ -38,9 +39,11 @@ import org.json.JSONObject;
|
|
|
import java.io.IOException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
import java.util.Locale;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
import okhttp3.Response;
|
|
|
import xn.hxp.app.ChemicalApp;
|
|
@@ -57,15 +60,18 @@ import xn.hxp.ui.plan.room.bean.locker.HxpLabCabinetVo;
|
|
|
import xn.hxp.ui.plan.room.dao.HxpCabinetDAO;
|
|
|
import xn.hxp.ui.plan.room.dao.HxpDoorDAO;
|
|
|
import xn.hxp.ui.plan.room.dao.HxpInventoryDAO;
|
|
|
+import xn.hxp.ui.plan.save_list.SaveListActivity;
|
|
|
import xn.hxp.ui.plan.unlock.UnlockActivity;
|
|
|
|
|
|
public class AlreadyActivity extends BaseActivity {
|
|
|
private ActivityAlreadyBinding binding;
|
|
|
private List<HxpChemicalVo> hxpChemicalVoList = new ArrayList<>();
|
|
|
+ private Set<String> checkWaitIdSet = new HashSet<>();
|
|
|
private AlreadyAdapter alreadyAdapter;
|
|
|
|
|
|
private int page = 1; // 页数
|
|
|
- private int type; // 0:与自己相关 1:其它
|
|
|
+ private int pages = Integer.MAX_VALUE;
|
|
|
+ private int type = 0; // 0:与自己相关 1:其它
|
|
|
private String applyOrder; // 申领单号
|
|
|
private String applyUserName;// 申领人
|
|
|
private String topicUserName;// 归属人
|
|
@@ -74,6 +80,7 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
|
|
|
private ActivityResultLauncher<Intent> intentActivityResultLauncher;
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
protected ViewBinding setViewBinding() {
|
|
|
return binding = ActivityAlreadyBinding.inflate(getLayoutInflater());
|
|
@@ -92,6 +99,7 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
@Override
|
|
|
public void onActivityResult(ActivityResult result) {
|
|
|
if (result.getResultCode() == RESULT_OK) {
|
|
|
+ showLoading("正在修改存储位置...");
|
|
|
Intent resultData = result.getData();
|
|
|
if (null != resultData && resultData.hasExtra("data")) {
|
|
|
Bundle bundle = resultData.getBundleExtra("data");
|
|
@@ -114,21 +122,19 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
recordsBean.setDoorId(cabinetLayerSelect.getDoorId());
|
|
|
recordsBean.setDoorLayers(cabinetLayerSelect.getLayer());
|
|
|
}
|
|
|
-
|
|
|
- showLoading("正在修改存储位置...");
|
|
|
ThreadUtils.executeByCached(new ThreadUtils.SimpleTask<Object>() {
|
|
|
@Override
|
|
|
public Object doInBackground() throws Throwable {
|
|
|
Response response = HttpTool.changeDoor(beanArrayList);
|
|
|
String json = response.body().string();
|
|
|
- LogUtils.d(json);
|
|
|
+ LogUtils.d("柜层", json);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onSuccess(Object result) {
|
|
|
dismissLoading();
|
|
|
- alreadyAdapter.notifyDataSetChanged();
|
|
|
+ getHxpStockWait();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -142,36 +148,37 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
binding.selectAllCB.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
- List<String> waitArray = new ArrayList<>();
|
|
|
- for (int i = 0; i < hxpChemicalVoList.size(); i++) {
|
|
|
- HxpChemicalVo recordsBean = hxpChemicalVoList.get(i);
|
|
|
- recordsBean.setSelect(binding.selectAllCB.isChecked());
|
|
|
- if (binding.selectAllCB.isChecked()) {
|
|
|
- waitArray.add(recordsBean.getWaitId());
|
|
|
+ if (null != hxpChemicalVoList && !hxpChemicalVoList.isEmpty()) {
|
|
|
+ List<String> waitArray = new ArrayList<>();
|
|
|
+ for (int i = 0; i < hxpChemicalVoList.size(); i++) {
|
|
|
+ HxpChemicalVo recordsBean = hxpChemicalVoList.get(i);
|
|
|
+ recordsBean.setSelect(binding.selectAllCB.isChecked());
|
|
|
+ if (binding.selectAllCB.isChecked()) {
|
|
|
+ waitArray.add(recordsBean.getWaitId());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if (binding.selectAllCB.isChecked()) {
|
|
|
- PopTip.show("全选" + waitArray.size());
|
|
|
+ alreadyAdapter.update(type);
|
|
|
+ LogUtils.json(waitArray);
|
|
|
} else {
|
|
|
- PopTip.show("全反选" + waitArray.size());
|
|
|
+ showLoading("未有可操作的数据!");
|
|
|
+ binding.selectAllCB.setChecked(false);
|
|
|
}
|
|
|
- alreadyAdapter.notifyDataSetChanged();
|
|
|
- LogUtils.json(waitArray);
|
|
|
}
|
|
|
});
|
|
|
// 已申领类型选择
|
|
|
binding.typeRG.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
|
|
@Override
|
|
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
|
|
+ page = 1;
|
|
|
// 与我相关
|
|
|
if (checkedId == binding.relatedRB.getId()) {
|
|
|
binding.otherRB.setText("其它");
|
|
|
- type = 1;
|
|
|
+ type = 0;
|
|
|
}
|
|
|
// 其它
|
|
|
else if (checkedId == binding.otherRB.getId()) {
|
|
|
binding.relatedRB.setText("与我相关");
|
|
|
- type = 0;
|
|
|
+ type = 1;
|
|
|
}
|
|
|
getHxpStockWait();
|
|
|
}
|
|
@@ -219,9 +226,7 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
applyUserName = "";
|
|
|
binding.applicantSearchTV.setText("申领人");
|
|
|
- if (!TextUtils.isEmpty(editText.getText())) {
|
|
|
- getHxpStockWait();
|
|
|
- }
|
|
|
+ getHxpStockWait();
|
|
|
}
|
|
|
});
|
|
|
builder.setPositiveButton("确定", null);
|
|
@@ -272,9 +277,7 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
topicUserName = "";
|
|
|
binding.belongSearchTV.setText("归属人");
|
|
|
- if (!TextUtils.isEmpty(editText.getText())) {
|
|
|
- getHxpStockWait();
|
|
|
- }
|
|
|
+ getHxpStockWait();
|
|
|
}
|
|
|
});
|
|
|
AlertDialog dialog = builder.create();
|
|
@@ -298,9 +301,10 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
}
|
|
|
});
|
|
|
// 一键入库
|
|
|
- binding.subAdd.setOnClickListener(new View.OnClickListener() {
|
|
|
+ ClickUtils.applySingleDebouncing(binding.subAdd, new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
+
|
|
|
showLoading("处理中...");
|
|
|
ThreadUtils.executeByCached(new ThreadUtils.SimpleTask<PlanAddData>() {
|
|
|
@Override
|
|
@@ -314,7 +318,6 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
autoChemicalList.add(recordsBean);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
// 为需要自动入库的化学品创建清单
|
|
|
AlreadyTool.INSTANCE.updateHxpInventoryList(autoChemicalList);
|
|
|
HxpDoorDAO hxpDoorDAO = RoomTool.getInstance().hxpDoorDAO();
|
|
@@ -386,7 +389,7 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
LogUtils.d("需要开锁", cabinetList.size(), doorList.size());
|
|
|
// 不需要开门
|
|
|
if (cabinetList.isEmpty() || doorList.isEmpty()) {
|
|
|
- showToast("不需要开门");
|
|
|
+ autoSave(planAddData);
|
|
|
return;
|
|
|
}
|
|
|
String json = GsonUtils.toJson(planAddData);
|
|
@@ -400,6 +403,33 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ // 上一页
|
|
|
+ binding.lastPage.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ int last = page - 1;
|
|
|
+ if (last < 1) {
|
|
|
+ showToast("没有更多数据!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ page = last;
|
|
|
+ getHxpStockWait();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 下一页
|
|
|
+ binding.nextPage.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ int next = page + 1;
|
|
|
+ if (next > pages) {
|
|
|
+ showToast("没有更多数据!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ page = next;
|
|
|
+ getHxpStockWait();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
try {
|
|
|
// 日期
|
|
|
binding.nowTime.setText(TimeUtils.getNowString(new SimpleDateFormat("MM月dd日 EEEE ", Locale.getDefault())));
|
|
@@ -436,6 +466,49 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
binding.tvReturn.setOnClickListener(v -> finish());
|
|
|
}
|
|
|
|
|
|
+ private void autoSave(PlanAddData planAddData) {
|
|
|
+ ThreadUtils.executeByCached(new ThreadUtils.SimpleTask<String>() {
|
|
|
+ @Override
|
|
|
+ public String doInBackground() throws Throwable {
|
|
|
+
|
|
|
+ List<String> autoChemicalList = planAddData.getAutoChemicalList();
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ for (int i = 0; i < autoChemicalList.size(); i++) {
|
|
|
+ String waitId = autoChemicalList.get(i);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("waitId", waitId);
|
|
|
+ jsonArray.put(jsonObject);
|
|
|
+ }
|
|
|
+ LogUtils.d(jsonArray);
|
|
|
+ Response response = HttpTool.autoChemicals(jsonArray.toString());
|
|
|
+ if (response.isSuccessful()) {
|
|
|
+ String json = response.body().string();
|
|
|
+ JSONObject jsonObject = new JSONObject(json);
|
|
|
+ int code = jsonObject.getInt("code");
|
|
|
+ if (code == 200) {
|
|
|
+ return "";
|
|
|
+ } else {
|
|
|
+ return jsonObject.getString("message");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return response.message();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onSuccess(String result) {
|
|
|
+ dismissLoading();
|
|
|
+ if (!TextUtils.isEmpty(result)) {
|
|
|
+ binding.subAdd.setEnabled(true);
|
|
|
+ PopTip.show(result);
|
|
|
+ } else {
|
|
|
+ finish();
|
|
|
+ startActivity(new Intent(AlreadyActivity.this, SaveListActivity.class));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取单号检索列表
|
|
|
*/
|
|
@@ -526,6 +599,15 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
*/
|
|
|
private void getHxpStockWait() {
|
|
|
showLoading("加载中...");
|
|
|
+ for (int i = 0; i < hxpChemicalVoList.size(); i++) {
|
|
|
+ HxpChemicalVo hxpChemicalVo = hxpChemicalVoList.get(i);
|
|
|
+ if (hxpChemicalVo.isSelect()) {
|
|
|
+ checkWaitIdSet.add(hxpChemicalVo.getWaitId());
|
|
|
+ } else {
|
|
|
+ checkWaitIdSet.remove(hxpChemicalVo.getWaitId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
ThreadUtils.executeByCached(new ThreadUtils.SimpleTask<AlreadyBean>() {
|
|
|
@Override
|
|
|
public AlreadyBean doInBackground() throws Throwable {
|
|
@@ -543,15 +625,28 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
|
|
|
@Override
|
|
|
public void onSuccess(AlreadyBean result) {
|
|
|
- dismissLoading();
|
|
|
if (null != result) {
|
|
|
hxpChemicalVoList.clear();
|
|
|
List<HxpChemicalVo> resultRecords = result.getPageData().getRecords();
|
|
|
if (null != resultRecords && !resultRecords.isEmpty()) {
|
|
|
hxpChemicalVoList.addAll(resultRecords);
|
|
|
}
|
|
|
- alreadyAdapter = new AlreadyAdapter(AlreadyActivity.this, hxpChemicalVoList, intentActivityResultLauncher);
|
|
|
- binding.alreadyLV.setAdapter(alreadyAdapter);
|
|
|
+
|
|
|
+ for (String checkWaitId : checkWaitIdSet) {
|
|
|
+ for (int i = 0; i < hxpChemicalVoList.size(); i++) {
|
|
|
+ HxpChemicalVo hxpChemicalVo = hxpChemicalVoList.get(i);
|
|
|
+ if (hxpChemicalVo.getWaitId().equals(checkWaitId)) {
|
|
|
+ hxpChemicalVo.setSelect(true);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null == alreadyAdapter) {
|
|
|
+ alreadyAdapter = new AlreadyAdapter(AlreadyActivity.this, hxpChemicalVoList, intentActivityResultLauncher);
|
|
|
+ binding.alreadyLV.setAdapter(alreadyAdapter);
|
|
|
+ } else {
|
|
|
+ alreadyAdapter.update(type);
|
|
|
+ }
|
|
|
int total = result.getPageData().getTotal();
|
|
|
if (result.isAdmin()) {
|
|
|
binding.typeRG.setVisibility(View.VISIBLE);
|
|
@@ -567,7 +662,32 @@ public class AlreadyActivity extends BaseActivity {
|
|
|
showToast("暂无您可处理的危化品!");
|
|
|
}
|
|
|
}
|
|
|
+ // 最大页数
|
|
|
+ pages = result.getPageData().getPages();
|
|
|
+
|
|
|
+ binding.pageItem.setText(page + "/" + pages);
|
|
|
+
|
|
|
+ // 是否全选
|
|
|
+ boolean isAllCheck = true;
|
|
|
+ for (int i = 0; i < hxpChemicalVoList.size(); i++) {
|
|
|
+ HxpChemicalVo hxpChemicalVo = hxpChemicalVoList.get(i);
|
|
|
+ if (!hxpChemicalVo.isSelect()) {
|
|
|
+ isAllCheck = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (hxpChemicalVoList.isEmpty()) {
|
|
|
+ binding.pageControl.setVisibility(View.INVISIBLE);
|
|
|
+ binding.selectAllCB.setChecked(false);
|
|
|
+ } else {
|
|
|
+ binding.pageControl.setVisibility(View.VISIBLE);
|
|
|
+ binding.selectAllCB.setChecked(isAllCheck);
|
|
|
+ }
|
|
|
+
|
|
|
+ binding.selectAllCB.setEnabled(type == 0);
|
|
|
+
|
|
|
}
|
|
|
+ dismissLoading();
|
|
|
}
|
|
|
});
|
|
|
}
|