Bläddra i källkod

1.修正EMG打断恢复播放判断标致;2.广播停止类型判断可空类型兼容

dujunchen 1 timme sedan
förälder
incheckning
1d30dc5914

+ 33 - 11
internal/app/ami/action/index.go

@@ -105,27 +105,37 @@ func HandleAMI(event map[string]string) {
 		} else if event["CallerIDName"] == "STN" && event["Exten"] == "0503" {
 			priority.CleanPriorityTag()
 			alstatus.PaStatus(event["CallerIDName"], "STN", "end")
-			CheckEmgResume()
+			if priority.ResumeEmgPara.FileName != "" {
+				CheckEmgResume()
+			}
 
 		} else if event["CallerIDName"] == "DCS" && event["Exten"] == "0504" {
 			priority.CleanPriorityTag()
 			alstatus.PaStatus(event["CallerIDName"], "DCS", "end")
-			CheckEmgResume()
+			if priority.ResumeEmgPara.FileName != "" {
+				CheckEmgResume()
+			}
 
 		} else if event["CallerIDName"] == "SPC" && event["Exten"] == "0505" {
 			priority.CleanPriorityTag()
 			alstatus.PaStatus(event["CallerIDName"], "SPC", "end")
-			CheckEmgResume()
+			if priority.ResumeEmgPara.FileName != "" {
+				CheckEmgResume()
+			}
 
 		} else if event["CallerIDName"] == "CHK" && event["Exten"] == "0510" {
 			priority.CleanPriorityTag()
 			alstatus.PaStatus(event["CallerIDName"], "CHK", "end")
-			CheckEmgResume()
+			if priority.ResumeEmgPara.FileName != "" {
+				CheckEmgResume()
+			}
 
 		} else if event["CallerIDName"] == "VOL" && event["Exten"] == "0513" {
 			priority.CleanPriorityTag()
 			alstatus.PaStatus(event["CallerIDName"], "VOL", "end")
-			CheckEmgResume()
+			if priority.ResumeEmgPara.FileName != "" {
+				CheckEmgResume()
+			}
 
 		}
 
@@ -138,7 +148,9 @@ func HandleAMI(event map[string]string) {
 			if res.Calls == "0" {
 				priority.CleanPriorityTag()
 				alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
-				CheckEmgResume()
+				if priority.ResumeEmgPara.FileName != "" {
+					CheckEmgResume()
+				}
 				//priority.ICPAnswer = 0
 				break
 			}
@@ -150,7 +162,9 @@ func HandleAMI(event map[string]string) {
 			if res.Calls == "0" {
 				priority.CleanPriorityTag()
 				alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
-				CheckEmgResume()
+				if priority.ResumeEmgPara.FileName != "" {
+					CheckEmgResume()
+				}
 				//priority.ICPAnswer = 0
 				break
 			}
@@ -162,7 +176,9 @@ func HandleAMI(event map[string]string) {
 			if res.Calls == "0" {
 				priority.CleanPriorityTag()
 				alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
-				CheckEmgResume()
+				if priority.ResumeEmgPara.FileName != "" {
+					CheckEmgResume()
+				}
 				//priority.ICPAnswer = 0
 				break
 			}
@@ -175,7 +191,9 @@ func HandleAMI(event map[string]string) {
 			if res.Calls == "0" {             //OCC queue is empty
 				priority.CleanPriorityTag()
 				alstatus.OccPad("end")
-				CheckEmgResume()
+				if priority.ResumeEmgPara.FileName != "" {
+					CheckEmgResume()
+				}
 				//priority.OCCAnswer = 0
 				break
 			} else { //OCC queue is not empty
@@ -380,14 +398,18 @@ func HandleAMI(event map[string]string) {
 			lfshook.NewLogger().Infof("====PA  status =====%s", "end")
 			priority.CleanPriorityTag()
 			alstatus.PaStatus(event["CallerIDNum"], "PA", "end")
-			CheckEmgResume()
+			if priority.ResumeEmgPara.FileName != "" {
+				CheckEmgResume()
+			}
 
 		}
 		if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0501" { //CPA end
 			lfshook.NewLogger().Infof("====CPA  status =====%s", "end")
 			priority.CleanPriorityTag()
 			alstatus.PaStatus(event["CallerIDNum"], "CPA", "end")
-			CheckEmgResume()
+			if priority.ResumeEmgPara.FileName != "" {
+				CheckEmgResume()
+			}
 
 		}
 

+ 4 - 2
internal/app/stc/broadcast/stc-broadcast.go

@@ -258,7 +258,7 @@ func EmgMsg(data []byte) {
 func AnnStop(data [4]byte) {
 
 	//PaType := ""
-	lfshook.NewLogger().Logger.Infof("==priority.RunningType:%s======priority.RunningPATaskChan:%s", priority.RunningType, priority.RunningPATaskChan)
+	lfshook.NewLogger().Logger.Infof("=AnnStop Type  %x", data[0])
 	switch data[0] {
 	case 0x03:
 		if priority.RunningType == "DCS" {
@@ -280,10 +280,12 @@ func AnnStop(data [4]byte) {
 		if priority.RunningType == "CHK" {
 			action.HangupRunningTask("") //STOP CHK
 		}
-	case 0x10:
+	case 0x0a:
 		if priority.RunningType == "VOL" {
 			action.HangupRunningTask("") //STOP VOL
 		}
+	default:
+		action.HangupRunningTask("")
 	}
 }
 

+ 9 - 3
internal/app/stc/priority/index.go

@@ -103,7 +103,7 @@ func GetPriorityByKey(key string) string {
 
 // check priority , if the running priority is lowwer than the to run priority
 func CheckPriority(runType string) bool {
-	lfshook.NewLogger().Logger.Infof("=========Check Pri runType:%s====RunningTypePriority:%d============", runType, RunningTypePriority)
+	lfshook.NewLogger().Logger.Infof("=========Check Pri runType:%s====RunningTypePriority:%d====SpecialVoice:%d========", runType, RunningTypePriority, SpecialVoice)
 	//check special voice
 	if SpecialVoice == 1 {
 		return false
@@ -117,10 +117,16 @@ func CheckPriority(runType string) bool {
 	//get the priority to run in the config file
 	ret, err := strconv.Atoi(GetPriorityByKey(runType))
 	if err != nil {
-		logrus.Error(err)
+		lfshook.NewLogger().Logger.Infof("=========Check Pri GetPriorityByKey err:%+v", err)
 		return false
 	}
-	lfshook.NewLogger().Logger.Infof("=========Check Pri GetPriorityByKey:%d============", ret)
+
+	if ret == RunningTypePriority && runType == "VOL" {
+		return true
+	}
+	if ret == RunningTypePriority && runType == "CHK" {
+		return true
+	}
 	//if the running task priority is lowwer
 	if ret < RunningTypePriority && ret != 0 {
 		return true