zhangqian
2023-12-07 f0650a3cfc0da9941fdfddfcf89110d5985ae87b
同步完工序状态后不再删除,增加同步状态
4个文件已修改
46 ■■■■ 已修改文件
constvar/const.go 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
crontask/cron_task.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/task_status_sync.go 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/task.go 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
constvar/const.go
@@ -136,3 +136,10 @@
    ReportTypeSystemDeviceID ReportType = 1
    ReportTypeReportWork     ReportType = 2
)
type SyncStatus int //同步状态
const (
    SyncStatusWait SyncStatus = 1 //待同步
    SyncStatusOk   SyncStatus = 2 //已完成
)
crontask/cron_task.go
@@ -135,7 +135,7 @@
        syncOkIds = append(syncOkIds, record.ID)
    }
    if len(syncOkIds) > 0 {
        err = service.NewTaskService().RemoveTaskStatusSync(syncOkIds)
        err = service.NewTaskService().FinishTaskStatusSync(syncOkIds)
        if err != nil {
            logx.Errorf("sync task status delete sync ok records error:%v", err)
        }
model/task_status_sync.go
@@ -1,6 +1,7 @@
package model
import (
    "apsClient/constvar"
    "apsClient/pkg/sqlitex"
    "fmt"
    "github.com/jinzhu/gorm"
@@ -10,15 +11,16 @@
    // TaskStatusSync 任务状态同步
    TaskStatusSync struct {
        gorm.Model
        WorkOrderId        string `json:"workOrderId"`                                  //工单编号
        ProductProcedureID string `gorm:"type:varchar(191);" json:"productProcedureID"` //产品工序id
        ProcedureID        string `json:"procedureId"`                                  // 工序编号
        DeviceId           string `json:"deviceId"`                                     //设备编号
        IsProcessing       bool   //是否处理中
        IsFinish           bool   //是否完成
        StartTs            int64  `json:"start_ts"`  //开始时间
        FinishTs           int64  `json:"finish_ts"` //结束时间
        FinishedQuantity   int    `json:"finishedQuantity"`
        WorkOrderId        string              `json:"workOrderId"`                                  //工单编号
        ProductProcedureID string              `gorm:"type:varchar(191);" json:"productProcedureID"` //产品工序id
        ProcedureID        string              `json:"procedureId"`                                  // 工序编号
        DeviceId           string              `json:"deviceId"`                                     //设备编号
        IsProcessing       bool                //是否处理中
        IsFinish           bool                //是否完成
        StartTs            int64               `json:"start_ts"`  //开始时间
        FinishTs           int64               `json:"finish_ts"` //结束时间
        FinishedQuantity   int                 `json:"finishedQuantity"`
        SyncStatus         constvar.SyncStatus `json:"-"`
    }
    TaskStatusSyncSearch struct {
@@ -28,6 +30,7 @@
        PageSize int
        Orm      *gorm.DB
        IDs      []uint
        SyncWait bool
    }
)
@@ -77,6 +80,11 @@
    return slf
}
func (slf *TaskStatusSyncSearch) SetSyncWait() *TaskStatusSyncSearch {
    slf.SyncWait = true
    return slf
}
func (slf *TaskStatusSyncSearch) build() *gorm.DB {
    var db = slf.Orm.Table(slf.TableName())
@@ -100,6 +108,10 @@
        db = db.Where("work_order_id = ?", slf.WorkOrderId)
    }
    if slf.SyncWait {
        db = db.Where("sync_status != ?", constvar.SyncStatusOk)
    }
    return db
}
service/task.go
@@ -219,7 +219,7 @@
// GetTaskStatusSync 获取待同步任务信息
func (slf TaskService) GetTaskStatusSync(limit int) ([]*model.TaskStatusSync, error) {
    return model.NewTaskStatusSyncSearch(nil).SetOrder("id asc").SetPage(1, limit).FindNotTotal()
    return model.NewTaskStatusSyncSearch(nil).SetOrder("id asc").SetSyncWait().SetPage(1, limit).FindNotTotal()
}
// RemoveTaskStatusSync 删除同步完的记录
@@ -227,6 +227,11 @@
    return model.NewTaskStatusSyncSearch(nil).SetIDs(ids).Delete()
}
// FinishTaskStatusSync 设置已同步完成
func (slf TaskService) FinishTaskStatusSync(ids []uint) (err error) {
    return model.NewTaskStatusSyncSearch(nil).SetIDs(ids).UpdateByMap(map[string]interface{}{"sync_status": constvar.SyncStatusOk})
}
// GetTask2 获取任务列表2
func (slf TaskService) GetTask2(deviceID string, offset, limit int, channels []int32, queryType request.QueryType) (taskResp *response.TaskResponse, err error) {
    var taskList []*response.TaskData