123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package asynq
- import (
- "context"
- "encoding/json"
- "errors"
- "kpt-pasture/model"
- "kpt-pasture/util"
- pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
- "gorm.io/gorm"
- "gitee.com/xuyiping_admin/pkg/logger/zaplog"
- "gitee.com/xuyiping_admin/pkg/xerr"
- "go.uber.org/zap"
- "github.com/hibiken/asynq"
- )
- // DayWorkOrder 每天工单
- func (entry *Entry) DayWorkOrder(ctx context.Context, t *asynq.Task) error {
- var req model.TaskWorkOrderPayload
- if err := json.Unmarshal(t.Payload(), &req); err != nil {
- zaplog.Error("consumer", zap.Any("mark", "DayWorkOrder"), zap.Any("unmarshal", err))
- return xerr.WithStack(err)
- }
- workOrder := &model.WorkOrderMaster{}
- if err := entry.DB.Where("id = ?", req.WorkOrderId).First(workOrder).Error; err != nil {
- zaplog.Error("consumer", zap.Any("mark", "DayWorkOrder"), zap.Any("WorkOrderMaster", err))
- return xerr.WithStack(err)
- }
- localExecTime, _ := util.ConvertParseLocalUnix(workOrder.ExecTime)
- workOrderSubList := make([]*model.WorkOrderSub, 0)
- if err := entry.DB.Where("is_show = ?", pasturePb.IsShow_Ok).
- Where("work_order_master_id = ?", req.WorkOrderId).
- Where("exec_time = ?", localExecTime).
- Find(&workOrderSubList).Error; err != nil {
- if !errors.Is(err, gorm.ErrRecordNotFound) {
- zaplog.Error("consumer", zap.Any("mark", "DayWorkOrder"), zap.Any("WorkOrderSub", err))
- return xerr.WithStack(err)
- }
- }
- if len(workOrderSubList) > 0 {
- return nil
- }
- workOrderSubList = model.NewWorkOrderSub(workOrder)
- if err := entry.DB.Create(workOrderSubList).Error; err != nil {
- zaplog.Error("consumer", zap.Any("mark", "DayWorkOrder"), zap.Any("NewWorkOrderSub", err))
- }
- zaplog.Info("consumer", zap.Any("DayWorkOrder", "success"))
- return nil
- }
|