5
0
Kevin 6 rokov pred
rodič
commit
762961dbe2

+ 83 - 34
Gene_point_Service/.idea/workspace.xml

@@ -3,10 +3,9 @@
   <component name="ChangeListManager">
     <list default="true" id="83c812bd-fdcd-4344-b866-5ecaac02b490" name="Default Changelist" comment="">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/conf/app.conf" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/conf/app.conf" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/main.go" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/main.go" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -18,12 +17,63 @@
     <favorites_list name="Gene_point_Service" />
   </component>
   <component name="FileEditorManager">
-    <leaf>
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/main.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="184">
-              <caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
+            <state relative-caret-position="3473">
+              <caret line="203" column="1" selection-start-line="203" selection-start-column="1" selection-end-line="203" selection-end-column="1" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://E:/DASHOO/base_go/src/github.com/gorilla/websocket/conn.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="258">
+              <caret line="1023" column="15" selection-start-line="1023" selection-start-column="15" selection-end-line="1023" selection-end-column="15" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="768">
+              <caret line="106" column="53" selection-start-line="106" selection-start-column="53" selection-end-line="106" selection-end-column="53" />
+              <folding>
+                <element signature="e#18#192#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-1377">
+              <caret line="61" column="14" selection-start-line="61" selection-start-column="14" selection-end-line="61" selection-end-column="14" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-1239">
+              <caret line="494" column="38" lean-forward="true" selection-start-line="494" selection-start-column="38" selection-end-line="494" selection-end-column="38" />
+              <folding>
+                <element signature="e#25#144#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://E:/DASHOO/common/base_dashoo_common/src/dashoo.cn/utils/db/serviceBase.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="368">
+              <caret line="84" column="22" selection-start-line="84" selection-start-column="22" selection-end-line="84" selection-end-column="22" />
             </state>
           </provider>
         </entry>
@@ -40,13 +90,13 @@
       <find>println</find>
       <find>DeleteEntityBytbl</find>
       <find>GROUP</find>
-      <find>Hierarchy</find>
       <find>GetBasicTaskInfo</find>
       <find>HandleTaskInfo</find>
       <find>AddTaskType</find>
       <find>ScanNewTaskDetail</find>
       <find>ListenToSendMsg</find>
       <find>TransferPosition</find>
+      <find>Hierarchy</find>
     </findStrings>
   </component>
   <component name="GOROOT" path="D:\Development\GO" />
@@ -72,19 +122,19 @@
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse_test.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/base.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/routers/router.go" />
-        <option value="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/conf/app.conf" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/main.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go" />
-        <option value="$PROJECT_DIR$/src/dashoo.cn/api/main.go" />
       </list>
     </option>
   </component>
-  <component name="ProjectFrameBounds" extendedState="7">
-    <option name="x" value="2514" />
-    <option name="y" value="32" />
-    <option name="width" value="1296" />
-    <option name="height" value="696" />
+  <component name="ProjectFrameBounds" extendedState="1">
+    <option name="x" value="2869" />
+    <option name="y" value="133" />
+    <option name="width" value="864" />
+    <option name="height" value="328" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
   <component name="ProjectView">
@@ -250,15 +300,14 @@
   </component>
   <component name="ToolWindowManager">
     <frame x="1912" y="-8" width="2576" height="1056" extended-state="6" />
-    <editor active="true" />
     <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.49766356" visible="true" weight="0.12688942" />
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.49766356" visible="true" weight="0.07637232" />
       <window_info id="Structure" order="1" sideWeight="0.50233644" side_tool="true" weight="0.14701195" />
       <window_info id="Favorites" order="2" sideWeight="0.50233644" side_tool="true" weight="0.14701195" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49960256" weight="0.0" />
       <window_info anchor="bottom" id="Run" order="2" weight="0.61915886" />
