From 8324f872ef3a4d0c978a9b1d062800c6a1701c12 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 01 十二月 2023 09:58:17 +0800
Subject: [PATCH] fix

---
 service/task.go |   44 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/service/task.go b/service/task.go
index 8f6388d..66bf691 100644
--- a/service/task.go
+++ b/service/task.go
@@ -9,6 +9,7 @@
 	"apsClient/model/response"
 	"apsClient/pkg/ecode"
 	"apsClient/pkg/logx"
+	"apsClient/pkg/timex"
 	"fmt"
 	"github.com/jinzhu/gorm"
 	"time"
@@ -22,7 +23,7 @@
 }
 
 // GetTask 鑾峰彇浠诲姟锛屾湭瀹屾垚鐨勫紑濮嬫椂闂村皬浜庣瓑浜庡綋鍓嶆椂闂达紝缁撴潫鏃堕棿澶т簬褰撳墠鏃堕棿鐨勪换鍔�
-func (slf TaskService) GetTask(page, pageSize int, mode constvar.TaskMode, channels []int32) (taskResp *response.TaskResponse, code int) {
+func (slf TaskService) GetTask(deviceID string, page, pageSize int, mode constvar.TaskMode, channels []int32) (taskResp *response.TaskResponse, code int) {
 	var taskList []*response.TaskData
 	var count int64
 	var workers []*common.ProcedureWorker
@@ -40,7 +41,7 @@
 		workOrderIds []string
 	)
 	search := model.NewProceduresSearch(nil).
-		SetDeviceId(conf.Conf.System.DeviceId).
+		SetDeviceId(deviceID).
 		SetPage(page, pageSize)
 
 	if mode == constvar.TaskModeUnStarted {
@@ -106,8 +107,8 @@
 	}
 	return taskResp, ecode.OK
 }
-func (slf TaskService) NewTaskCount() (count int64) {
-	count, _ = model.NewProceduresSearch(nil).SetDeviceId(conf.Conf.System.DeviceId).SetStatus(model.ProcedureStatusWaitProcess).Count()
+func (slf TaskService) NewTaskCount(deviceId string) (count int64) {
+	count, _ = model.NewProceduresSearch(nil).SetDeviceId(deviceId).SetStatus(model.ProcedureStatusWaitProcess).Count()
 	return count
 }
 
@@ -131,9 +132,21 @@
 	return procedure, ecode.OK
 }
 
+func (slf TaskService) GetProcedureAndWorkOrder(procedureId uint) (procedure *model.Procedures, workOrder *model.Order, err error) {
+	procedure, err = model.NewProceduresSearch(nil).SetId(procedureId).First()
+	if err != nil {
+		return nil, nil, err
+	}
+	workOrder, err = model.NewOrderSearch(nil).SetWorkOrderId(procedure.WorkOrderID).First()
+	if err != nil {
+		return nil, nil, err
+	}
+	return procedure, workOrder, nil
+}
+
 func (slf TaskService) UpdateProcedureStatusAndChannel(db *gorm.DB, id uint, status model.ProcedureStatus, channel int32, processModelNumber string) error {
 	if status == model.ProcedureStatusFinished || status == model.ProcedureStatusWaitProcess {
-		ProgressCacheUnset(channel)
+		ProgressCacheUnset(conf.Conf.CurrentDeviceID, channel)
 	}
 
 	upMap := map[string]interface{}{"status": status}
@@ -173,6 +186,9 @@
 		logx.Errorf("TaskStart GetProcessModel  err:%v", err)
 		return nil, err
 	}
+	if err == gorm.ErrRecordNotFound {
+		return nil, err
+	}
 	if err == nil {
 		return data, nil
 	}
@@ -190,12 +206,20 @@
 
 // SaveTaskStatusSync 淇濆瓨浠诲姟鍚屾淇℃伅
 func (slf TaskService) SaveTaskStatusSync(db *gorm.DB, record *model.TaskStatusSync) (err error) {
+	if record.IsProcessing {
+		record.StartTs = time.Now().Unix()
+	}
+	if record.IsFinish {
+		record.FinishTs = time.Now().Unix()
+		startedRecord, _ := model.NewTaskStatusSyncSearch(db).SetProductProcedureId(record.ProductProcedureID).SetWorkOrderId(record.WorkOrderId).First()
+		record.StartTs = startedRecord.StartTs
+	}
 	return model.NewTaskStatusSyncSearch(db).Create(record)
 }
 
 // GetTaskStatusSync 鑾峰彇寰呭悓姝ヤ换鍔′俊鎭�
 func (slf TaskService) GetTaskStatusSync(limit int) ([]*model.TaskStatusSync, error) {
-	return model.NewTaskStatusSyncSearch(nil).SetOrder("id desc").SetPage(1, limit).FindNotTotal()
+	return model.NewTaskStatusSyncSearch(nil).SetOrder("id asc").SetPage(1, limit).FindNotTotal()
 }
 
 // RemoveTaskStatusSync 鍒犻櫎鍚屾瀹岀殑璁板綍
@@ -204,7 +228,7 @@
 }
 
 // GetTask2 鑾峰彇浠诲姟鍒楄〃2
-func (slf TaskService) GetTask2(offset, limit int, channels []int32, queryType request.QueryType) (taskResp *response.TaskResponse, err error) {
+func (slf TaskService) GetTask2(deviceID string, offset, limit int, channels []int32, queryType request.QueryType) (taskResp *response.TaskResponse, err error) {
 	var taskList []*response.TaskData
 	var count int64
 	var workers []*common.ProcedureWorker
@@ -221,14 +245,14 @@
 		workOrderIds []string
 	)
 	search := model.NewProceduresSearch(nil).
-		SetDeviceId(conf.Conf.System.DeviceId).
+		SetDeviceId(deviceID).
 		SetOffset(offset, limit).SetChannels(channels)
-	nowTs := time.Now().Unix()
+	todayStartTs := timex.TodayStartTs()
 	switch queryType {
 	case request.QueryTypeUnFinish:
 		search.SetStatusNot(model.ProcedureStatusFinished).SetOrder("status desc, start_time asc")
 	case request.QueryTypeToday:
-		search.SetStatusNot(model.ProcedureStatusFinished).SetStartTimeMin(nowTs).SetEndTimeMax(nowTs + 86400).SetOrder("status desc, start_time asc")
+		search.SetStatusNot(model.ProcedureStatusFinished).SetStartTimeMin(todayStartTs).SetEndTimeMax(todayStartTs + 86400).SetOrder("status desc, start_time asc")
 	case request.QueryTypeFinished:
 		search.SetStatus(model.ProcedureStatusFinished).SetOrder("start_time desc")
 	}

--
Gitblit v1.8.0