| | |
| | | return err |
| | | } |
| | | record := model.TaskStatusSync{ |
| | | WorkOrderId: procedure.WorkOrderID, |
| | | ProcedureID: procedure.ProcedureID, |
| | | DeviceId: procedure.DeviceID, |
| | | IsProcessing: false, |
| | | IsFinish: true, |
| | | WorkOrderId: procedure.WorkOrderID, |
| | | ProcedureID: procedure.ProcedureID, |
| | | DeviceId: procedure.DeviceID, |
| | | ProductProcedureID: procedure.ProductProcedureID, |
| | | IsProcessing: false, |
| | | IsFinish: true, |
| | | } |
| | | return service.NewTaskService().SaveTaskStatusSync(db, &record) |
| | | }) |
| | |
| | | return err |
| | | } |
| | | record := model.TaskStatusSync{ |
| | | WorkOrderId: procedure.WorkOrderID, |
| | | ProcedureID: procedure.ProcedureID, |
| | | DeviceId: procedure.DeviceID, |
| | | IsProcessing: true, |
| | | IsFinish: false, |
| | | WorkOrderId: procedure.WorkOrderID, |
| | | ProcedureID: procedure.ProcedureID, |
| | | DeviceId: procedure.DeviceID, |
| | | ProductProcedureID: procedure.ProductProcedureID, |
| | | IsProcessing: true, |
| | | IsFinish: false, |
| | | } |
| | | return service.NewTaskService().SaveTaskStatusSync(db, &record) |
| | | }) |
| | |
| | | for _, record := range records { |
| | | var finishAmount int |
| | | if record.IsFinish { |
| | | progress, err := model.NewProductionProgressSearch(nil).SetProcedureId(record.ProcedureID).First() |
| | | progress, err := model.NewProductionProgressSearch(nil).SetWorkOrderId(record.WorkOrderId).SetProductProcedureId(record.ProductProcedureID).First() |
| | | if err == nil { |
| | | finishAmount = int(progress.FinishedQuantity) |
| | | } |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProductionProgressSearch) SetProductProcedureId(productProcedureId string) *ProductionProgressSearch { |
| | | slf.ProductProcedureID = productProcedureId |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProductionProgressSearch) SetId(id uint) *ProductionProgressSearch { |
| | | slf.ID = id |
| | | return slf |
| | |
| | | db = db.Where("finished_quantity < total_quantity") |
| | | } |
| | | |
| | | if slf.ProductProcedureID != "" { |
| | | db = db.Where("product_procedure_id = ?", slf.ProductProcedureID) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |
| | |
| | | // TaskStatusSync 任务状态同步 |
| | | TaskStatusSync struct { |
| | | gorm.Model |
| | | WorkOrderId string `json:"workOrderId"` //工单编号 |
| | | ProcedureID string `json:"procedureId"` // 工序编号 |
| | | DeviceId string `json:"deviceId"` //设备编号 |
| | | IsProcessing bool //是否处理中 |
| | | IsFinish bool //是否完成 |
| | | 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 //是否完成 |
| | | } |
| | | |
| | | TaskStatusSyncSearch struct { |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *TaskStatusSyncSearch) SetProductProcedureId(productProcedureId string) *TaskStatusSyncSearch { |
| | | slf.ProductProcedureID = productProcedureId |
| | | return slf |
| | | } |
| | | |
| | | func (slf *TaskStatusSyncSearch) SetIDs(ids []uint) *TaskStatusSyncSearch { |
| | | slf.IDs = ids |
| | | return slf |
| | |
| | | db = db.Where("id = ?", slf.ID) |
| | | } |
| | | |
| | | if slf.ProductProcedureID != "" { |
| | | db = db.Where("product_procedure_id = ?", slf.ProductProcedureID) |
| | | } |
| | | |
| | | if len(slf.IDs) != 0 { |
| | | db = db.Where("id in (?)", slf.IDs) |
| | | } |
| | |
| | | BarCode: snowflake.GenerateIdStr(), |
| | | } |
| | | 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 |
| | | } |
| | | _ = NewProgressService().UpdateProgressByProceduresId(procedure.ID, int64(params.ReportAmount)) |
| | | |
| | | err = NewProgressService().UpdateProgressByProceduresId(procedure.ID, int64(params.ReportAmount)) |
| | | |
| | | return nil |
| | | } |
| | | |