فهرست منبع

配合样本库修改

Kevin 6 سال پیش
والد
کامیت
4e42ab7cae

+ 74 - 75
Gene_point_Service/src/dashoo.cn/api/business/converseService/converseService.go

@@ -17,7 +17,12 @@ const POS = 1
 const LTU = 1
 const GROUP = 1
 const TABLE_TAST = "sample_storage_task"
-const TABLE_SAMPLE = "samplesapply"
+const TABLE_SAMPLE = "bank_apply_main"
+const TABLE_DETAIL = "bank_apply_detail"
+const TABLE_SHELF = "bank_shelf"
+const TABLE_BOX = "bank_box"
+const TABLE_EQUIPMENT = "bank_equipment"
+
 
 type ConverseService struct {
 	ServiceBase
@@ -49,12 +54,6 @@ func (this *ConverseService) GetSessionSetupRequest(utc string) *RequestEntity{
 	return entity
 }
 
-//func (this *ConverseService) GetRandomTaskId() string{
-//	t := time.Now().Unix()
-//	task_id := "TK"+ strconv.FormatInt(t,10)
-//	return task_id
-//}
-
 //生成请求报文
 func (this *ConverseService) GetRequestEntity(request string, utc string, data RequestData) *RequestEntity{
 	var entity RequestEntity
@@ -109,7 +108,7 @@ func (this *ConverseService) CancelTast(utc string, task_id string) *RequestEnti
 func (this *ConverseService) ScanNewTaskDetail() []Sample_Storage_Task{
 	var tasks []Sample_Storage_Task
 	where := "statuscode = 0"
-	this.GetEntitysByWhere("sample_storage_task", where, &tasks)
+	this.GetEntitysByWhere(TABLE_TAST, where, &tasks)
 	return tasks
 }
 
@@ -118,7 +117,7 @@ func (this *ConverseService) GetNewTaskBasic () []Sample_Storage_Task{
 	//var count64 int64
 	var tasks []Sample_Storage_Task
 	//sql := "SELECT COUNT(DISTINCT(task_id)) FROM sample_storage_task WHERE status = 0"
-	sql := "SELECT task_id, task_type, statuscode FROM sample_storage_task GROUP BY task_id, task_type HAVING statuscode = 0"
+	sql := "SELECT task_id, task_type, statuscode FROM " + TABLE_TAST + " GROUP BY task_id, task_type HAVING statuscode = 0"
 	err := this.DBE.SQL(sql).Find(&tasks)
 	if err != nil {
 		log.Println(err)
@@ -371,87 +370,87 @@ func handleQueryTube(entity *RequestEntity, detail *Sample_Storage_Task){
 
 //修改任务表状态码
 func (this *ConverseService) TaskStatusModify(statusCode int, task_id string)  error{
-	sql := "UPDATE sample_storage_task SET statuscode = '" + strconv.Itoa(statusCode) + "' WHERE task_id = '" + task_id + "'"
+	sql := "UPDATE " + TABLE_TAST + " SET statuscode = '" + strconv.Itoa(statusCode) + "' WHERE task_id = '" + task_id + "'"
 	_,err := this.DBE.Exec(sql)
 	return err
 }
 
 // 修改出入库单状态
 func (this *ConverseService) SampleApplyStatusModify(statusCode int, entryNo string) error{
-	sql := "UPDATE samplesapply SET taskstatus = '" + strconv.Itoa(statusCode) + "' WHERE entryno = '" + entryNo + "'"
+	sql := "UPDATE " + TABLE_SAMPLE + " SET taskstatus = '" + strconv.Itoa(statusCode) + "' WHERE entryno = '" + entryNo + "'"
 	_,err := this.DBE.Exec(sql)
 	return err
 }
 
 //获取任务原始信息
-func (this *ConverseService) GetBasicTaskInfo(task_id string) ([]Sample_Storage_Task, error){
-	sql := `SELECT
-				d.EquipmentId,
-				e.RowNum e_row,
-				e.ColumnNum e_col,
-				d.ShelfId,
-				s.XStation s_x,
-				s.YStation s_y,
-				s.RowNum s_row,
-				s.ColumnNum s_col,
-				d.BoxId,
-				b.XStation b_x,
-				b.YStation b_y,
-				b.RowNum b_row,
-				b.ColumnNum b_col,
-				d.Position,
-				d.BarCode,
-				a.EntryNo task_id
-			FROM
-				samplesapplydetail d
-				JOIN equipment e ON d.EquipmentId = e.Id
-				JOIN shelf s ON d.ShelfId = s.Id
-				JOIN box b ON d.BoxId = b.Id
-				JOIN samplesapply a ON d.ParentId = a.Id 
-			WHERE
-				a.EntryNo = '` + task_id + `' AND a.ApplyStatus = '2'`
-	var list []Sample_Storage_Task
-	err := this.DBE.SQL(sql).Find(&list)
-	if err != nil {
-		return nil,err
-	}
-	return list,err
-}
+//func (this *ConverseService) GetBasicTaskInfo(task_id string) ([]Sample_Storage_Task, error){
+//	sql := `SELECT
+//				d.EquipmentId,
+//				e.RowNum e_row,
+//				e.ColumnNum e_col,
+//				d.ShelfId,
+//				s.XStation s_x,
+//				s.YStation s_y,
+//				s.RowNum s_row,
+//				s.ColumnNum s_col,
+//				d.BoxId,
+//				b.XStation b_x,
+//				b.YStation b_y,
+//				b.RowNum b_row,
+//				b.ColumnNum b_col,
+//				d.Position,
+//				d.BarCode,
+//				a.EntryNo task_id
+//			FROM
+//				` + TABLE_DETAIL + ` d
+//				JOIN ` + TABLE_EQUIPMENT + ` e ON d.EquipmentId = e.Id
+//				JOIN ` + TABLE_SHELF + ` s ON d.ShelfId = s.Id
+//				JOIN ` + TABLE_BOX + ` b ON d.BoxId = b.Id
+//				JOIN ` + TABLE_SAMPLE + ` a ON d.ParentId = a.Id
+//			WHERE
+//				a.EntryNo = '` + task_id + `' AND a.ApplyStatus = '2'`
+//	var list []Sample_Storage_Task
+//	err := this.DBE.SQL(sql).Find(&list)
+//	if err != nil {
+//		return nil,err
+//	}
+//	return list,err
+//}
 
-//原始位置信息转换
-func (this *ConverseService) TransferPosition(one *Sample_Storage_Task) {
-	one.Unit = (one.S_Y-1)*one.E_Col + one.S_X
-	one.Pos = (one.B_Y-1)*one.S_Col + one.B_X
-	if one.Position != "" {
-		coord := strings.Split(one.Position, ";")
-		x, _ := strconv.Atoi(coord[0])
-		y, _ := strconv.Atoi(coord[1])
-		one.No = (y-1)*one.B_Col + x
-	}
-	one.Ltu = LTU
-	//one.Group = GROUP
-}
+//原始位置信息转换 样本库调用
+//func (this *ConverseService) TransferPosition(one *Sample_Storage_Task) {
+//	one.Unit = (one.S_Y-1)*one.E_Col + one.S_X
+//	one.Pos = (one.B_Y-1)*one.S_Col + one.B_X
+//	if one.Position != "" {
+//		coord := strings.Split(one.Position, ";")
+//		x, _ := strconv.Atoi(coord[0])
+//		y, _ := strconv.Atoi(coord[1])
+//		one.No = (y-1)*one.B_Col + x
+//	}
+//	one.Ltu = LTU
+//	//one.Group = GROUP
+//}
 
-//处理任务原始信息
-func (this *ConverseService) HandleTaskInfo(list []Sample_Storage_Task, applyType string) *[]Sample_Storage_Task{
-	var resultList []Sample_Storage_Task
-	for _, value := range list {
-		this.AddTaskType(&value, applyType)
-		this.TransferPosition(&value)
-		resultList = append(resultList, value)
-	}
-	return &resultList
-}
+//处理任务原始信息   样本库调用
+//func (this *ConverseService) HandleTaskInfo(list []Sample_Storage_Task, applyType string) *[]Sample_Storage_Task{
+//	var resultList []Sample_Storage_Task
+//	for _, value := range list {
+//		this.AddTaskType(&value, applyType)
+//		this.TransferPosition(&value)
+//		resultList = append(resultList, value)
+//	}
+//	return &resultList
+//}
 
 //添加任务类型
-func (this *ConverseService) AddTaskType(one *Sample_Storage_Task, applyType string){
-	if  applyType == "1" {
-		one.Task_type = 3	//冻存管入库
-		one.OperaMode = "manua"
-	}else if applyType == "2" {
-		one.Task_type = 4	//冻存管出库
-	}
-}
+//func (this *ConverseService) AddTaskType(one *Sample_Storage_Task, applyType string){
+//	if  applyType == "1" {
+//		one.Task_type = 3	//冻存管入库
+//		one.OperaMode = "manua"
+//	}else if applyType == "2" {
+//		one.Task_type = 4	//冻存管出库
+//	}
+//}
 
 //保存异常信息
 func (this *ConverseService) SaveTaskExcepMsg(msg,taskId string) error{

+ 1 - 1
Gene_point_Service/src/dashoo.cn/api/conf/app.conf

@@ -15,7 +15,7 @@ orderurl=http://uid.labsop.cn:8182/worker/2
 type=mysql
 
 #aliyun新服务器
-name=dqmnt_db2
+name=dqmnt_db4
 host=39.98.34.197
 db_port=3306
 user=dqmnt_user

+ 2 - 2
Gene_point_Service/src/dashoo.cn/api/controllers/converse/converse.go

@@ -106,7 +106,7 @@ func (this *ConverseController) HandleMessage(n int, message []byte){
 			log.Println(">>>>>>>>>>修改成功状态>>>>>>>>>>")
 			//todo or link to biobank
 			err = this.StatusModify(SUCCESS,taskId)
-		}else if taskType == "task_active" {
+		}else if taskType == "task_activate" {
 			log.Println(">>>>>>>>>>修改激活状态>>>>>>>>>>")
 			err = this.StatusModify(ACTIVE,taskId)
 		}else if taskType == "accept" {
@@ -178,7 +178,7 @@ func (this *ConverseController) DeleteAccomplishedTask() error{
 	where := "statuscode = '"+ strconv.Itoa(SUCCESS) +"'"
 	svc := converseService.GetConverseService(utils.DBE)
 	defer svc.DBE.Close()
-	err := svc.DeleteEntityBytbl("sample_storage_task", where)
+	err := svc.DeleteEntityBytbl(converseService.TABLE_TAST, where)
 	log.Println("===============清除任务信息===============")
 	if err != nil {
 		log.Println(err)

+ 41 - 15
Gene_point_Service/src/dashoo.cn/api/main.go

@@ -3,10 +3,14 @@ package main
 import (
 	"dashoo.cn/api/controllers/converse"
 	"dashoo.cn/utils"
+	"fmt"
 	"github.com/robfig/cron"
 	"log"
 	"os"
 	"os/signal"
+	"runtime"
+	"strconv"
+	"strings"
 	"time"
 	"github.com/gorilla/websocket"
 )
@@ -14,7 +18,8 @@ import (
 //const gpServiceUrl = "ws://39.105.83.226:22225/socket"
 //const gpServiceUrl = "ws://39.105.83.226:22368/socket"
 //const gpServiceUrl = "ws://fdgfghfg.oicp.net:48681/socket"
-const gpServiceUrl = "ws://fdgfghfg.oicp.net:23248/socket"
+//const gpServiceUrl = "ws://fdgfghfg.oicp.net:23248/socket"
+const gpServiceUrl = "ws://270100d53m.wicp.vip:46538/socket"
 
 //var conn *websocket.Conn
 var err error
@@ -34,15 +39,16 @@ func main() {
 	var done = make(chan struct{})
 	defer close(done)
 
-
+	//建立websocket连接
 	var conn *websocket.Conn
 	conn = WebSocketFound()
 	log.Println("连接成功: ", conn!=nil)
 	if conn != nil {
 		defer conn.Close()
+		//建立连接
 		ctrl.GetConnection(conn)
 		//发送请求
-		go ListenToSendMsg(conn)
+		 go ListenToSendMsg(conn)
 		//监听消息
 		go ListenToReadMsg(conn)
 	}else{
@@ -85,16 +91,16 @@ func main() {
 			log.Println("服务器连接已断开!")
 			for {
 				select{
-				case <-time.After(time.Second*10):
-					conn = WebSocketFound()
-					if conn != nil {
-						defer conn.Close()
-						ctrl.GetConnection(conn)
-						go ListenToSendMsg(conn)
-						go ListenToReadMsg(conn)
-						goto label
-					}
-					log.Println("连接失败, 等待重新连接........")
+					case <-time.After(time.Second*10):
+						conn = WebSocketFound()
+						if conn != nil {
+							defer conn.Close()
+							ctrl.GetConnection(conn)
+							go ListenToSendMsg(conn)
+							go ListenToReadMsg(conn)
+							goto label
+						}
+						log.Println("连接失败, 等待重新连接........")
 				}
 
 			}
@@ -112,14 +118,15 @@ func WebSocketFound() *websocket.Conn{
 	conn, _, err := websocket.DefaultDialer.Dial(gpServiceUrl, nil)
 	if err != nil {
 		//log.Fatal("dial:", err)
-		log.Println("dial:", err)
+		log.Println("dial err:", err)
 	}
 	return conn
 }
 
 // 监听消息
-func ListenToReadMsg(conn *websocket.Conn) {
+func ListenToReadMsg(conn *websocket.Conn) (pid int){
 	log.Println("监听消息>>>>>>>>>>>>>>>>>>>")
+	pid = Goid()
 	for {
 
 		n, message, err := conn.ReadMessage()
@@ -144,6 +151,7 @@ func ListenToSendMsg(conn *websocket.Conn){
 		if err != nil {
 			log.Println("read err:", err)
 		}
+		//判断conn是否还在  todo
 
 		for taskId,reqEntity := range reqMap {
 			err := conn.WriteJSON(reqEntity)
@@ -175,4 +183,22 @@ func ClearSuccessfulTask() {
 func SetDisconnect(){
 	log.Println("设置连接断开状态")
 	disconnect <- true
+}
+
+
+func Goid() int {
+	defer func() {
+		if err := recover(); err != nil {
+			fmt.Println("panic recover:panic info:%v", err)
+		}
+	}()
+
+	var buf [64]byte
+	n := runtime.Stack(buf[:], false)
+	idField := strings.Fields(strings.TrimPrefix(string(buf[:n]), "goroutine "))[0]
+	id, err := strconv.Atoi(idField)
+	if err != nil {
+		panic(fmt.Sprintf("cannot get goroutine id: %v", err))
+	}
+	return id
 }