|
|
@@ -2,14 +2,16 @@ package converseService
|
|
|
|
|
|
import (
|
|
|
"crypto/md5"
|
|
|
- "dashoo.cn/utils"
|
|
|
- . "dashoo.cn/utils/db"
|
|
|
"fmt"
|
|
|
- "github.com/go-xorm/xorm"
|
|
|
"log"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
+
|
|
|
+ "github.com/go-xorm/xorm"
|
|
|
+
|
|
|
+ "dashoo.cn/utils"
|
|
|
+ . "dashoo.cn/utils/db"
|
|
|
)
|
|
|
|
|
|
const CU = 1
|
|
|
@@ -29,11 +31,8 @@ const TABLE_APPLY_DETAIL = "bank_apply_detail"
|
|
|
const STATUS_LOCKED = "1"
|
|
|
const STATUS_UNLOCK = "0"
|
|
|
const RK_PASS = "2"
|
|
|
-const CK_PASS_ONHOLD = "3" //保留位置
|
|
|
-const CK_PASS_DONE = "4" //已归档
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+const CK_PASS_ONHOLD = "3" //保留位置
|
|
|
+const CK_PASS_DONE = "4" //已归档
|
|
|
|
|
|
type ConverseService struct {
|
|
|
ServiceBase
|
|
|
@@ -43,30 +42,30 @@ type ConverseSessionService struct {
|
|
|
SessionBase
|
|
|
}
|
|
|
|
|
|
-func GetConverseService(xormEngine *xorm.Engine) *ConverseService{
|
|
|
+func GetConverseService(xormEngine *xorm.Engine) *ConverseService {
|
|
|
s := new(ConverseService)
|
|
|
s.DBE = xormEngine
|
|
|
return s
|
|
|
}
|
|
|
|
|
|
-func GetConverseSessionService(session *xorm.Session) *ConverseSessionService{
|
|
|
+func GetConverseSessionService(session *xorm.Session) *ConverseSessionService {
|
|
|
s := new(ConverseSessionService)
|
|
|
s.Session = session
|
|
|
return s
|
|
|
}
|
|
|
|
|
|
//建立会话
|
|
|
-func (this *ConverseService) GetSessionSetupRequest(utc string) *RequestEntity{
|
|
|
+func (this *ConverseService) GetSessionSetupRequest(utc string) *RequestEntity {
|
|
|
var request = "session_setup"
|
|
|
var reqData RequestData
|
|
|
reqData.Key = this.GetKeyBaseOnTime(utc)
|
|
|
reqData.Client = "lims"
|
|
|
- var entity = this.GetRequestEntity(request,utc,reqData)
|
|
|
+ var entity = this.GetRequestEntity(request, utc, reqData)
|
|
|
return entity
|
|
|
}
|
|
|
|
|
|
//生成请求报文
|
|
|
-func (this *ConverseService) GetRequestEntity(request string, utc string, data RequestData) *RequestEntity{
|
|
|
+func (this *ConverseService) GetRequestEntity(request string, utc string, data RequestData) *RequestEntity {
|
|
|
var entity RequestEntity
|
|
|
entity.Request = request
|
|
|
entity.Time = utc
|
|
|
@@ -74,8 +73,9 @@ func (this *ConverseService) GetRequestEntity(request string, utc string, data R
|
|
|
return &entity
|
|
|
}
|
|
|
|
|
|
-//获取key
|
|
|
-func (this *ConverseService) GetKeyBaseOnTime(utc string) string{
|
|
|
+// 获取身份验证key
|
|
|
+// key的信息按照生物样本存储系统分配的私钥字符串+请求报文中的time字段的值进行MD5加密
|
|
|
+func (this *ConverseService) GetKeyBaseOnTime(utc string) string {
|
|
|
privateKey := "ZGlzdHJp23Yn4V06b3I6OGQ5NjllZWY2ZWNhZDNjMjlhM2E2MjkyODBlNjg2Y2YwYzNmNWQ1YTg2YWZmM2Nh3MTIwMjB3454jOTIzYWRjNmM5M4g"
|
|
|
unencoded := privateKey + utc
|
|
|
byte := md5.Sum([]byte(unencoded))
|
|
|
@@ -85,38 +85,38 @@ func (this *ConverseService) GetKeyBaseOnTime(utc string) string{
|
|
|
}
|
|
|
|
|
|
//查询库存冻存盒信息
|
|
|
-func (this *ConverseService) CheckStockRackInfo(cu int, rack_id string, utc string) *RequestEntity{
|
|
|
+func (this *ConverseService) CheckStockRackInfo(cu int, rack_id string, utc string) *RequestEntity {
|
|
|
var request = "stock_rack"
|
|
|
var data RequestData
|
|
|
data.Rack_id = rack_id
|
|
|
data.Cu = cu
|
|
|
- entity := this.GetRequestEntity(request,utc,data)
|
|
|
+ entity := this.GetRequestEntity(request, utc, data)
|
|
|
return entity
|
|
|
}
|
|
|
|
|
|
//查询库存冻存管信息
|
|
|
-func (this *ConverseService) CheckStockTubeInfo(cu int, rack_id, tube_id, utc string) *RequestEntity{
|
|
|
+func (this *ConverseService) CheckStockTubeInfo(cu int, rack_id, tube_id, utc string) *RequestEntity {
|
|
|
var request = "stock_rack_tube"
|
|
|
var data RequestData
|
|
|
data.Rack_id = rack_id
|
|
|
data.Tube_id = tube_id
|
|
|
data.Cu = cu
|
|
|
- entity := this.GetRequestEntity(request,utc,data)
|
|
|
+ entity := this.GetRequestEntity(request, utc, data)
|
|
|
return entity
|
|
|
}
|
|
|
|
|
|
//任务撤销
|
|
|
-func (this *ConverseService) CancelTast(utc string, task_id string) *RequestEntity{
|
|
|
+func (this *ConverseService) CancelTast(utc string, task_id string) *RequestEntity {
|
|
|
var request = "task_change"
|
|
|
var data RequestData
|
|
|
data.Task_id = task_id
|
|
|
data.Status = 1
|
|
|
- entity := this.GetRequestEntity(request,utc,data)
|
|
|
+ entity := this.GetRequestEntity(request, utc, data)
|
|
|
return entity
|
|
|
}
|
|
|
|
|
|
//扫描新任务
|
|
|
-func (this *ConverseService) ScanNewTaskDetail() []Sample_Storage_Task{
|
|
|
+func (this *ConverseService) ScanNewTaskDetail() []Sample_Storage_Task {
|
|
|
var tasks []Sample_Storage_Task
|
|
|
where := "statuscode = 0"
|
|
|
this.GetEntitysByWhere(TABLE_TAST, where, &tasks)
|
|
|
@@ -124,7 +124,7 @@ func (this *ConverseService) ScanNewTaskDetail() []Sample_Storage_Task{
|
|
|
}
|
|
|
|
|
|
//新任务数量
|
|
|
-func (this *ConverseService) GetNewTaskBasic () []Sample_Storage_Task{
|
|
|
+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"
|
|
|
@@ -163,8 +163,8 @@ func (this *ConverseService) GetNewTaskBasic () []Sample_Storage_Task{
|
|
|
// return no
|
|
|
//}
|
|
|
|
|
|
-//根据任务类型获取requestName
|
|
|
-func (this *ConverseService)GenerateRequestEntity(taskType int, task_id string) *RequestEntity{
|
|
|
+// 生成请求实体,根据任务类型获取requestName
|
|
|
+func (this *ConverseService) GenerateRequestEntity(taskType int, task_id string) *RequestEntity {
|
|
|
var requestName string
|
|
|
switch taskType {
|
|
|
case 1:
|
|
|
@@ -194,47 +194,48 @@ func (this *ConverseService)GenerateRequestEntity(taskType int, task_id string)
|
|
|
data.Task_id = task_id
|
|
|
data.Type = "begin"
|
|
|
}
|
|
|
- entity := this.GetRequestEntity(requestName,utc,data)
|
|
|
+ entity := this.GetRequestEntity(requestName, utc, data)
|
|
|
return entity
|
|
|
}
|
|
|
|
|
|
-func (this *ConverseService) HandleTaskDetail(taskType int , entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
+// 按类型进行任务处理
|
|
|
+func (this *ConverseService) HandleTaskDetail(taskType int, entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
switch taskType {
|
|
|
case 1:
|
|
|
handleRackStore(entity, detail)
|
|
|
break
|
|
|
case 2:
|
|
|
- handleRackRetrieve(entity,detail)
|
|
|
+ handleRackRetrieve(entity, detail)
|
|
|
break
|
|
|
case 3:
|
|
|
- handleTubeStore(entity,detail)
|
|
|
+ handleTubeStore(entity, detail)
|
|
|
break
|
|
|
case 4:
|
|
|
- handleTubeRetrieve(entity,detail)
|
|
|
+ handleTubeRetrieve(entity, detail)
|
|
|
break
|
|
|
case 5:
|
|
|
- handleQueryRack(entity,detail)
|
|
|
+ handleQueryRack(entity, detail)
|
|
|
break
|
|
|
case 6:
|
|
|
- handleQueryTube(entity,detail)
|
|
|
+ handleQueryTube(entity, detail)
|
|
|
break
|
|
|
case 7:
|
|
|
- handleTaskChange(entity,detail)
|
|
|
+ handleTaskChange(entity, detail)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//处理冻存盒入库任务信息
|
|
|
-func handleRackStore (entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
- var ones = make([]Single,0)
|
|
|
+func handleRackStore(entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
+ var ones = make([]Single, 0)
|
|
|
var exist bool
|
|
|
|
|
|
if entity.Data.Task_data != nil {
|
|
|
ones = entity.Data.Task_data.([]Single)
|
|
|
- for idx,value := range ones{
|
|
|
- if value.Rack_id == detail.BoxBarcode{
|
|
|
+ for idx, value := range ones {
|
|
|
+ if value.Rack_id == detail.BoxBarcode {
|
|
|
var tube Tube
|
|
|
tube.Id = detail.BarCode
|
|
|
- ones[idx].Tubes = append(ones[idx].Tubes,tube)
|
|
|
+ ones[idx].Tubes = append(ones[idx].Tubes, tube)
|
|
|
exist = true
|
|
|
}
|
|
|
}
|
|
|
@@ -260,8 +261,8 @@ func handleRackStore (entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
var tube Tube
|
|
|
tube.Id = detail.BarCode
|
|
|
one.Tubes = append(one.Tubes, tube)
|
|
|
- }else {
|
|
|
- one.Tubes = make([]Tube,0) //tubes不能为空, 否则Genepoint系统报错
|
|
|
+ } else {
|
|
|
+ one.Tubes = make([]Tube, 0) //tubes不能为空, 否则Genepoint系统报错
|
|
|
}
|
|
|
ones = append(ones, one)
|
|
|
}
|
|
|
@@ -269,27 +270,26 @@ func handleRackStore (entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
}
|
|
|
|
|
|
//处理冻存盒出库任务信息
|
|
|
-func handleRackRetrieve(entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
+func handleRackRetrieve(entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
var ones []Single
|
|
|
var one Single
|
|
|
- one.Tubes = make([]Tube,0) //tubes不能为空, 否则Genepoint系统报错
|
|
|
+ one.Tubes = make([]Tube, 0) //tubes不能为空, 否则Genepoint系统报错
|
|
|
|
|
|
if entity.Data.Task_data != nil {
|
|
|
- // ones = make([]Single, 0)
|
|
|
- //}else{
|
|
|
+ // ones = make([]Single, 0)
|
|
|
+ //}else{
|
|
|
ones = entity.Data.Task_data.([]Single)
|
|
|
}
|
|
|
one.Rack_id = detail.BoxBarcode
|
|
|
- one.Target.Cu = detail.Cu //todo
|
|
|
+ one.Target.Cu = detail.Cu //todo
|
|
|
one.Target.Ee = EE
|
|
|
one.Target.Pos = POS
|
|
|
ones = append(ones, one)
|
|
|
entity.Data.Task_data = ones
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//处理冻存管入库任务信息
|
|
|
-func handleTubeStore (entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
+func handleTubeStore(entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
var ones []Single
|
|
|
var exist bool
|
|
|
if entity.Data.Operation_mode == "" {
|
|
|
@@ -298,7 +298,7 @@ func handleTubeStore (entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
|
|
|
if entity.Data.Task_data != nil {
|
|
|
ones = entity.Data.Task_data.([]Single)
|
|
|
- for idx,value := range ones {
|
|
|
+ for idx, value := range ones {
|
|
|
if value.Target.Rack_id == detail.BoxBarcode {
|
|
|
var tube Tube
|
|
|
if detail.OperaMode != "auto" {
|
|
|
@@ -307,7 +307,7 @@ func handleTubeStore (entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
tube.T_no = detail.No
|
|
|
}
|
|
|
tube.Id = detail.BarCode
|
|
|
- ones[idx].Tubes = append(ones[idx].Tubes,tube)
|
|
|
+ ones[idx].Tubes = append(ones[idx].Tubes, tube)
|
|
|
//value.Tubes = append(value.Tubes,tube)
|
|
|
exist = true
|
|
|
goto label
|
|
|
@@ -319,8 +319,8 @@ func handleTubeStore (entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
var one Single
|
|
|
//one.Rack = 101 //测试临时使用
|
|
|
//one.Tube = 201 //测试临时使用
|
|
|
- one.Rack = detail.BoxType //样本库系统,没有添加该字段信息逻辑,临时注释
|
|
|
- one.Tube = detail.TubeType //样本库系统,没有添加该字段信息逻辑,临时注释
|
|
|
+ one.Rack = detail.BoxType //样本库系统,没有添加该字段信息逻辑,临时注释
|
|
|
+ one.Tube = detail.TubeType //样本库系统,没有添加该字段信息逻辑,临时注释
|
|
|
//one.Source.Cu = CU //测试临时使用
|
|
|
one.Source.Cu = detail.Cu
|
|
|
one.Source.Ee = EE
|
|
|
@@ -340,12 +340,12 @@ func handleTubeStore (entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
one.Tubes = append(one.Tubes, tube)
|
|
|
ones = append(ones, one)
|
|
|
}
|
|
|
- label:
|
|
|
+label:
|
|
|
entity.Data.Task_data = ones
|
|
|
}
|
|
|
|
|
|
//处理冻存管出库任务信息
|
|
|
-func handleTubeRetrieve(entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
+func handleTubeRetrieve(entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
var one Single
|
|
|
var exist bool
|
|
|
if entity.Data.Task_data != nil {
|
|
|
@@ -357,43 +357,42 @@ func handleTubeRetrieve(entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
//one.Target.Cu = CU
|
|
|
one.Target.Cu = detail.Cu
|
|
|
one.Target.Ee = EE
|
|
|
- one.Target.Pos =POS
|
|
|
+ one.Target.Pos = POS
|
|
|
}
|
|
|
var tube Tube
|
|
|
tube.Id = detail.BarCode
|
|
|
- one.Tubes = append(one.Tubes,tube)
|
|
|
+ one.Tubes = append(one.Tubes, tube)
|
|
|
entity.Data.Task_data = one
|
|
|
}
|
|
|
|
|
|
//任务撤销
|
|
|
-func handleTaskChange(entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
+func handleTaskChange(entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
entity.Data.Status = detail.Status
|
|
|
}
|
|
|
|
|
|
//查询冻存盒库存信息
|
|
|
-func handleQueryRack(entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
+func handleQueryRack(entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
entity.Data.Cu = detail.Cu
|
|
|
entity.Data.Rack_id = detail.BoxBarcode
|
|
|
}
|
|
|
|
|
|
//查询冻存管库存信息
|
|
|
-func handleQueryTube(entity *RequestEntity, detail *Sample_Storage_Task){
|
|
|
+func handleQueryTube(entity *RequestEntity, detail *Sample_Storage_Task) {
|
|
|
entity.Data.Rack_id = detail.BoxBarcode
|
|
|
entity.Data.Tube_id = detail.BarCode
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//修改任务表状态码
|
|
|
-func (this *ConverseService) TaskStatusModify(statusCode int, task_id string) error{
|
|
|
+func (this *ConverseService) TaskStatusModify(statusCode int, task_id string) error {
|
|
|
sql := "UPDATE " + TABLE_TAST + " SET statuscode = '" + strconv.Itoa(statusCode) + "' WHERE task_id = '" + task_id + "'"
|
|
|
- _,err := this.DBE.Exec(sql)
|
|
|
+ _, err := this.DBE.Exec(sql)
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
// 修改出入库单状态
|
|
|
-func (this *ConverseService) SampleApplyStatusModify(statusCode int, entryNo string) error{
|
|
|
+func (this *ConverseService) SampleApplyStatusModify(statusCode int, entryNo string) error {
|
|
|
sql := "UPDATE " + TABLE_SAMPLE_APPLY + " SET taskstatus = '" + strconv.Itoa(statusCode) + "' WHERE entryno = '" + entryNo + "'"
|
|
|
- _,err := this.DBE.Exec(sql)
|
|
|
+ _, err := this.DBE.Exec(sql)
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
@@ -424,15 +423,15 @@ func (this *ConverseService) SampleApplyStatusModify(statusCode int, entryNo str
|
|
|
//}
|
|
|
|
|
|
//任务执行驳回, 修改全部样本失败状态
|
|
|
-func (this *ConverseService)ModifySampleAllRejectStatus(res ResponseEntity) error{
|
|
|
- //获取出入库单Id
|
|
|
- getId := "SELECT id FROM " + TABLE_SAMPLE_APPLY + " WHERE entryno = '" + res.Data.Task_id + "'"
|
|
|
- var idList []Id
|
|
|
- err := this.DBE.SQL(getId).Find(&idList)
|
|
|
- //批量更新全部成功或失败的任务样本状态
|
|
|
- sql:= "UPDATE " + TABLE_APPLY_DETAIL + " SET taskstatus = '" + strconv.Itoa(REJECT) + "' WHERE parentid = '" + strconv.Itoa(idList[0].Id) + "'"
|
|
|
- _,err = this.DBE.Exec(sql)
|
|
|
- return err
|
|
|
+func (this *ConverseService) ModifySampleAllRejectStatus(res ResponseEntity) error {
|
|
|
+ //获取出入库单Id
|
|
|
+ getId := "SELECT id FROM " + TABLE_SAMPLE_APPLY + " WHERE entryno = '" + res.Data.Task_id + "'"
|
|
|
+ var idList []Id
|
|
|
+ err := this.DBE.SQL(getId).Find(&idList)
|
|
|
+ //批量更新全部成功或失败的任务样本状态
|
|
|
+ sql := "UPDATE " + TABLE_APPLY_DETAIL + " SET taskstatus = '" + strconv.Itoa(REJECT) + "' WHERE parentid = '" + strconv.Itoa(idList[0].Id) + "'"
|
|
|
+ _, err = this.DBE.Exec(sql)
|
|
|
+ return err
|
|
|
}
|
|
|
|
|
|
//修改部分样本执行成功部分样本执行失败状态
|
|
|
@@ -460,98 +459,95 @@ func (this *ConverseService)ModifySampleAllRejectStatus(res ResponseEntity) erro
|
|
|
// return idStr
|
|
|
//}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
//修改样本失败状态
|
|
|
-func (this *ConverseService)handleSampleFailed(idsStr string, response string, parentId int) {
|
|
|
+func (this *ConverseService) handleSampleFailed(idsStr string, response string, parentId int) {
|
|
|
updatesql := "UPDATE " + TABLE_APPLY_DETAIL + " SET taskstatus = '" + strconv.Itoa(FAILED) + "' WHERE barcode IN (" + idsStr + ")" + " AND parentid = '" + strconv.Itoa(parentId) + "'"
|
|
|
this.DBE.Exec(updatesql)
|
|
|
}
|
|
|
|
|
|
//处理样本执行成功状态
|
|
|
-func (this *ConverseService)handleSampleSuccess(idsStr string, response string, applyMainId int ) {
|
|
|
- if strings.Contains(response,"_storing") {
|
|
|
+func (this *ConverseService) handleSampleSuccess(idsStr string, response string, applyMainId int) {
|
|
|
+ if strings.Contains(response, "_storing") {
|
|
|
this.sampleRKSuccessDBModify(idsStr, applyMainId)
|
|
|
- }else if strings.Contains(response,"_retrieving") {
|
|
|
+ } else if strings.Contains(response, "_retrieving") {
|
|
|
this.sampleCKSuccessDBModify(idsStr, applyMainId)
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//入库成功, 修改样本数据库状态信息
|
|
|
-func (this *ConverseService)sampleRKSuccessDBModify(idsStr string, parentId int) error{
|
|
|
+func (this *ConverseService) sampleRKSuccessDBModify(idsStr string, parentId int) error {
|
|
|
updatesql := "UPDATE " + TABLE_APPLY_DETAIL + " SET IsLocked = '" + STATUS_UNLOCK + "', taskstatus = '" + strconv.Itoa(SUCCESS) + "' WHERE barcode IN (" + idsStr + ")" + " AND parentid = '" + strconv.Itoa(parentId) + "'"
|
|
|
updatesql2 := "UPDATE " + TABLE_SAMPLE + " SET IsLocked = '" + STATUS_UNLOCK + "', IState = '" + RK_PASS + "' WHERE barcode IN (" + idsStr + ")"
|
|
|
- _,err := this.DBE.Exec(updatesql)
|
|
|
- _,err = this.DBE.Exec(updatesql2)
|
|
|
+ _, err := this.DBE.Exec(updatesql)
|
|
|
+ _, err = this.DBE.Exec(updatesql2)
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
//出库成功, 修改样本数据库状态信息
|
|
|
-func (this *ConverseService) sampleCKSuccessDBModify (idsStr string, parentId int) error{
|
|
|
+func (this *ConverseService) sampleCKSuccessDBModify(idsStr string, parentId int) error {
|
|
|
var list []Bank_Apply_Detail
|
|
|
var onHold []string
|
|
|
var done []string
|
|
|
err := this.DBE.Where("barcode IN (" + idsStr + ")").Find(&list)
|
|
|
for _, one := range list {
|
|
|
if strconv.Itoa(one.RecoveryId) == CK_PASS_ONHOLD {
|
|
|
- onHold = append(onHold,one.BarCode)
|
|
|
+ onHold = append(onHold, one.BarCode)
|
|
|
} else if strconv.Itoa(one.RecoveryId) == CK_PASS_DONE {
|
|
|
- done = append(done,one.BarCode)
|
|
|
+ done = append(done, one.BarCode)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- sql := "UPDATE " + TABLE_SAMPLE + " SET istate = '" + CK_PASS_ONHOLD + "', islocked = '" + STATUS_UNLOCK + "' WHERE barcode IN ('" + strings.Join(onHold,"','") + "')"
|
|
|
- sql2 := "UPDATE " + TABLE_SAMPLE + " SET istate = '" + CK_PASS_DONE + "', islocked = '" + STATUS_UNLOCK + "', equipmentid = '0', shelfid = '0',boxid= '0', position = '', positioninfo = '' WHERE barcode IN ('" + strings.Join(done,"','") + "')"
|
|
|
+ sql := "UPDATE " + TABLE_SAMPLE + " SET istate = '" + CK_PASS_ONHOLD + "', islocked = '" + STATUS_UNLOCK + "' WHERE barcode IN ('" + strings.Join(onHold, "','") + "')"
|
|
|
+ sql2 := "UPDATE " + TABLE_SAMPLE + " SET istate = '" + CK_PASS_DONE + "', islocked = '" + STATUS_UNLOCK + "', equipmentid = '0', shelfid = '0',boxid= '0', position = '', positioninfo = '' WHERE barcode IN ('" + strings.Join(done, "','") + "')"
|
|
|
sql3 := "UPDATE " + TABLE_APPLY_DETAIL + " SET IsLocked = '" + STATUS_UNLOCK + "', taskstatus = '" + strconv.Itoa(SUCCESS) + "' WHERE barcode IN (" + idsStr + ")" + " AND parentid = '" + strconv.Itoa(parentId) + "'"
|
|
|
- _,err = this.DBE.Exec(sql)
|
|
|
- _,err = this.DBE.Exec(sql2)
|
|
|
- _,err = this.DBE.Exec(sql3)
|
|
|
+ _, err = this.DBE.Exec(sql)
|
|
|
+ _, err = this.DBE.Exec(sql2)
|
|
|
+ _, err = this.DBE.Exec(sql3)
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
//获取出入库单信息
|
|
|
-func (this *ConverseService) GetApplyMain(entryNo string) Bank_Apply_Main{
|
|
|
+func (this *ConverseService) GetApplyMain(entryNo string) Bank_Apply_Main {
|
|
|
where := "entryNo = '" + entryNo + "'"
|
|
|
- var entity Bank_Apply_Main
|
|
|
+ var entity Bank_Apply_Main
|
|
|
this.GetEntity(&entity, where)
|
|
|
return entity
|
|
|
}
|
|
|
|
|
|
//根据出入库单信息判断任务信息, 并修改样本状态
|
|
|
-func (this *ConverseService) ModifySampleStatusByApplyMainInfo(entryNo string, resp string, entity ResponseEntity){
|
|
|
+func (this *ConverseService) ModifySampleStatusByApplyMainInfo(entryNo string, resp string, entity ResponseEntity) {
|
|
|
|
|
|
applyMain := this.GetApplyMain(entryNo)
|
|
|
- var operaIds,abnormalIds,taskType string
|
|
|
- if applyMain.ApplyType == TASK_TUBE_STORING && strings.Contains(resp,"_storing") {
|
|
|
+ var operaIds, abnormalIds, taskType string
|
|
|
+ if applyMain.ApplyType == TASK_TUBE_STORING && strings.Contains(resp, "_storing") {
|
|
|
taskType = "tube_storing"
|
|
|
- operaIds,abnormalIds = this.getOperaSampleIdsStr(applyMain.ApplyType,applyMain.Id,resp,entity)
|
|
|
- }else if applyMain.ApplyType == TASK_TUBE_RETREIVING && strings.Contains(resp,"_storing") {
|
|
|
+ operaIds, abnormalIds = this.getOperaSampleIdsStr(applyMain.ApplyType, applyMain.Id, resp, entity)
|
|
|
+ } else if applyMain.ApplyType == TASK_TUBE_RETREIVING && strings.Contains(resp, "_storing") {
|
|
|
//lite设备 部分管子出库
|
|
|
taskType = "tube_retrieving"
|
|
|
- operaIds,abnormalIds = this.getOperaSampleIdsStr(applyMain.ApplyType,applyMain.Id,resp,entity)
|
|
|
- }else if applyMain.ApplyType == TASK_TUBE_RETREIVING && resp == "rack_retrieving" && entity.Data.Is_end {
|
|
|
+ operaIds, abnormalIds = this.getOperaSampleIdsStr(applyMain.ApplyType, applyMain.Id, resp, entity)
|
|
|
+ } else if applyMain.ApplyType == TASK_TUBE_RETREIVING && resp == "rack_retrieving" && entity.Data.Is_end {
|
|
|
//lite设备 整盒出库
|
|
|
taskType = "tube_retrieving"
|
|
|
- operaIds,abnormalIds = this.getAllSampleIdsFromResEntity(entity)
|
|
|
- }else {
|
|
|
+ operaIds, abnormalIds = this.getAllSampleIdsFromResEntity(entity)
|
|
|
+ } else {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- this.handleSampleSuccess(operaIds,taskType,applyMain.Id)
|
|
|
+ this.handleSampleSuccess(operaIds, taskType, applyMain.Id)
|
|
|
if entity.Data.Type == "abnormal_end" {
|
|
|
- this.handleSampleFailed(abnormalIds,taskType, applyMain.Id)
|
|
|
+ this.handleSampleFailed(abnormalIds, taskType, applyMain.Id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//获取当前操作样本的id, 正常和异常的
|
|
|
-func (this *ConverseService) getOperaSampleIdsStr(applyType, parentId int, resp string, entity ResponseEntity) (actualIds string, abnormalIds string){
|
|
|
+func (this *ConverseService) getOperaSampleIdsStr(applyType, parentId int, resp string, entity ResponseEntity) (actualIds string, abnormalIds string) {
|
|
|
|
|
|
//获取出入库单中所有样本信息
|
|
|
var list []Bank_Apply_Detail
|
|
|
where := " parentid = '" + strconv.Itoa(parentId) + "'"
|
|
|
- this.GetEntitysByWhere(TABLE_DETAIL, where,&list)
|
|
|
+ this.GetEntitysByWhere(TABLE_DETAIL, where, &list)
|
|
|
var sampleIds []string
|
|
|
for _, detail := range list {
|
|
|
sampleIds = append(sampleIds, detail.BarCode)
|
|
|
@@ -561,14 +557,14 @@ func (this *ConverseService) getOperaSampleIdsStr(applyType, parentId int, resp
|
|
|
var actualTubeIds []string
|
|
|
for _, single := range entity.Data.Actual_data {
|
|
|
for _, tube := range single.Tubes {
|
|
|
- actualTubeIds = append(actualTubeIds,tube.Id)
|
|
|
+ actualTubeIds = append(actualTubeIds, tube.Id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//获取反馈报文中的所有异常样本Id列表
|
|
|
var abnormalTubeIds []string
|
|
|
for _, single := range entity.Data.Abnormal_data.Tubes {
|
|
|
- abnormalTubeIds = append(abnormalTubeIds,single.Id)
|
|
|
+ abnormalTubeIds = append(abnormalTubeIds, single.Id)
|
|
|
}
|
|
|
|
|
|
var operaTubeIds []string
|
|
|
@@ -577,15 +573,15 @@ func (this *ConverseService) getOperaSampleIdsStr(applyType, parentId int, resp
|
|
|
for _, sampleId := range sampleIds {
|
|
|
//操作成功样本Id
|
|
|
for _, tubeId := range actualTubeIds {
|
|
|
- if sampleId ==tubeId {
|
|
|
+ if sampleId == tubeId {
|
|
|
operaTubeIds = append(operaTubeIds, tubeId)
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//操作失败样本Id
|
|
|
- for _,tubeId := range abnormalTubeIds {
|
|
|
- if sampleId == tubeId{
|
|
|
+ for _, tubeId := range abnormalTubeIds {
|
|
|
+ if sampleId == tubeId {
|
|
|
failTubeIds = append(failTubeIds, tubeId)
|
|
|
break
|
|
|
}
|
|
|
@@ -604,8 +600,8 @@ func (this *ConverseService) getOperaSampleIdsStr(applyType, parentId int, resp
|
|
|
}
|
|
|
|
|
|
//操作失败样本Id
|
|
|
- for _,tubeId := range abnormalTubeIds {
|
|
|
- if sampleId == tubeId{
|
|
|
+ for _, tubeId := range abnormalTubeIds {
|
|
|
+ if sampleId == tubeId {
|
|
|
failTubeIds = append(failTubeIds, tubeId)
|
|
|
break
|
|
|
}
|
|
|
@@ -613,22 +609,21 @@ func (this *ConverseService) getOperaSampleIdsStr(applyType, parentId int, resp
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- actualIds = "'" + strings.Join(operaTubeIds,"','") + "'"
|
|
|
- abnormalIds = "'" + strings.Join(failTubeIds,",") + "'"
|
|
|
+ actualIds = "'" + strings.Join(operaTubeIds, "','") + "'"
|
|
|
+ abnormalIds = "'" + strings.Join(failTubeIds, ",") + "'"
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//当任务为rack_retrieving 且 end 时, 获取所有样本Ids
|
|
|
-func (this *ConverseService) getAllSampleIdsFromResEntity( entity ResponseEntity) (actualIds string, abnormalIds string){
|
|
|
+func (this *ConverseService) getAllSampleIdsFromResEntity(entity ResponseEntity) (actualIds string, abnormalIds string) {
|
|
|
//获取反馈报文中的所有成功样本Id列表
|
|
|
var actualTubeIds []string
|
|
|
for _, single := range entity.Data.Actual_data {
|
|
|
for _, tube := range single.Tubes {
|
|
|
- actualTubeIds = append(actualTubeIds,tube.Id)
|
|
|
+ actualTubeIds = append(actualTubeIds, tube.Id)
|
|
|
}
|
|
|
}
|
|
|
- actualIds = "'" + strings.Join(actualTubeIds,"','") + "'"
|
|
|
+ actualIds = "'" + strings.Join(actualTubeIds, "','") + "'"
|
|
|
abnormalIds = ""
|
|
|
return
|
|
|
}
|
|
|
@@ -715,16 +710,16 @@ func (this *ConverseService) getAllSampleIdsFromResEntity( entity ResponseEntity
|
|
|
//}
|
|
|
|
|
|
//保存异常信息
|
|
|
-func (this *ConverseService) SaveTaskExcepMsg(msg,taskId string) error{
|
|
|
- sql := "UPDATE " + TABLE_TAST+ " SET exception = '" + msg + "' WHERE task_id = '" + taskId + "'"
|
|
|
- _,err := this.DBE.Exec(sql)
|
|
|
+func (this *ConverseService) SaveTaskExcepMsg(msg, taskId string) error {
|
|
|
+ sql := "UPDATE " + TABLE_TAST + " SET exception = '" + msg + "' WHERE task_id = '" + taskId + "'"
|
|
|
+ _, err := this.DBE.Exec(sql)
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
//保存异常信息
|
|
|
-func (this *ConverseService) SaveSampleExcepMsg(msg,entryNo string) error{
|
|
|
- sql := "UPDATE " + TABLE_SAMPLE_APPLY+ " SET exception = '" + msg + "' WHERE entryno = '" + entryNo + "'"
|
|
|
- _,err := this.DBE.Exec(sql)
|
|
|
+func (this *ConverseService) SaveSampleExcepMsg(msg, entryNo string) error {
|
|
|
+ sql := "UPDATE " + TABLE_SAMPLE_APPLY + " SET exception = '" + msg + "' WHERE entryno = '" + entryNo + "'"
|
|
|
+ _, err := this.DBE.Exec(sql)
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
@@ -746,7 +741,7 @@ func (s *ConverseSessionService) InsertEntityBytbl(tablename string, entity inte
|
|
|
}
|
|
|
|
|
|
//获取设备名称
|
|
|
-func (s *ConverseService)GetEquipmentName(cu int) string {
|
|
|
+func (s *ConverseService) GetEquipmentName(cu int) string {
|
|
|
sql := "SELECT name from " + TABLE_EQUIPMENT + " where cu = '" + strconv.Itoa(cu) + "'"
|
|
|
var entity Equipment
|
|
|
s.DBE.SQL(sql).Get(&entity)
|
|
|
@@ -754,9 +749,9 @@ func (s *ConverseService)GetEquipmentName(cu int) string {
|
|
|
}
|
|
|
|
|
|
//异常信息转换
|
|
|
-func (s *ConverseService)HandleCauses (causes []Cause) string {
|
|
|
+func (s *ConverseService) HandleCauses(causes []Cause) string {
|
|
|
var exceptInfo string
|
|
|
- for _,cause := range causes {
|
|
|
+ for _, cause := range causes {
|
|
|
eName := s.GetEquipmentName(cause.Cu)
|
|
|
exceptInfo += s.GetReason(cause, eName)
|
|
|
}
|
|
|
@@ -764,7 +759,7 @@ func (s *ConverseService)HandleCauses (causes []Cause) string {
|
|
|
}
|
|
|
|
|
|
//根据异常码获取异常原因
|
|
|
-func (s *ConverseService)GetReason(cause Cause, equipmentName string) string{
|
|
|
+func (s *ConverseService) GetReason(cause Cause, equipmentName string) string {
|
|
|
var reasonStr string
|
|
|
switch cause.Reason {
|
|
|
case 1:
|
|
|
@@ -800,11 +795,11 @@ func (s *ConverseService)GetReason(cause Cause, equipmentName string) string{
|
|
|
}
|
|
|
|
|
|
//处理Exceptions异常信息
|
|
|
-func (s *ConverseService)HandleExceptions (excepts []Exception) string {
|
|
|
+func (s *ConverseService) HandleExceptions(excepts []Exception) string {
|
|
|
var exceptStr string
|
|
|
- for _,except := range excepts {
|
|
|
+ for _, except := range excepts {
|
|
|
eName := s.GetEquipmentName(except.Cu)
|
|
|
- for _,code := range except.Codes{
|
|
|
+ for _, code := range except.Codes {
|
|
|
//var tempStr = string(except.Cu)+"号设备," + eName + ","
|
|
|
var tempStr = "设备: " + eName + ","
|
|
|
switch code {
|
|
|
@@ -833,8 +828,8 @@ func (s *ConverseService)HandleExceptions (excepts []Exception) string {
|
|
|
}
|
|
|
|
|
|
//处理返回设备状态数据, 并存储到数据表里
|
|
|
-func RecordDeviceData(list []List_Data){
|
|
|
- t := time.Now()
|
|
|
+func RecordDeviceData(list []List_Data) {
|
|
|
+ t := time.Now()
|
|
|
var data []GenePoint_Device_Report_Data
|
|
|
for _, one := range list {
|
|
|
var piece GenePoint_Device_Report_Data
|
|
|
@@ -843,8 +838,8 @@ func RecordDeviceData(list []List_Data){
|
|
|
piece.Type = one.Type
|
|
|
piece.Value = one.Value
|
|
|
piece.RecordTime = t
|
|
|
- data = append(data,piece)
|
|
|
+ data = append(data, piece)
|
|
|
}
|
|
|
svc := GetConverseService(utils.DBE)
|
|
|
svc.InsertEntity(data)
|
|
|
-}
|
|
|
+}
|