-      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.89467406" visible="true" weight="0.9207921" />
+      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.89467406" visible="true" weight="0.3630058" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" weight="0.32943925" />
@@ -576,13 +625,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://E:/DASHOO/base_go/src/github.com/gorilla/websocket/conn.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="459">
-          <caret line="272" column="36" lean-forward="true" selection-start-line="272" selection-start-column="36" selection-end-line="272" selection-end-column="36" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/conf/app.conf">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="115">
@@ -590,34 +632,41 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://E:/DASHOO/common/base_dashoo_common/src/dashoo.cn/utils/db/serviceBase.go">
+    <entry file="file://E:/DASHOO/base_go/src/github.com/gorilla/websocket/conn.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="90">
-          <caret line="84" column="22" selection-start-line="84" selection-start-column="22" selection-end-line="84" selection-end-column="22" />
+        <state relative-caret-position="258">
+          <caret line="1023" column="15" selection-start-line="1023" selection-start-column="15" selection-end-line="1023" selection-end-column="15" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="23">
-          <caret line="65" lean-forward="true" selection-start-line="65" selection-end-line="65" />
+        <state relative-caret-position="-1377">
+          <caret line="61" column="14" selection-start-line="61" selection-start-column="14" selection-end-line="61" selection-end-column="14" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="151">
-          <caret line="110" column="20" selection-start-line="110" selection-start-column="20" selection-end-line="110" selection-end-column="20" />
+        <state relative-caret-position="-1239">
+          <caret line="494" column="38" lean-forward="true" selection-start-line="494" selection-start-column="38" selection-end-line="494" selection-end-column="38" />
           <folding>
             <element signature="e#25#144#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file://E:/DASHOO/common/base_dashoo_common/src/dashoo.cn/utils/db/serviceBase.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="368">
+          <caret line="84" column="22" selection-start-line="84" selection-start-column="22" selection-end-line="84" selection-end-column="22" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="358">
-          <caret line="27" column="32" selection-start-line="27" selection-start-column="32" selection-end-line="27" selection-end-column="32" />
+        <state relative-caret-position="768">
+          <caret line="106" column="53" selection-start-line="106" selection-start-column="53" selection-end-line="106" selection-end-column="53" />
           <folding>
             <element signature="e#18#192#0" expanded="true" />
           </folding>
@@ -626,8 +675,8 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/main.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="184">
-          <caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
+        <state relative-caret-position="3473">
+          <caret line="203" column="1" selection-start-line="203" selection-start-column="1" selection-end-line="203" selection-end-column="1" />
         </state>
       </provider>
     </entry>

+ 7 - 1
Gene_point_Service/src/dashoo.cn/api/business/converseService/converse.go

