Sfoglia il codice sorgente

event: 发情批量提交

Yi 4 mesi fa
parent
commit
f05a33f2bd

+ 1 - 1
go.mod

@@ -3,7 +3,7 @@ module kpt-pasture
 go 1.17
 
 require (
-	gitee.com/xuyiping_admin/go_proto v0.0.0-20241204031342-3f1a7bd2d670
+	gitee.com/xuyiping_admin/go_proto v0.0.0-20241204093501-8c0752b62fac
 	gitee.com/xuyiping_admin/pkg v0.0.0-20241108060137-caea58c59f5b
 	github.com/dgrijalva/jwt-go v3.2.0+incompatible
 	github.com/eclipse/paho.mqtt.golang v1.4.3

+ 3 - 0
go.sum

@@ -46,6 +46,9 @@ gitee.com/xuyiping_admin/go_proto v0.0.0-20241204021755-ac6c028d07a3 h1:05zSqGf+
 gitee.com/xuyiping_admin/go_proto v0.0.0-20241204021755-ac6c028d07a3/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
 gitee.com/xuyiping_admin/go_proto v0.0.0-20241204031342-3f1a7bd2d670 h1:cqwZ/W6yHEqymPrIPm9VNKvy9U/Mx6OT4B4axdBZ2ak=
 gitee.com/xuyiping_admin/go_proto v0.0.0-20241204031342-3f1a7bd2d670/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20241204093501-8c0752b62fac h1:J4ZtqdRLDnofNd4M1qfm3ZUFDxoAxaPXiNvB5YuUgXI=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20241204093501-8c0752b62fac/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20241204093535-10c3d976e5c7/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
 gitee.com/xuyiping_admin/pkg v0.0.0-20241108060137-caea58c59f5b h1:w05MxH7yqveRlaRbxHhbif5YjPrJFodRPfOjYhXn7Zk=
 gitee.com/xuyiping_admin/pkg v0.0.0-20241108060137-caea58c59f5b/go.mod h1:8tF25X6pE9WkFCczlNAC0K2mrjwKvhhp02I7o0HtDxY=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=

+ 17 - 0
http/handler/pasture/prescription.go

@@ -156,6 +156,23 @@ func CreatedOrUpdatePrescription(c *gin.Context) {
 	})
 }
 
