[5.2.8]
[shuttle] [核销接驳票 司机屏处理]
This commit is contained in:
@@ -89,7 +89,8 @@ data class WriteOffMsg(
|
||||
val phone: String?,
|
||||
val ticketSize: Int?,
|
||||
val ticketName:String?,
|
||||
val failedReason:String?
|
||||
val failedReason:String?,
|
||||
val orderNo: String?
|
||||
): BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO.type)
|
||||
|
||||
data class WriteOffDevicesMsg(
|
||||
|
||||
@@ -9,6 +9,7 @@ import java.io.Serializable;
|
||||
public class WriteOffPassenger implements Serializable {
|
||||
public String phone;
|
||||
public String orderNo;
|
||||
public String ticketName;
|
||||
public int passengerSize;
|
||||
public long writeOffTime;
|
||||
}
|
||||
|
||||
@@ -184,9 +184,10 @@ public class OrderModel {
|
||||
OCHSocketMessageManager.msgMonitorType,
|
||||
mMogoOnMessageListener);
|
||||
|
||||
OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听核销乘客
|
||||
OCHSocketMessageManager.msgWriteOffPassengerType,
|
||||
mWriteOffPassengeOnMessageListener);
|
||||
// OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听核销乘客
|
||||
// OCHSocketMessageManager.msgWriteOffPassengerType,
|
||||
// mWriteOffPassengeOnMessageListener);
|
||||
TicketModel.INSTANCE.load();
|
||||
|
||||
AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext);
|
||||
|
||||
@@ -251,95 +252,12 @@ public class OrderModel {
|
||||
if(msg!=null) {
|
||||
if (msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()) {
|
||||
sendTaskDetailsToClients();
|
||||
} else if(msg.getType() == DPMsgType.TYPE_WRITEOFF_INFO.getType()){
|
||||
WriteOffMsg writeOffMsg =
|
||||
GsonUtils.fromJson(new String(byteArray), WriteOffMsg.class);
|
||||
receiveWrteOffInfo(writeOffMsg);
|
||||
} else if(msg.getType() == DPMsgType.TYPE_WRITEOFF_DEVICES_INFO.getType()){
|
||||
WriteOffDevicesMsg writeOffMsg =
|
||||
GsonUtils.fromJson(new String(byteArray), WriteOffDevicesMsg.class);
|
||||
receiveWrteOffDevicesInfo(writeOffMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private void receiveWrteOffInfo(WriteOffMsg writeOffMsg) {
|
||||
if (writeOffMsg.isScuccess() != null) {
|
||||
if (Boolean.TRUE.equals(writeOffMsg.isScuccess())) {// 核验成功
|
||||
int size = writeOffMsg.getTicketSize()==null?0:writeOffMsg.getTicketSize();
|
||||
String type = writeOffMsg.getTicketName()==null?"":writeOffMsg.getTicketName();
|
||||
String phone = writeOffMsg.getPhone()==null?"":writeOffMsg.getPhone();
|
||||
|
||||
if (phone.length() > 8) {
|
||||
//截取电话号码前三位
|
||||
String phoneNumPre = phone.substring(0, 3);
|
||||
//截取电话号码后四位
|
||||
String phoneNumFix = phone.substring(7);
|
||||
phone = phoneNumPre+"****"+phoneNumFix;
|
||||
}
|
||||
|
||||
String content = size+"张"+type+" "+phone;
|
||||
CallerMsgBoxManager.INSTANCE.saveMsgBox(
|
||||
new MsgBoxBean(
|
||||
MsgBoxType.V2X,
|
||||
new V2XMsg(
|
||||
EventTypeEnumNew.TYPE_VERIFICATION_SUCCESSFUL.getPoiType(),
|
||||
content,
|
||||
EventTypeEnumNew.TYPE_VERIFICATION_SUCCESSFUL.getTts(),
|
||||
""
|
||||
)
|
||||
)
|
||||
);
|
||||
} else { // 核验失败
|
||||
String reason = writeOffMsg.getFailedReason()==null?"":writeOffMsg.getFailedReason();
|
||||
CallerMsgBoxManager.INSTANCE.saveMsgBox(
|
||||
new MsgBoxBean(
|
||||
MsgBoxType.V2X,
|
||||
new V2XMsg(
|
||||
EventTypeEnumNew.TYPE_ABNORMAL_VERIFICATION.getPoiType(),
|
||||
reason,
|
||||
EventTypeEnumNew.TYPE_ABNORMAL_VERIFICATION.getTts(),
|
||||
""
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void receiveWrteOffDevicesInfo(WriteOffDevicesMsg writeOffMsg) {
|
||||
if (writeOffMsg.isConnectScanner() != null) {
|
||||
String reason = writeOffMsg.getReason()==null?"":writeOffMsg.getReason();
|
||||
if (Boolean.TRUE.equals(writeOffMsg.isConnectScanner())) {// 链接成功
|
||||
CallerMsgBoxManager.INSTANCE.saveMsgBox(
|
||||
new MsgBoxBean(
|
||||
MsgBoxType.V2X,
|
||||
new V2XMsg(
|
||||
EventTypeEnumNew.TYPE_DEVICE_STATUS_NORMAL.getPoiType(),
|
||||
reason,
|
||||
EventTypeEnumNew.TYPE_DEVICE_STATUS_NORMAL.getTts(),
|
||||
""
|
||||
)
|
||||
)
|
||||
);
|
||||
} else { // 核验失败
|
||||
CallerMsgBoxManager.INSTANCE.saveMsgBox(
|
||||
new MsgBoxBean(
|
||||
MsgBoxType.V2X,
|
||||
new V2XMsg(
|
||||
EventTypeEnumNew.TYPE_DEVICE_STATUS_ABNORMAL.getPoiType(),
|
||||
reason,
|
||||
EventTypeEnumNew.TYPE_DEVICE_STATUS_ABNORMAL.getTts(),
|
||||
""
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private final IMogoOnMessageListener<SystemMsg> mMogoOnMessageListener =
|
||||
new IMogoOnMessageListener<SystemMsg>() {
|
||||
@Override
|
||||
@@ -371,23 +289,23 @@ public class OrderModel {
|
||||
}
|
||||
};
|
||||
|
||||
private final IMogoOnMessageListener<WriteOffPassenger> mWriteOffPassengeOnMessageListener =
|
||||
new IMogoOnMessageListener<WriteOffPassenger>() {
|
||||
@Override
|
||||
public Class<WriteOffPassenger> target() {
|
||||
return WriteOffPassenger.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMsgReceived(WriteOffPassenger passenger) {
|
||||
//进行播报
|
||||
CallerLogger.i(M_BUS + TAG,"passenger = "+ GsonUtil.jsonFromObject(passenger));
|
||||
if (passenger != null && passenger.passengerSize == 0) return;
|
||||
if (mPassengerCallback != null){
|
||||
mPassengerCallback.playPassenger(passenger);
|
||||
}
|
||||
}
|
||||
};
|
||||
// private final IMogoOnMessageListener<WriteOffPassenger> mWriteOffPassengeOnMessageListener =
|
||||
// new IMogoOnMessageListener<WriteOffPassenger>() {
|
||||
// @Override
|
||||
// public Class<WriteOffPassenger> target() {
|
||||
// return WriteOffPassenger.class;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onMsgReceived(WriteOffPassenger passenger) {
|
||||
// //进行播报
|
||||
// CallerLogger.i(M_BUS + TAG,"passenger = "+ GsonUtil.jsonFromObject(passenger));
|
||||
// if (passenger != null && passenger.passengerSize == 0) return;
|
||||
// if (mPassengerCallback != null){
|
||||
// mPassengerCallback.playPassenger(passenger);
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
|
||||
public void setAdasStatusCallback(IBusADASStatusCallback callback){
|
||||
this.mADASStatusCallback = callback;
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
package com.mogo.och.bus.model
|
||||
|
||||
import com.elegant.network.utils.GsonUtil
|
||||
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.eagle.core.data.enums.EventTypeEnumNew
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxType
|
||||
import com.mogo.eagle.core.data.msgbox.V2XMsg
|
||||
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.och.bus.bean.WriteOffPassenger
|
||||
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
|
||||
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
|
||||
import com.mogo.och.common.module.bean.dpmsg.WriteOffDevicesMsg
|
||||
import com.mogo.och.common.module.bean.dpmsg.WriteOffMsg
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.voice.VoiceNotice.showNotice
|
||||
|
||||
object TicketModel : IReceivedMsgListener, IMogoOnMessageListener<WriteOffPassenger> {
|
||||
|
||||
private val TAG = "TicketModel"
|
||||
|
||||
private val currenStartList = mutableListOf<String>()
|
||||
|
||||
init {
|
||||
|
||||
//监听乘客屏发来的消息
|
||||
CallerTelematicListenerManager.addListener(TAG, this)
|
||||
OCHSocketMessageManager.registerSocketMessageListener( //监听核销乘客
|
||||
OCHSocketMessageManager.msgWriteOffPassengerType,
|
||||
this
|
||||
)
|
||||
}
|
||||
|
||||
fun load(){
|
||||
|
||||
}
|
||||
|
||||
// 收到局域网的核验信息
|
||||
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
|
||||
if (OchCommonConst.BUSINESS_STRING == type) {
|
||||
d(SceneConstant.M_BUS + BaseDPMsg.TAG, String(byteArray))
|
||||
val msg = GsonUtils.fromJson(String(byteArray), BaseDPMsg::class.java)
|
||||
if (msg != null) {
|
||||
if (msg.type == DPMsgType.TYPE_WRITEOFF_INFO.type) {
|
||||
val writeOffMsg = GsonUtils.fromJson(String(byteArray), WriteOffMsg::class.java)
|
||||
receiveWrteOffInfo(writeOffMsg)
|
||||
} else if (msg.type == DPMsgType.TYPE_WRITEOFF_DEVICES_INFO.type) {
|
||||
val writeOffMsg = GsonUtils.fromJson(String(byteArray), WriteOffDevicesMsg::class.java)
|
||||
receiveWrteOffDevicesInfo(writeOffMsg)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun target(): Class<WriteOffPassenger> {
|
||||
return WriteOffPassenger::class.java
|
||||
}
|
||||
|
||||
// 收到服务器的核验信息
|
||||
override fun onMsgReceived(passenger: WriteOffPassenger?) {
|
||||
//进行播报
|
||||
i(SceneConstant.M_BUS + TAG, "passenger = " + GsonUtil.jsonFromObject(passenger))
|
||||
if(passenger==null||passenger.passengerSize==0){
|
||||
return
|
||||
}
|
||||
playPassenger(
|
||||
passenger.passengerSize,
|
||||
passenger.phone ?: "",
|
||||
passenger.ticketName?:"",
|
||||
passenger.orderNo?:""
|
||||
)
|
||||
}
|
||||
|
||||
private fun receiveWrteOffInfo(writeOffMsg: WriteOffMsg?) {
|
||||
if(writeOffMsg!=null) {
|
||||
if (writeOffMsg.isScuccess != null) {
|
||||
if (writeOffMsg.isScuccess == true) { // 核验成功
|
||||
if(writeOffMsg.ticketSize==null||writeOffMsg.ticketSize==0){
|
||||
return
|
||||
}
|
||||
playPassenger(
|
||||
writeOffMsg.ticketSize?:0,
|
||||
writeOffMsg.phone ?: "",
|
||||
writeOffMsg.ticketName ?: "",
|
||||
writeOffMsg.orderNo?:""
|
||||
)
|
||||
} else { // 核验失败
|
||||
saveMsgBox(
|
||||
MsgBoxBean(
|
||||
MsgBoxType.V2X, V2XMsg(
|
||||
EventTypeEnumNew.TYPE_ABNORMAL_VERIFICATION.poiType,
|
||||
writeOffMsg.failedReason ?: "",
|
||||
EventTypeEnumNew.TYPE_ABNORMAL_VERIFICATION.tts,
|
||||
""
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun receiveWrteOffDevicesInfo(writeOffMsg: WriteOffDevicesMsg) {
|
||||
if (writeOffMsg.isConnectScanner != null) {
|
||||
val reason = if (writeOffMsg.reason == null) "" else writeOffMsg.reason!!
|
||||
if (writeOffMsg.isConnectScanner==true) { // 链接成功
|
||||
saveMsgBox(
|
||||
MsgBoxBean(
|
||||
MsgBoxType.V2X,
|
||||
V2XMsg(
|
||||
EventTypeEnumNew.TYPE_DEVICE_STATUS_NORMAL.poiType,
|
||||
reason,
|
||||
EventTypeEnumNew.TYPE_DEVICE_STATUS_NORMAL.tts,
|
||||
""
|
||||
)
|
||||
)
|
||||
)
|
||||
} else { // 核验失败
|
||||
saveMsgBox(
|
||||
MsgBoxBean(
|
||||
MsgBoxType.V2X,
|
||||
V2XMsg(
|
||||
EventTypeEnumNew.TYPE_DEVICE_STATUS_ABNORMAL.poiType,
|
||||
reason,
|
||||
EventTypeEnumNew.TYPE_DEVICE_STATUS_ABNORMAL.tts,
|
||||
""
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun playPassenger(ticketSize: Int,phone:String,ticketName:String,orderNo:String) {
|
||||
|
||||
val key = "${orderNo}_${phone}_$ticketSize"
|
||||
if (currenStartList.contains(key)) {
|
||||
return
|
||||
}
|
||||
if(currenStartList.size>1000){
|
||||
currenStartList.clear()
|
||||
}
|
||||
currenStartList.add(key)
|
||||
|
||||
if (ticketSize > 1) { //多人播报 "x人" ---》x人核验通过
|
||||
showNotice(ticketSize.toString() + "人核验通过", AIAssist.LEVEL3)
|
||||
OrderModel.getInstance().sendWriteOffNumToClient(ticketSize.toString() + "人核验通过")
|
||||
} else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过"
|
||||
showNotice("核验通过", AIAssist.LEVEL3)
|
||||
OrderModel.getInstance().sendWriteOffNumToClient("核验通过")
|
||||
}
|
||||
|
||||
var tempPhone = phone
|
||||
if (tempPhone.length > 8) {
|
||||
//截取电话号码前三位
|
||||
val phoneNumPre = tempPhone.substring(0, 3)
|
||||
//截取电话号码后四位
|
||||
val phoneNumFix = tempPhone.substring(7)
|
||||
tempPhone = "$phoneNumPre****$phoneNumFix"
|
||||
}
|
||||
val content = "${ticketSize}张 $ticketName $tempPhone"
|
||||
saveMsgBox(MsgBoxBean(
|
||||
MsgBoxType.V2X,
|
||||
V2XMsg(
|
||||
EventTypeEnumNew.TYPE_VERIFICATION_SUCCESSFUL.poiType,
|
||||
content,
|
||||
EventTypeEnumNew.TYPE_VERIFICATION_SUCCESSFUL.tts,
|
||||
""
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -198,7 +198,7 @@ object ScannerManager : OnSerialPortListener, OnDeviceVerificationListener(), IR
|
||||
* 打开设备后数据异常
|
||||
*/
|
||||
private fun sendMessage2DriverWriteOffInfo(message:String){
|
||||
val msg = WriteOffMsg(false, "", 0, "", message)
|
||||
val msg = WriteOffMsg(false, "", 0, "", message,"")
|
||||
CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg))
|
||||
CallerTelematicManager.sendMsgToServer(
|
||||
OchCommonConst.BUSINESS_STRING,
|
||||
|
||||
@@ -49,7 +49,7 @@ object TicketModel : StateChangeListener {
|
||||
val ticketInfo =
|
||||
"核销成功:票种名称:${data.data.ticketName},车票数量:${data.data.ticketSize},预留手机号:${data.data.phone},时间:${data.data.remainingTimes}"
|
||||
CallerLogger.d(M_BUS_P + TAG, ticketInfo)
|
||||
sendMessage2DriverSuccess(data.data)
|
||||
sendMessage2DriverSuccess(data.data,orderNo)
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
@@ -70,7 +70,7 @@ object TicketModel : StateChangeListener {
|
||||
}
|
||||
|
||||
private fun sendMessage2Driver(message:String){
|
||||
val msg = WriteOffMsg(false, "", 0, "", message)
|
||||
val msg = WriteOffMsg(false, "", 0, "", "",message)
|
||||
CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg))
|
||||
CallerTelematicManager.sendMsgToServer(
|
||||
OchCommonConst.BUSINESS_STRING,
|
||||
@@ -78,8 +78,8 @@ object TicketModel : StateChangeListener {
|
||||
)
|
||||
ScannerChainLogManager.writeChainLog(TAG +"sendMessage2Driver","核验失败:message:${message}")
|
||||
}
|
||||
private fun sendMessage2DriverSuccess(message: PassengerWriteOffResponse.Result){
|
||||
val msg = WriteOffMsg(true, message.phone, message.ticketSize, message.ticketName, "")
|
||||
private fun sendMessage2DriverSuccess(message: PassengerWriteOffResponse.Result,orderNo: String){
|
||||
val msg = WriteOffMsg(true, message.phone, message.ticketSize, message.ticketName, "",orderNo)
|
||||
CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg))
|
||||
CallerTelematicManager.sendMsgToServer(
|
||||
OchCommonConst.BUSINESS_STRING,
|
||||
|
||||
Reference in New Issue
Block a user