From 28addaa46cb97c20ad37e13eb10535de7b75e71c Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 29 十一月 2023 19:29:43 +0800 Subject: [PATCH] 首次报工开始时间为工序开始时间 --- service/progress.go | 58 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 42 insertions(+), 16 deletions(-) diff --git a/service/progress.go b/service/progress.go index 2e7bc07..4205413 100644 --- a/service/progress.go +++ b/service/progress.go @@ -1,7 +1,6 @@ package service import ( - "apsClient/conf" "apsClient/model" "errors" "github.com/jinzhu/gorm" @@ -15,28 +14,31 @@ } func (slf ProgressService) Add(db *gorm.DB, procedure *model.Procedures, order *model.Order) error { - _, err := model.NewProductionProgressSearch(db).SetProcedureId(procedure.ProcedureID).SetWorkOrderId(procedure.WorkOrderID).First() + _, err := model.NewProductionProgressSearch(db).SetProceduresId(procedure.ID).First() if err == gorm.ErrRecordNotFound { progress := &model.ProductionProgress{ - WorkOrderID: procedure.WorkOrderID, - OrderID: procedure.OrderID, - ProcedureID: procedure.ProceduresInfo.ProcedureID, - DeviceID: procedure.DeviceID, - TotalQuantity: order.Amount.IntPart(), - Channel: procedure.Channel, + ProceduresID: procedure.ID, + WorkOrderID: procedure.WorkOrderID, + OrderID: procedure.OrderID, + ProcedureID: procedure.ProceduresInfo.ProcedureID, + ProductProcedureID: procedure.ProductProcedureID, + DeviceID: procedure.DeviceID, + TotalQuantity: order.Amount.IntPart(), + Channel: procedure.Channel, } err := model.NewProductionProgressSearch(db).Create(progress) if err != nil { return err } - ProgressCacheSet(procedure.Channel, progress) + ProgressCacheSet(procedure.DeviceID, procedure.Channel, progress) } return nil } -func (slf ProgressService) UpdateProgress(channel int32, finishedQuantity int64) (err error) { - progressCache, err := slf.GetCurrentProgress(channel) +// UpdateProgress 浠呴檺plc鏁版嵁閲囬泦瀹氭椂浠诲姟鐢�(缂哄皯宸ュ簭id鍙傛暟) +func (slf ProgressService) UpdateProgress(deviceID string, channel int32, finishedQuantity int64) (err error) { + progressCache, err := slf.GetCurrentProgress(deviceID, channel) if err != nil { return err } @@ -45,17 +47,18 @@ } if finishedQuantity > progressCache.FinishedQuantity { //褰撴湁鍙樺寲鏃舵墠鏇存柊 progressCache.FinishedQuantity = finishedQuantity - ProgressCacheSet(channel, progressCache) + ProgressCacheSet(deviceID, channel, progressCache) return model.NewProductionProgressSearch(nil).SetId(progressCache.ID).Save(progressCache) } return nil } -func (slf ProgressService) GetCurrentProgress(channel int32) (progressCache *model.ProductionProgress, err error) { +// GetCurrentProgress 浠呴檺plc鏁版嵁閲囬泦瀹氭椂浠诲姟鐢�(缂哄皯宸ュ簭id鍙傛暟) +func (slf ProgressService) GetCurrentProgress(deviceID string, channel int32) (progressCache *model.ProductionProgress, err error) { var ok bool - progressCache, ok = ProgressCacheGet(channel) + progressCache, ok = ProgressCacheGet(deviceID, channel) if !ok { - progressCache, err = model.NewProductionProgressSearch(nil).SetDeviceId(conf.Conf.CurrentDeviceID).SetChannel(channel).SetOrder("id desc").First() + progressCache, err = model.NewProductionProgressSearch(nil).SetDeviceId(deviceID).SetChannel(channel).SetOrder("id asc").First() if err == gorm.ErrRecordNotFound { return nil, errors.New("progress not found") } @@ -67,12 +70,35 @@ progressCache = nil } if progressCache != nil { - ProgressCacheSet(channel, progressCache) + ProgressCacheSet(deviceID, channel, progressCache) } } return } +func (slf ProgressService) UpdateProgressByProceduresId(proceduresId uint, finishedQuantity int64) (err error) { + progress, err := slf.GetCurrentProgressByProceduresId(proceduresId) + if err != nil { + return err + } + if progress == nil { + return errors.New("progress not exists") + } + if finishedQuantity > progress.FinishedQuantity { //褰撴湁鍙樺寲鏃舵墠鏇存柊 + progress.FinishedQuantity = finishedQuantity + return model.NewProductionProgressSearch(nil).SetId(progress.ID).Save(progress) + } + return nil +} + +func (slf ProgressService) GetCurrentProgressByProceduresId(proceduresId uint) (progress *model.ProductionProgress, err error) { + progress, err = model.NewProductionProgressSearch(nil).SetProceduresId(proceduresId).First() + if err != nil { + return nil, err + } + return +} + // GetProgressList 鑾峰彇寰呭悓姝ヨ繘搴﹀伐搴� func (slf ProgressService) GetProgressList() (progressList []*model.ProductionProgress, err error) { progressList, err = model.NewProductionProgressSearch(nil).SetUnFinished().SetOrder("id desc").SetPage(1, 100).FindNotTotal() -- Gitblit v1.8.0