@@ -41,7 +41,7 @@ type ResponseData struct {
 	Causes         []Cause   	 `json:"causes,omitempty"`
 	Is_end         bool          `json:"is_end,omitempty"`
 	Execution_time int           `json:"execution_time,omitempty"`
-	Exceptions     []interface{} `json:"exceptions,omitempty"`
+	Exceptions     []Exception	 `json:"exceptions,omitempty"`
 	Actual_data    []interface{} `json:"actual_data,omitempty"`
 	Abnormal_data  []interface{} `json:"abnormal_data,omitempty"`
 	List           []interface{} `json:"list,omitempty"`
@@ -94,11 +94,17 @@ type Cause struct {
 	Reason	int		`json:"reason,omitempty"`
 }
 
+type Exception struct {
+	Cu 		int		`json:"cu,omitempty"`
+	Codes 	[]int	`json:"codes,omitempty"`
+}
+
 type Sample_Storage_Task struct {
 	Id 			int
 	Task_id 	string
 	Task_type 	int
 	EquipmentId int
+	Cu 			int
 	E_Row		int
 	E_Col		int
 	Ltu			int

+ 88 - 8
Gene_point_Service/src/dashoo.cn/api/business/converseService/converseService.go

@@ -234,13 +234,15 @@ func handleRackStore (entity *RequestEntity, detail *Sample_Storage_Task) {
 		one.Rack = detail.BoxType
 		one.Tube = detail.TubeType
 		one.Rack_id = detail.BoxBarcode
-		one.Source.Cu = CU
+		//one.Source.Cu = CU
+		one.Source.Cu = detail.Cu
 		one.Source.Ee = EE
 		one.Source.Pos = POS
-		one.Target.Cu = CU
+		//one.Target.Cu = CU
+		one.Target.Cu = detail.Cu
 		one.Target.Unit = detail.Unit
 		one.Target.Pos = detail.Pos
-		one.Target.Ltu = 1
+		one.Target.Ltu = detail.Ltu
 		//one.Target.Group = 1
 		one.Target.Group = detail.Group
 		if detail.BarCode != "" {
@@ -267,7 +269,7 @@ func handleRackRetrieve(entity *RequestEntity, detail *Sample_Storage_Task){
 		ones = entity.Data.Task_data.([]Single)
 	}
 	one.Rack_id = detail.BoxBarcode
-	one.Target.Cu = CU
+	one.Target.Cu = CU		//todo
 	one.Target.Ee = EE
 	one.Target.Pos = POS
 	ones = append(ones, one)
@@ -308,12 +310,13 @@ func handleTubeStore (entity *RequestEntity, detail *Sample_Storage_Task){
 		//one.Tube = 201			//测试临时使用
 		one.Rack = detail.BoxType    //样本库系统,没有添加该字段信息逻辑,临时注释
 		one.Tube = detail.TubeType   //样本库系统,没有添加该字段信息逻辑,临时注释
-		one.Source.Cu = CU
+		//one.Source.Cu = CU		 //测试临时使用
+		one.Source.Cu = detail.Cu
 		one.Source.Ee = EE
 		one.Source.Pos = POS
 		var tube Tube
 		if detail.OperaMode != "auto" {
-			one.Target.Cu = CU
+			one.Target.Cu = detail.Cu
 			one.Target.Ltu = detail.Ltu
 			one.Target.Group = detail.Group
 			one.Target.Unit = detail.Unit
@@ -340,7 +343,8 @@ func handleTubeRetrieve(entity *RequestEntity, detail *Sample_Storage_Task){
 	}
 
 	if !exist {
-		one.Target.Cu = CU
+		//one.Target.Cu = CU
+		one.Target.Cu = detail.Cu
 		one.Target.Ee = EE
 		one.Target.Pos =POS
 	}
@@ -357,7 +361,7 @@ func handleTaskChange(entity *RequestEntity, detail *Sample_Storage_Task){
 
 //查询冻存盒库存信息
 func handleQueryRack(entity *RequestEntity, detail *Sample_Storage_Task){
-	entity.Data.Cu = detail.EquipmentId
+	entity.Data.Cu = detail.Cu
 	entity.Data.Rack_id = detail.BoxBarcode
 }
 
@@ -482,3 +486,79 @@ func (s *ConverseSessionService) InsertEntityBytbl(tablename string, entity inte
 	LogError(err)
 	return
 }
+
+
+//异常信息转换
+func HandleCauses (causes []Cause) string {
+	var exceptInfo string
+	for _,cause := range causes {
+		exceptInfo += GetReason(cause)
+	}
+	return exceptInfo
+}
+
+//根据异常码获取异常原因
+func GetReason(cause Cause) string{
+	var reasonStr string
+	switch cause.Reason {
+	case 1:
+		reasonStr = "存储位不够;"
+		break
+	case 2:
+		reasonStr = "单次任务涉及的冻存盒数量超出限制;"
+		break
+	case 3:
+		reasonStr = "示指定的位置已经被占用或者位置不正确,无法存入;"
+		break
+	case 4:
+		reasonStr = "表示没有权限对指定位置进行操作;"
+		break
+	case 5:
+		reasonStr = "指定的编号不正确,无法完成操作;"
+		break
+	case 6:
+		reasonStr = "报文数据不完整,缺少冻存管数据;"
+		break
+	case 7:
+		reasonStr = "相同的冻存盒位置只允许有一组报文数据;"
+		break
+	case 8:
+		reasonStr = "半自动设备在不配置转运机器人的情况下,一个存管任务只允许操作一台设备;"
+	}
+
+	if cause.Cu != 0 {
+		reasonStr = string(cause.Cu)+"号设备," + reasonStr
+	}
+	return reasonStr
+}
+
+//处理Exceptions异常信息
+func HandleExceptions (excepts []Exception) string {
+	var exceptStr string
+	for _,except := range excepts {
+		for _,code := range except.Codes{
+			var tempStr = string(except.Cu)+"号设备,"
+			switch code {
+			case 40200:
+				tempStr += "移动盒子过程中设备故障,动作失败;"
+				break
+			case 40201:
+				tempStr += "移动盒子过程中目标位置不为空,动作取消;"
+				break
+			case 40202:
+				tempStr += "移动盒子过程中起始位置为空,动作取消;"
+				break
+			case 40300:
+				tempStr += "移动管子过程中设备故障,动作失败;"
+				break
+			case 40301:
+				tempStr = "移动管子过程中目标位置不为空,动作取消;"
+				break
+			case 40302:
+				tempStr = "移动管子过程中起始位置为空,动作取消;"
+			}
+			exceptStr += tempStr
+		}
+	}
+	return exceptStr
+}

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

@@ -4,6 +4,7 @@ import (
 	"dashoo.cn/api/business/converseService"
 	"dashoo.cn/utils"
 	"encoding/json"
+	"fmt"
 	"github.com/astaxie/beego"
 	"github.com/gorilla/websocket"
 	"log"
@@ -102,10 +103,18 @@ func (this *ConverseController) HandleMessage(n int, message []byte){
 	var err error
 	//如果正常响应且任务执行成功则修改任务状态为成功
 	if result == 200 && res.Data.Abnormal_data == nil {
-		if isEnd && res.Data.Abnormal_data == nil{
+		if isEnd && taskType == "end" {
 			log.Println(">>>>>>>>>>修改成功状态>>>>>>>>>>")
-			//todo or link to biobank
 			err = this.StatusModify(SUCCESS,taskId)
+		}else if taskType== "abnormal_end" {
+			log.Println("----------修改失败状态----------")
+			//保存异常信息
+			this.SaveExcepMsg(res,taskId)
+			err = this.StatusModify(FAILED,taskId)
+		}else if isEnd && taskType == "abnormal_end"{
+			log.Println("----------修改失败状态----------")
+			this.SaveExcepMsg(res,taskId)
+			err = this.StatusModify(FAILED,taskId)
 		}else if taskType == "task_activate" {
 			log.Println(">>>>>>>>>>修改激活状态>>>>>>>>>>")
 			err = this.StatusModify(ACTIVE,taskId)
@@ -116,20 +125,11 @@ func (this *ConverseController) HandleMessage(n int, message []byte){
 			log.Println(">>>>>>>>>>修改执行中状态>>>>>>>>>>")
 			err = this.StatusModify(RUNNING,taskId)
 		}
-	}else if result == 300{
-		switch taskType {
-			case "reject":
-				log.Println(">>>>>>>>>>修改驳回状态>>>>>>>>>>")
-				//保存异常信息
-				this.SaveExcepMsg(res,taskId)
-				err = this.StatusModify(REJECT,taskId)
-				break
-			case "abnormal_end":
+	}else if result == 300 && taskType == "reject"{
 				log.Println("----------修改失败状态----------")
 				//保存异常信息
 				this.SaveExcepMsg(res,taskId)
 				err = this.StatusModify(REJECT,taskId)
-		}
 	}else if result != 200 || (isEnd && res.Data.Abnormal_data != nil) {
 		log.Println("----------修改失败状态----------")
 		//保存异常信息
@@ -144,26 +144,29 @@ func (this *ConverseController) HandleMessage(n int, message []byte){
 
 //保存异常信息
 func (this *ConverseController) SaveExcepMsg(res converseService.ResponseEntity,taskId string) {
-	causeByte,_ := json.Marshal(res.Data.Causes)
-	causeMsg := string(causeByte)
-
-	abnormalByte,_ := json.Marshal(res.Data.Abnormal_data)
-	abnormalMsg := string(abnormalByte)
-
-	var exceptMsg string
-	if causeMsg != "null" && abnormalMsg == "1null"{
-		exceptMsg = causeMsg
-	}else if causeMsg == "null" && abnormalMsg != "null"{
-		exceptMsg = abnormalMsg
-	}else if causeMsg != "null" && abnormalMsg == "null" {
-		exceptMsg = causeMsg + "\\r\\n\\r\\n" + abnormalMsg
+	//causeByte,_ := json.Marshal(res.Data.Causes)
+	//causeMsg := string(causeByte)
+	causeMsg := converseService.HandleCauses(res.Data.Causes)
+	fmt.Println("causeMsg: |",causeMsg,"|")
+	exceptMsg := converseService.HandleExceptions(res.Data.Exceptions)
+	//abnormalByte,_ := json.Marshal(res.Data.Abnormal_data)
+	//abnormalMsg := string(abnormalByte)
+	fmt.Println("exceptMsg:  |",exceptMsg,"|")
+
+	var totalMsg string
+	if causeMsg != "" && exceptMsg == ""{
+		totalMsg = causeMsg
+	}else if causeMsg == "" && exceptMsg != ""{
+		totalMsg = exceptMsg
+	}else if causeMsg != "" && exceptMsg == "" {
+		totalMsg = causeMsg + "\\r\\n\\r\\n" + exceptMsg
 	}
 
 
 	svc := converseService.GetConverseService(utils.DBE)
-	if exceptMsg != "" {
-		svc.SaveTaskExcepMsg(exceptMsg,taskId)
-		svc.SaveSampleExcepMsg(exceptMsg,taskId)
+	if totalMsg != "" {
+		svc.SaveTaskExcepMsg(totalMsg,taskId)
+		svc.SaveSampleExcepMsg(totalMsg,taskId)
 	} else {
 		//任务再次执行成功时,删除已有的异常信息
 		svc.SaveTaskExcepMsg(" ",taskId)
@@ -177,7 +180,6 @@ func (this *ConverseController) SaveExcepMsg(res converseService.ResponseEntity,
 func (this *ConverseController) DeleteAccomplishedTask() error{
 	where := "statuscode = '"+ strconv.Itoa(SUCCESS) +"'"
 	svc := converseService.GetConverseService(utils.DBE)
-	defer svc.DBE.Close()
 	err := svc.DeleteEntityBytbl(converseService.TABLE_TAST, where)
 	log.Println("===============清除任务信息===============")
 	if err != nil {