瀏覽代碼

注销 - step 1 - 查询车辆信息和注销条件

iaw/api/vehicleInfo/queryDevice
iaw/deviceCancel/query
GZBranch
wufasong 1 周之前
父節點
當前提交
89a8d30d13

+ 1
- 1
app/src/main/java/com/huntersun/vkyes/etcopencard/project/api/bean/IFCode.java 查看文件

@@ -375,7 +375,7 @@ public class IFCode {
public static final String IFCODE_VEHICLE_QUERY_DEVICE = "iaw/api/vehicleInfo/queryDevice";//查看车辆设备(卡、签、人信息)
// 设备注销申请接口
public static final String IFCODE_DEVICE_CANCEL_APPLY = "managew/api/deviceCancel/apply";//设备注销申请
public static final String IFCODE_DEVICE_CANCEL_APPLY = "iaw/api/deviceCancel/apply";//设备注销申请

public static final String IFCODE_EXCHANGE_APPLY = "iaw/api/afterSale/changeCardObu/commandApply";//卡签更换指令申请
public static final String IFCODE_EXCHANGE_BACK = "iaw/api/afterSale/changeCardObu/commandCallback";//卡签更换指令回传

+ 10
- 1
app/src/main/java/com/huntersun/vkyes/etcopencard/project/dialog/ConfirmDialog.java 查看文件

@@ -71,7 +71,16 @@ public class ConfirmDialog {

public ConfirmDialog.Builder setMsg(String msg,String title,String confirmTxt, String cancelTxt,int icon,int cancelColor,boolean hideCancel){
tvMsg.setText(msg);
ivIcon.setImageDrawable(getResources().getDrawable(icon));
if (icon != 0) {
try {
ivIcon.setImageDrawable(getResources().getDrawable(icon));
} catch (Exception e) {
// 如果图标资源不存在,隐藏图标
ivIcon.setVisibility(View.GONE);
}
} else {
ivIcon.setVisibility(View.GONE);
}
if (!FunHelper.isEmpty(cancelTxt)){
tvCancel.setText(cancelTxt);
}

+ 103
- 38
app/src/main/java/com/huntersun/vkyes/etcopencard/project/ui/activity/after/LogoutEtcStep1Activity.java 查看文件

@@ -87,18 +87,14 @@ public class LogoutEtcStep1Activity extends AppActivity {
@Override
@SingleClick
public void onClick(View view) {
ChannelsInterceptUtils.channelInterceptNd(getActivity(), curBizContent.getVehiclePlate()+"_"+curBizContent.getVehiclePlateColor(), new ChannelsInterceptUtils.OnChannelInterceptCallback2() {
@Override
public void off() {//9901 9052拦截
ChannelsInterceptUtils.businessIntercept(getActivity(), curBizContent.getOrderId(), EnumBean.backKey("卡签注销", EnumBean.CHANNEL_BUSINESS_INTERCEPT), new ChannelsInterceptUtils.OnChannelInterceptCallback() {
@Override
public void offChannelIntercept() {
verify();
}
});
}
});

// 检查是否有车辆信息
if (curBizContent == null) {
toast("请先搜索车辆信息");
return;
}
// 调用注销条件查询接口
callDeviceCancelQuery();
}
});

@@ -106,7 +102,7 @@ public class LogoutEtcStep1Activity extends AppActivity {
}

/**
* 获取数据 - 参考ProgressQueryActivity的模式
* 获取数据 - 只查询车辆设备信息并显示
*/
private void getData() {
if (FunHelper.isEmpty(plateNum) || FunHelper.isEmpty(colorNum)) {
@@ -116,7 +112,7 @@ public class LogoutEtcStep1Activity extends AppActivity {
showDialog("查询中...");
// 第一步:先查询车辆设备信息,获取cardId和obuId
// 只查询车辆设备信息并显示
queryVehicleDevice();
}
@@ -138,6 +134,8 @@ public class LogoutEtcStep1Activity extends AppActivity {
MyRetrofit.newInstanceGZ(this, true, IFCode.IFCODE_VEHICLE_QUERY_DEVICE, request, new MyRetrofit.ReturnResult() {
@Override
public void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) {
hideDialog();
// 打印响应数据
LogUtils.i("车辆设备查询", "响应数据: " + new Gson().toJson(resultBean));
@@ -145,10 +143,10 @@ public class LogoutEtcStep1Activity extends AppActivity {
VehicleQueryDeviceResponse response = parseVehicleQueryDeviceResponse(resultBean);
if (response.getCode() == 0 && response.getData() != null) {
// 成功,获取到cardId和obuId,现在调用设备注销申请接口
callDeviceCancelApply(response.getData());
// 成功,显示车辆详细信息
showVehicleDetailInfo(response.getData());
} else {
hideDialog();
// 失败,显示错误信息
toast(response.getMessage());
}
}
@@ -156,67 +154,131 @@ public class LogoutEtcStep1Activity extends AppActivity {
@Override
public void onError(Response<Result> resp) {
hideDialog();
toast("车辆设备查询失败,请重试");
toast("设备注销申请失败,请重试");
}
});
}
/**
* 调用设备注销申请接口
* 调用注销条件查询接口(下一步按钮点击时调用)
*/
private void callDeviceCancelApply(VehicleQueryDeviceResponse.VehicleQueryDeviceData vehicleData) {
// 构建设备注销申请请求参数
private void callDeviceCancelQuery() {
// 检查是否有车辆信息
if (curBizContent == null) {
toast("车辆信息不完整");
return;
}
showDialog("查询注销条件中...");
// 构建注销条件查询请求参数
DeviceCancelQueryRequest request = new DeviceCancelQueryRequest();
request.setAccessToken(MyShared.getInstance().get(MyShared.ACCESSTOKEN, "") + "");
request.setCardId(vehicleData.getCardId()); // 从车辆设备查询结果获取卡号
request.setCardId(curBizContent.getCardId()); // 从当前车辆信息获取卡号
request.setLoginSource("APP"); // 登录来源
request.setObuId(vehicleData.getObuId()); // 从车辆设备查询结果获取签号
request.setObuId(curBizContent.getObuId()); // 从当前车辆信息获取签号
request.setCustomerId(MyShared.getInstance().get(MyShared.STAFFID, "") + "");
request.setVehicleId(plateNum + "_" + colorNum); // 车辆ID格式:车牌号_颜色
// 打印请求参数
LogUtils.i("设备注销申请", "请求参数: " + new Gson().toJson(request));
LogUtils.i("注销条件查询", "请求参数: " + new Gson().toJson(request));
// 调用设备注销申请接口
MyRetrofit.newInstanceGZ(this, true, IFCode.IFCODE_DEVICE_CANCEL_APPLY, request, new MyRetrofit.ReturnResult() {
// 调用注销条件查询接口
MyRetrofit.newInstanceGZ(this, true, IFCode.IFCODE_DEVICE_CANCEL_QUERY, request, new MyRetrofit.ReturnResult() {
@Override
public void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) {
hideDialog();
// 打印响应数据
LogUtils.i("设备注销申请", "响应数据: " + new Gson().toJson(resultBean));
LogUtils.i("注销条件查询", "响应数据: " + new Gson().toJson(resultBean));
if (resultBean.getCode() == 0) {
// 成功,显示车辆详细信息
showVehicleDetailInfo(vehicleData);
// 解析响应数据
DeviceCancelQueryResponse response = parseDeviceCancelQueryResponse(resultBean);
if (response.getCode() == 0 && response.getData() != null) {
// 成功,显示注销条件确认弹窗
showCancelConditionDialog(response.getData());
} else {
// 失败,显示错误信息
toast(resultBean.getMessage());
toast(response.getMessage());
}
}

@Override
public void onError(Response<Result> resp) {
hideDialog();
toast("设备注销申请失败,请重试");
toast("注销条件查询失败,请重试");
}
});
}
/**
* 显示注销条件确认弹窗
*/
private void showCancelConditionDialog(DeviceCancelQueryResponse.DeviceCancelQueryData data) {
LogUtils.i("注销条件弹窗", "开始显示弹窗,数据: " + new Gson().toJson(data));
// 构建弹窗内容
StringBuilder content = new StringBuilder();
content.append("产品名称:").append(data.getProductName()).append("\n");
content.append("注销年限:").append(data.getCancelAgeLimit()).append("年\n");
content.append("注销违约金:").append(data.getCancelAmount()).append("分\n");
content.append("是否黑名单:").append(data.isBlack() ? "是" : "否").append("\n");
content.append("是否需要支付违约金:").append(data.isCancel() ? "是" : "否");
LogUtils.i("注销条件弹窗", "弹窗内容: " + content.toString());
try {
// 显示确认弹窗
new ConfirmDialog.Builder(this)
.setMsg(content.toString(), "注销条件确认", "确认注销", "取消", 0, 0, false)
.onClick(new ConfirmDialog.Result() {
@Override
public void confirm() {
LogUtils.i("注销条件弹窗", "用户点击确认");
// 用户确认,跳转到下一步
jumpToNextStep();
}
@Override
public void cancel() {
LogUtils.i("注销条件弹窗", "用户点击取消");
// 用户取消,不做任何操作
}
})
.show();
LogUtils.i("注销条件弹窗", "弹窗显示完成");
} catch (Exception e) {
LogUtils.e("注销条件弹窗", "弹窗显示异常: " + e.getMessage());
e.printStackTrace();
}
}
/**
* 跳转到下一步
*/
private void jumpToNextStep() {
// TODO: 跳转到ETC注销第二步界面
// Intent intent = new Intent(this, LogoutEtcStep2Activity.class);
// intent.putExtra("vehicleData", curBizContent);
// startActivity(intent);
toast("跳转到下一步(待实现)");
}

/**
* 调用设备注销条件查询接口(保留原方法,用于兼容)
*/
private void callDeviceCancelQuery(String vehiclePlate, String vehiclePlateColor) {
private void callDeviceCancelQuery(VehicleQueryDeviceResponse.VehicleQueryDeviceData vehicleData) {
showDialog("查询中...");
// 构建请求参数
DeviceCancelQueryRequest request = new DeviceCancelQueryRequest();
request.setAccessToken(MyShared.getInstance().get(MyShared.ACCESSTOKEN, "") + "");
request.setCardId(""); // 卡号,暂时为空
request.setCardId(vehicleData.getCardId()); // 卡号,暂时为空
request.setCustomerId(MyShared.getInstance().get(MyShared.STAFFID, "") + ""); // 客户ID,暂时为空
request.setLoginSource("APP"); // 登录来源
request.setObuId(""); // 签号,暂时为空
request.setVehicleId(vehiclePlate + "_" + vehiclePlateColor); // 车辆ID格式:车牌号_颜色
request.setObuId(vehicleData.getObuId()); // 签号,暂时为空
request.setVehicleId(vehicleData.getVehicleId()); // 车辆ID格式:车牌号_颜色
// 打印请求参数
LogUtils.i("设备注销条件查询请求参数", new Gson().toJson(request));
@@ -235,7 +297,7 @@ public class LogoutEtcStep1Activity extends AppActivity {
if (response.getCode() == 0) {
// 成功,显示结果
showSearchResult(response, vehiclePlate, vehiclePlateColor);
showSearchResult(response, vehicleData.getVehiclePlate(), String.valueOf(vehicleData.getVehiclePlateColor()));
} else {
// 失败,显示错误信息
toast(response.getMessage());
@@ -279,7 +341,9 @@ public class LogoutEtcStep1Activity extends AppActivity {
// 创建BizContent数据用于显示
curBizContent = new ResultBean.BizContent();
curBizContent.setVehiclePlate(vehicleData.getVehiclePlate());
curBizContent.setVehiclePlateColor(String.valueOf(vehicleData.getVehiclePlateColor()));
// 车牌颜色 - 要使用setVehiclePlateColorStr,不要使用setVehiclePlateColor
// curBizContent.setVehiclePlateColor(String.valueOf(vehicleData.getVehiclePlateColor()));
curBizContent.setVehiclePlateColorStr(EnumBean.backValue(String.valueOf(vehicleData.getVehiclePlateColor()), EnumBean.VEHICLE_COLOR));
curBizContent.setName(vehicleData.getCustomerName());
curBizContent.setCustomerIdtype(String.valueOf(vehicleData.getCustomerIdType()));
curBizContent.setCustomerIdnum(vehicleData.getCustomerIdNum());
@@ -527,6 +591,7 @@ public class LogoutEtcStep1Activity extends AppActivity {
binding.tvOrderVehiclePlate.setText(FunHelper.isEmpty(curBizContent.getVehiclePlate()) ? "" : curBizContent.getVehiclePlate());
// 车牌颜色
LogUtils.i("车牌颜色", "车牌颜色: " + curBizContent.getVehiclePlateColorStr());
binding.tvColor.setText(FunHelper.isEmpty(curBizContent.getVehiclePlateColorStr()) ? "" : curBizContent.getVehiclePlateColorStr());
// 收费车型

Loading…
取消
儲存