+func PrescriptionDetail(c *gin.Context) {
+	idStr := c.Query("id")
+	id, _ := strconv.ParseInt(idStr, 10, 64)
+	if err := valid.Validate(id, valid.Required); err != nil {
+		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
+		return
+	}
+
+	res, err := middleware.BackendOperation(c).OpsService.PrescriptionDetail(c, id)
+	if err != nil {
+		apierr.ClassifiedAbort(c, err)
+		return
+	}
+
+	ginutil.JSONResp(c, res)
+}
+
 func SearchImmunizationList(c *gin.Context) {
 	var req pasturePb.ImmunizationRequest
 	if err := ginutil.BindProto(c, &req); err != nil {

+ 1 - 0
http/route/pasture_api.go

@@ -39,6 +39,7 @@ func PastureManageAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) {
 		// 处方相关
 		pastureRoute.POST("/prescription/list", pasture.SearchPrescriptionList)
 		pastureRoute.POST("/prescription/createOrUpdate", pasture.CreatedOrUpdatePrescription)
+		pastureRoute.GET("/prescription/detail/:id", pasture.PrescriptionDetail)
 
 		// 免疫计划相关
 		pastureRoute.POST("/immunization/plan/list", pasture.SearchImmunizationList)

+ 31 - 29
model/event_estrus.go

@@ -3,42 +3,44 @@ package model
 import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
 
 type EventEstrus struct {
-	Id                  int64                          `json:"id"`
-	CowId               int64                          `json:"cowId"`
-	DayAge              int32                          `json:"dayAge"`
-	Lact                int8                           `json:"lact"`
-	LactationDays       int32                          `json:"lactationDays"`
-	EstrusAt            int64                          `json:"estrusAt"`
-	UnMatingReasons     pasturePb.UnMatingReasons_Kind `json:"unMatingReasons"`
-	UnMatingReasonsName string                         `json:"unMatingReasonsName"`
-	IsMating            pasturePb.IsShow_Kind          `json:"isMating"`
-	Remarks             string                         `json:"remarks"`
-	OperationId         int64                          `json:"operationId"`
-	OperationName       string                         `json:"operationName"`
-	MessageId           int64                          `json:"messageId"`
-	MessageName         string                         `json:"messageName"`
-	CreatedAt           int64                          `json:"createdAt"`
-	UpdatedAt           int64                          `json:"updatedAt"`
+	Id                  int64                           `json:"id"`
+	CowId               int64                           `json:"cowId"`
+	DayAge              int32                           `json:"dayAge"`
+	Lact                int8                            `json:"lact"`
+	LactationDays       int32                           `json:"lactationDays"`
+	ExposeEstrusType    pasturePb.ExposeEstrusType_Kind `json:"exposeEstrusType"`
+	EstrusAt            int64                           `json:"estrusAt"`
+	UnMatingReasons     pasturePb.UnMatingReasons_Kind  `json:"unMatingReasons"`
+	UnMatingReasonsName string                          `json:"unMatingReasonsName"`
+	IsMating            pasturePb.IsShow_Kind           `json:"isMating"`
+	Remarks             string                          `json:"remarks"`
+	OperationId         int64                           `json:"operationId"`
+	OperationName       string                          `json:"operationName"`
+	MessageId           int64                           `json:"messageId"`
+	MessageName         string                          `json:"messageName"`
+	CreatedAt           int64                           `json:"createdAt"`
+	UpdatedAt           int64                           `json:"updatedAt"`
 }
 
 func (e *EventEstrus) TableName() string {
 	return "event_estrus"
 }
 
-func NewEventEstrus(cow *Cow, currentUser *SystemUser, operation *SystemUser, req *pasturePb.EventEstrus) *EventEstrus {
+func NewEventEstrus(exposeEstrusType pasturePb.ExposeEstrusType_Kind, cow *Cow, currentUser *SystemUser, operation *SystemUser, req *pasturePb.EventEstrus) *EventEstrus {
 	return &EventEstrus{
-		CowId:           cow.Id,
-		DayAge:          cow.GetDayAge(),
-		Lact:            int8(cow.Lact),
-		LactationDays:   cow.GetLactationDays(),
-		EstrusAt:        int64(req.EstrusAt),
-		Remarks:         req.Remarks,
-		IsMating:        req.IsMathing,
-		UnMatingReasons: req.UnMatingReasons,
-		MessageId:       currentUser.Id,
-		MessageName:     currentUser.Name,
-		OperationId:     operation.Id,
-		OperationName:   operation.Name,
+		CowId:            cow.Id,
+		DayAge:           cow.GetDayAge(),
+		Lact:             int8(cow.Lact),
+		LactationDays:    cow.GetLactationDays(),
+		EstrusAt:         int64(req.EstrusAt),
+		Remarks:          req.Remarks,
+		IsMating:         req.IsMathing,
+		UnMatingReasons:  req.UnMatingReasons,
+		MessageId:        currentUser.Id,
+		MessageName:      currentUser.Name,
+		OperationId:      operation.Id,
+		OperationName:    operation.Name,
+		ExposeEstrusType: exposeEstrusType,
 	}
 }
 

+ 1 - 0
model/neck_active_habit.go

@@ -78,5 +78,6 @@ func NewNeckActiveHabit(frameId int32, heatDate, neckRingNumber string, cow *Cow
 		Intake:         data.Intake,
 		Other:          data.Other,
 		Rumina:         data.Rumina,
+		IsMaxTime:      pasturePb.IsShow_Ok,
 	}
 }

+ 18 - 0
model/prescription_drugs.go

@@ -38,3 +38,21 @@ func NewPrescriptionDrugs(prescriptionId int32, list []*pasturePb.PrescriptionDr
 	}
 	return res
 }
+
+type PrescriptionDrugsSlice []*PrescriptionDrugs
+
+func (p PrescriptionDrugsSlice) ToPB() []*pasturePb.PrescriptionDrugsList {
+	res := make([]*pasturePb.PrescriptionDrugsList, len(p))
+	for i, v := range p {
+		res[i] = &pasturePb.PrescriptionDrugsList{
+			DrugsId:   int32(v.DrugsId),
+			DrugsName: v.DrugsName,
+			UseDays:   v.UseDays,
+			Dosages:   v.Dosages,
+			Unit:      v.Unit,
+			UnitName:  v.UnitName,
+			Specs:     v.Specs,
+		}
+	}
+	return res
+}

+ 1 - 1
module/backend/event_check.go

@@ -137,5 +137,5 @@ func (s *StoreEntry) EventEstrusCheck(ctx context.Context, req *pasturePb.EventE
 	if err != nil {
 		return nil, xerr.WithStack(err)
 	}
-	return model.NewEventEstrus(cow, currentUser, operationUser, req), nil
+	return model.NewEventEstrus(pasturePb.ExposeEstrusType_Natural_Estrus, cow, currentUser, operationUser, req), nil
 }

+ 1 - 0
module/backend/interface.go

@@ -123,6 +123,7 @@ type PastureManageService interface {
 
 	SearchPrescriptionList(ctx context.Context, req *pasturePb.SearchPrescriptionRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchPrescriptionResponse, error)
 	CreateOrUpdatePrescription(ctx context.Context, req *pasturePb.PrescriptionRequest) error
+	PrescriptionDetail(ctx context.Context, id int64) (*pasturePb.PrescriptionDetailResponse, error)
 
 	ImmunizationList(ctx context.Context, req *pasturePb.ImmunizationRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchImmunizationResponse, error)
 	CreatedOrUpdateImmunization(ctx context.Context, req *pasturePb.ImmunizationRequest) error

+ 25 - 0
module/backend/prescription.go

@@ -327,6 +327,31 @@ func (s *StoreEntry) CreateOrUpdatePrescription(ctx context.Context, req *pastur
 	return nil
 }
 
+func (s *StoreEntry) PrescriptionDetail(ctx context.Context, id int64) (*pasturePb.PrescriptionDetailResponse, error) {
+	prescriptionData, err := s.GetPrescriptionById(ctx, int32(id))
+	if err != nil {
+		return nil, xerr.WithStack(err)
+	}
+
+	prescriptionDrugsList, err := s.PrescriptionDrugsByPrescriptionId(ctx, int32(id))
+	if err != nil {
+		return nil, xerr.WithStack(err)
+	}
+
+	return &pasturePb.PrescriptionDetailResponse{
+		Code:    http.StatusOK,
+		Message: "ok",
+		Data: &pasturePb.PrescriptionRequest{
+			Id:                   prescriptionData.Id,
+			Name:                 prescriptionData.Name,
+			ApplicableDiseaseIds: make([]int32, 0),
+			IsShow:               0,
+			Remarks:              prescriptionData.Remarks,
+			DrugsList:            model.PrescriptionDrugsSlice(prescriptionDrugsList).ToPB(),
+		},
+	}, nil
+}
+
 func (s *StoreEntry) ImmunizationList(ctx context.Context, req *pasturePb.ImmunizationRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchImmunizationResponse, error) {
 	immunizationList := make([]*model.ImmunizationPlan, 0)
 	var count int64 = 0