| | |
| | | "encoding/json" |
| | | "errors" |
| | | "github.com/jinzhu/gorm" |
| | | "github.com/spf13/cast" |
| | | "time" |
| | | ) |
| | | |
| | |
| | | for _, worker := range procedure.ProceduresInfo.Workers { |
| | | if params.WorkerID == worker.WorkerID { |
| | | workerName = worker.WorkerName |
| | | if worker.StartTime < nowTs { |
| | | startTs = worker.StartTime |
| | | } |
| | | } |
| | | } |
| | | if workerName == "" { |
| | | return errors.New("没有找到当前值班人员") |
| | | } |
| | | if startTs == 0 { |
| | | return errors.New("没有找到当前值班人员开始时间") |
| | | } |
| | | |
| | | finishAmount := params.ReportAmount |
| | | lastReportWork, err := GetLastReportWork(params.ProcedureId) |
| | | if err == nil { |
| | |
| | | } |
| | | finishAmount = params.ReportAmount - lastReportWork.ReportAmount |
| | | startTs = lastReportWork.EndTime |
| | | } else { |
| | | startTs = procedure.RealStartTime |
| | | } |
| | | |
| | | record := &model.ReportWork{ |
| | |
| | | WorkerID: params.WorkerID, |
| | | WorkerName: workerName, |
| | | WorkerTime: nowTs - startTs, |
| | | BarCode: snowflake.GenerateIdStr(), |
| | | BarCode: cast.ToString(snowflake.GenerateID()), |
| | | } |
| | | err = model.WithTransaction(func(db *gorm.DB) error { |
| | | err = model.NewReportWorkSearch(nil).Create(record) |
| | | err = model.NewReportWorkSearch(db).Create(record) |
| | | if err != nil { |
| | | return err |
| | | } |
| | |
| | | if err != nil { |
| | | return err |
| | | } |
| | | err = model.NewReportsToCloudSearch(nil).Create(&model.ReportsToCloud{ |
| | | err = model.NewReportsToCloudSearch(db).Create(&model.ReportsToCloud{ |
| | | ReportType: constvar.ReportTypeReportWork, |
| | | Content: string(content), |
| | | }) |
| | | return err |
| | | if err != nil { |
| | | return err |
| | | } |
| | | |
| | | return nil |
| | | }) |
| | | if err != nil { |
| | | logx.Errorf("save report work transaction error: %v", err) |
| | | return err |
| | | } |
| | | |
| | | PlcCacheSet(conf.Conf.CurrentDeviceID, procedure.Channel, constvar.PlcCacheKeyFinishNumber, params.ReportAmount) |
| | | err = NewProgressService().UpdateProgressByProceduresId(procedure.ID, params.ReportAmount) |
| | | |
| | | return nil |
| | | } |
| | | |