Bläddra i källkod

crontab: update same time1

ping 8 månader sedan
förälder
incheckning
5d64857aca
6 ändrade filer med 82 tillägg och 4 borttagningar
  1. 1 1
      go.mod
  2. 2 0
      go.sum
  3. 23 0
      model/event_abortion.go
  4. 22 0
      model/same_time_cow_detail.go
  5. 32 1
      module/backend/calendar.go
  6. 2 2
      module/crontab/cow_cron.go

+ 1 - 1
go.mod

@@ -3,7 +3,7 @@ module kpt-pasture
 go 1.17
 
 require (
-	gitee.com/xuyiping_admin/go_proto v0.0.0-20240914085632-2dbb719d5eb9
+	gitee.com/xuyiping_admin/go_proto v0.0.0-20240916154658-fd81c51d9378
 	gitee.com/xuyiping_admin/pkg v0.0.0-20231218082641-aac597b8a015
 	github.com/dgrijalva/jwt-go v3.2.0+incompatible
 	github.com/eko/gocache v1.1.0

+ 2 - 0
go.sum

@@ -84,6 +84,8 @@ gitee.com/xuyiping_admin/go_proto v0.0.0-20240913094501-2c3f16e7b53a h1:piTgQ0Z1
 gitee.com/xuyiping_admin/go_proto v0.0.0-20240913094501-2c3f16e7b53a/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
 gitee.com/xuyiping_admin/go_proto v0.0.0-20240914085632-2dbb719d5eb9 h1:/irLE00XZY5K9/FryWMEDlPnwDSEn8y4jQn/bepnCQ0=
 gitee.com/xuyiping_admin/go_proto v0.0.0-20240914085632-2dbb719d5eb9/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20240916154658-fd81c51d9378 h1:60W1C1tbo3bdQJ9WNmBhbPt9hgXZ5lf9Lb7/+6B1+hs=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20240916154658-fd81c51d9378/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
 gitee.com/xuyiping_admin/pkg v0.0.0-20231218082641-aac597b8a015 h1:dfb5dRd57L2HKjdwLT93UFmPYFPOmEl56gtZmqcNnaE=
 gitee.com/xuyiping_admin/pkg v0.0.0-20231218082641-aac597b8a015/go.mod h1:Fk4GYI/v0IK3XFrm1Gn+VkgCz5Y7mfswD5hsTJYOG6A=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=

+ 23 - 0
model/event_abortion.go

@@ -0,0 +1,23 @@
+package model
+
+import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
+
+type EventAbortion struct {
+	Id                  int64                          `json:"id"`
+	CowId               int64                          `json:"cowId"`
+	Lact                int32                          `json:"lact"`
+	AbortionAt          int64                          `json:"abortionAt"`
+	IsAfterbirth        pasturePb.IsShow_Kind          `json:"isAfterbirth"`
+	Photos              string                         `json:"photos"`
+	AbortionReasons     pasturePb.AbortionReasons_Kind `json:"abortionReasons"`
+	AbortionReasonsName string                         `json:"abortionReasonsName"`
+	Remarks             string                         `json:"remarks"`
+	OperationId         int64                          `json:"operationId"`
+	OperationName       string                         `json:"operationName"`
+	CreatedAt           int64                          `json:"createdAt"`
+	UpdatedAt           int64                          `json:"updatedAt"`
+}
+
+func (e *EventAbortion) TableName() string {
+	return "event_abortion"
+}

+ 22 - 0
model/same_time_cow_list.go → model/same_time_cow_detail.go

@@ -71,3 +71,25 @@ type SameTimeBody struct {
 	Status      pasturePb.IsShow_Kind      `json:"status"`
 	ExecType    string                     `json:"execType"` // todo 执行类型定义成枚举???
 }
+
+type SameTimeCowDetailSlice []*SameTimeCowDetail
+
+// ToPB  todo SameTimeCowDetailSlice
+func (s SameTimeCowDetailSlice) ToPB() []*SameTimeBody {
+	res := make([]*SameTimeBody, len(s))
+	for i, v := range s {
+		res[i] = &SameTimeBody{
+			Id:          v.Id,
+			CowId:       v.CowId,
+			BreedStatus: 0,
+			PenName:     "",
+			Lact:        v.Lact,
+			CalvingAge:  0,
+			AbortionAge: 0,
+			DayAge:      0,
+			Status:      v.Status,
+			ExecType:    "",
+		}
+	}
+	return res
+}

+ 32 - 1
module/backend/calendar.go

@@ -111,7 +111,38 @@ func (s *StoreEntry) ImmunisationCowList(ctx context.Context, dateTime string, p
 }
 
 func (s *StoreEntry) PGCowList(ctx context.Context, dateTime string, pagination *pasturePb.PaginationModel) (*model.CalendarResponse, error) {
-	return nil, nil
+	sameTimeCowDetailList := make([]*model.SameTimeCowDetail, 0)
+	count := int64(0)
+	if err := s.DB.Model(&model.SameTimeCowDetail{}).
+		Where("plan_start_time <= ?", dateTime).
+		Where("status = ?", pasturePb.IsShow_No).
+		Order("id desc").Count(&count).Limit(int(pagination.PageSize)).Offset(int(pagination.PageOffset)).
+		Find(&sameTimeCowDetailList).Error; err != nil {
+		return nil, xerr.WithStack(err)
+	}
+
+	return &model.CalendarResponse{
+		Code:    http.StatusOK,
+		Message: "ok",
+		Data: &model.CalendarData{
+			Total:    int32(count),
+			Page:     pagination.Page,
+			PageSize: pagination.PageSize,
+			Header: model.SameTimeHeader{
+				Id:          "id",
+				CowId:       "cowId",
+				BreedStatus: "breedStatus",
+				PenName:     "penName",
+				Lact:        "lact",
+				CalvingAge:  "calvingAge",
+				AbortionAge: "abortionAge",
+				DayAge:      "dayAge",
+				Status:      "status",
+				ExecType:    "execType",
+			},
+			List: model.SameTimeCowDetailSlice(sameTimeCowDetailList).ToPB(),
+		},
+	}, nil
 }
 
 func (s *StoreEntry) RnGHCowList(ctx context.Context, dateTime string, pagination *pasturePb.PaginationModel) (*model.CalendarResponse, error) {

+ 2 - 2
module/crontab/cow_cron.go

@@ -223,11 +223,11 @@ func (e *Entry) UpdateSameTime() error {
 	calendarTypeList := backend.CalendarTypeEnumList()
 	showDay := time.Now().Format(model.LayoutDate2)
 	for _, v := range calendarTypeList {
-		var count int64 = 0
+		count := int64(0)
 		if err := e.DB.Model(new(model.SameTimeCowDetail)).
 			Where("same_time_type = ?", v.Value).
 			Where("status = ?", pasturePb.IsShow_No).
-			Find(&count); err != nil {
+			Count(&count); err != nil {
 			zaplog.Error("crontab", zap.Any("UpdateSameTime", err))
 		}
 		if count >= 0 {