Browse Source

goods: 冻精业务调整

Yi 4 months ago
parent
commit
a3415fc780

+ 0 - 53
http/handler/event/event_breed.go

@@ -222,59 +222,6 @@ func EstrusCreate(c *gin.Context) {
 		Data: &operationPb.Success{Success: true},
 	})
 }
-
-func FrozenSemeList(c *gin.Context) {
-	var req pasturePb.FrozenSemenRequest
-	if err := ginutil.BindProto(c, &req); err != nil {
-		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
-		return
-	}
-
-	pagination := &pasturePb.PaginationModel{
-		Page:       int32(c.GetInt(middleware.Page)),
-		PageSize:   int32(c.GetInt(middleware.PageSize)),
-		PageOffset: int32(c.GetInt(middleware.PageOffset)),
-	}
-
-	res, err := middleware.Dependency(c).StoreEventHub.OpsService.FrozenSemenList(c, &req, pagination)
-	if err != nil {
-		apierr.ClassifiedAbort(c, err)
-		return
-	}
-	ginutil.JSONResp(c, res)
-}
-
-// FrozenSemeCreate 冻精
-func FrozenSemeCreate(c *gin.Context) {
-	var req pasturePb.SearchFrozenSemenList
-	if err := ginutil.BindProto(c, &req); err != nil {
-		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
-		return
-	}
-
-	if err := valid.ValidateStruct(&req,
-		valid.Field(&req.BullId, valid.Required),
-		valid.Field(&req.Producer, valid.Required),
-		valid.Field(&req.Quantity, valid.Required),
-		valid.Field(&req.Unit, valid.Required),
-		valid.Field(&req.FrozenSemenType, valid.Required),
-	); err != nil {
-		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
-		return
-	}
-
-	if err := middleware.BackendOperation(c).OpsService.FrozenSemenCreate(c, &req); err != nil {
-		apierr.ClassifiedAbort(c, err)
-		return
-	}
-
-	ginutil.JSONResp(c, &operationPb.CommonOK{
-		Code: http.StatusOK,
-		Msg:  "ok",
-		Data: &operationPb.Success{Success: true},
-	})
-}
-
 func SameTimeCreate(c *gin.Context) {
 	var req pasturePb.EventSameTime
 	if err := ginutil.BindProto(c, &req); err != nil {

+ 52 - 0
http/handler/goods/outbound.go

@@ -104,3 +104,55 @@ func OutboundDetail(c *gin.Context) {
 
 	ginutil.JSONResp(c, res)
 }
+
+func FrozenSemeList(c *gin.Context) {
+	var req pasturePb.FrozenSemenRequest
+	if err := ginutil.BindProto(c, &req); err != nil {
+		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
+		return
+	}
+
+	pagination := &pasturePb.PaginationModel{
+		Page:       int32(c.GetInt(middleware.Page)),
+		PageSize:   int32(c.GetInt(middleware.PageSize)),
+		PageOffset: int32(c.GetInt(middleware.PageOffset)),
+	}
+
+	res, err := middleware.Dependency(c).StoreEventHub.OpsService.FrozenSemenList(c, &req, pagination)
+	if err != nil {
+		apierr.ClassifiedAbort(c, err)
+		return
+	}
+	ginutil.JSONResp(c, res)
+}
+
+// FrozenSemeCreate 冻精
+func FrozenSemeCreate(c *gin.Context) {
+	var req pasturePb.SearchFrozenSemenList
+	if err := ginutil.BindProto(c, &req); err != nil {
+		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
+		return
+	}
+
+	if err := valid.ValidateStruct(&req,
+		valid.Field(&req.BullId, valid.Required),
+		valid.Field(&req.Producer, valid.Required),
+		valid.Field(&req.Quantity, valid.Required),
+		valid.Field(&req.Unit, valid.Required),
+		valid.Field(&req.FrozenSemenType, valid.Required),
+	); err != nil {
+		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
+		return
+	}
+
+	if err := middleware.BackendOperation(c).OpsService.FrozenSemenCreate(c, &req); err != nil {
+		apierr.ClassifiedAbort(c, err)
+		return
+	}
+
+	ginutil.JSONResp(c, &operationPb.CommonOK{
+		Code: http.StatusOK,
+		Msg:  "ok",
+		Data: &operationPb.Success{Success: true},
+	})
+}

+ 1 - 4
http/route/event_api.go

@@ -19,6 +19,7 @@ func EventAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) {
 		// 转群
 		eventRoute.POST("/group/transfer/list", event.GroupTransferEventList)
 		eventRoute.POST("/group/transfer/create", event.GroupTransferEventCreate)
+
 		// 体况评分
 		eventRoute.POST("/body/score/list", event.BodyScoreEventList)
 		eventRoute.POST("/body/score/create", event.BodyScoreEventCreate)
@@ -38,13 +39,9 @@ func EventAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) {
 		// 发情
 		eventRoute.POST("/estrus/list", event.EstrusEventList)
 		eventRoute.POST("/estrus/create", event.EstrusCreate)
-		// 冻精
-		eventRoute.POST("/frozen/seme/list", event.FrozenSemeList)
-		eventRoute.POST("/frozen/seme/create", event.FrozenSemeCreate)
 		// 同期
 		eventRoute.POST("/same/time/list", event.SameTimeList)
 		eventRoute.POST("/same/time/create", event.SameTimeCreate)
-
 		// 流产
 		eventRoute.POST("/abortion/list", event.AbortionList)
 		eventRoute.POST("/abortion/create", event.AbortionCreate)

+ 4 - 0
http/route/goods_api.go

@@ -28,5 +28,9 @@ func GoodsManageAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) {
 		goodsRoute.POST("/outbound/audit", goods.OutboundAudit)
 		goodsRoute.POST("/outbound/cancel", goods.OutboundAudit)
 		goodsRoute.GET("/outbound/detail/:id", goods.OutboundDetail)
+
+		// 冻精
+		goodsRoute.POST("/frozen/seme/list", goods.FrozenSemeList)
+		goodsRoute.POST("/frozen/seme/create", goods.FrozenSemeCreate)
 	}
 }

+ 1 - 0
module/backend/calendar.go

@@ -469,6 +469,7 @@ func (s *StoreEntry) CalvingCowList(ctx context.Context, req *pasturePb.ItemsReq
 				"status":          "是否完成",
 				"bullId":          "配种公牛号",
 				"planDay":         "预产时间",
+				"matingAtFormat":  "配种时间",
 			},
 			List: calvingItems,
 		},

+ 0 - 44
module/backend/event_breed.go

@@ -521,50 +521,6 @@ func (s *StoreEntry) EstrusCreate(ctx context.Context, req *pasturePb.EventEstru
 	return nil
 }
 
-func (s *StoreEntry) FrozenSemenList(ctx context.Context, req *pasturePb.FrozenSemenRequest, pagination *pasturePb.PaginationModel) (*pasturePb.FrozenSemenResponse, error) {
-	frozenSemenList := make([]*model.FrozenSemen, 0)
-	var count int64 = 0
-	pref := s.DB.Table(new(model.FrozenSemen).TableName())
-	if req.BullId != "" {
-		pref.Where("bull_id = ?", req.BullId)
-	}
-
-	if req.Producer != "" {
-		pref.Where("producer = ?", req.Producer)
-	}
-
-	if err := pref.Order("id desc").
-		Count(&count).Limit(int(pagination.PageSize)).
-		Offset(int(pagination.PageOffset)).
-		Find(&frozenSemenList).Error; err != nil {
-		return nil, xerr.WithStack(err)
-	}
-
-	frozenSemenTypeMap := s.FrozenSemenTypeMap()
-	unitMap := s.UnitMap()
-
-	return &pasturePb.FrozenSemenResponse{
-		Code:    http.StatusOK,
-		Message: "ok",
-		Data: &pasturePb.SearchFrozenSemenData{
-			List:     model.FrozenSemenSlice(frozenSemenList).ToPB(frozenSemenTypeMap, unitMap),
-			Total:    int32(count),
-			PageSize: pagination.PageSize,
-			Page:     pagination.Page,
-		},
-	}, nil
-}
-
-func (s *StoreEntry) FrozenSemenCreate(ctx context.Context, req *pasturePb.SearchFrozenSemenList) error {
-	currentUser, _ := s.GetCurrentSystemUser(ctx)
-	req.CowKindName = s.CowKindMap()[req.CowKind]
-	newFrozenSemen := model.NewFrozenSemen(req, currentUser)
-	if err := s.DB.Create(newFrozenSemen).Error; err != nil {
-		return xerr.WithStack(err)
-	}
-	return nil
-}
-
 func (s *StoreEntry) SameTimeCreate(ctx context.Context, req *pasturePb.EventSameTime) error {
 	if _, err := s.GetSameTimeById(ctx, int64(req.SameTimeId)); err != nil {
 		return xerr.WithStack(err)

+ 44 - 0
module/backend/goods.go

@@ -458,3 +458,47 @@ func (s *StoreEntry) OutboundDetail(ctx context.Context, id int64) (*pasturePb.O
 		},
 	}, nil
 }
+
+func (s *StoreEntry) FrozenSemenList(ctx context.Context, req *pasturePb.FrozenSemenRequest, pagination *pasturePb.PaginationModel) (*pasturePb.FrozenSemenResponse, error) {
+	frozenSemenList := make([]*model.FrozenSemen, 0)
+	var count int64 = 0
+	pref := s.DB.Table(new(model.FrozenSemen).TableName())
+	if req.BullId != "" {
+		pref.Where("bull_id = ?", req.BullId)
+	}
+
+	if req.Producer != "" {
+		pref.Where("producer = ?", req.Producer)
+	}
+
+	if err := pref.Order("id desc").
+		Count(&count).Limit(int(pagination.PageSize)).
+		Offset(int(pagination.PageOffset)).
+		Find(&frozenSemenList).Error; err != nil {
+		return nil, xerr.WithStack(err)
+	}
+
+	frozenSemenTypeMap := s.FrozenSemenTypeMap()
+	unitMap := s.UnitMap()
+
+	return &pasturePb.FrozenSemenResponse{
+		Code:    http.StatusOK,
+		Message: "ok",
+		Data: &pasturePb.SearchFrozenSemenData{
+			List:     model.FrozenSemenSlice(frozenSemenList).ToPB(frozenSemenTypeMap, unitMap),
+			Total:    int32(count),
+			PageSize: pagination.PageSize,
+			Page:     pagination.Page,
+		},
+	}, nil
+}
+
+func (s *StoreEntry) FrozenSemenCreate(ctx context.Context, req *pasturePb.SearchFrozenSemenList) error {
+	currentUser, _ := s.GetCurrentSystemUser(ctx)
+	req.CowKindName = s.CowKindMap()[req.CowKind]
+	newFrozenSemen := model.NewFrozenSemen(req, currentUser)
+	if err := s.DB.Create(newFrozenSemen).Error; err != nil {
+		return xerr.WithStack(err)
+	}
+	return nil
+}

+ 8 - 4
module/backend/interface.go

@@ -169,9 +169,6 @@ type EventService interface {
 	// EstrusList 发情
 	EstrusList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EstrusEventResponse, error)
 	EstrusCreate(ctx context.Context, req *pasturePb.EventEstrus) error
-	// FrozenSemenList 冻精
-	FrozenSemenList(ctx context.Context, req *pasturePb.FrozenSemenRequest, pagination *pasturePb.PaginationModel) (*pasturePb.FrozenSemenResponse, error)
-	FrozenSemenCreate(ctx context.Context, req *pasturePb.SearchFrozenSemenList) error
 	// AbortionList 流产
 	AbortionList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventAbortionResponse, error)
 	AbortionCreate(ctx context.Context, req *pasturePb.EventAbortionRequest) error
@@ -199,12 +196,19 @@ type CowService interface {
 
 //go:generate mockgen -destination mock/GoodsService.go -package kptservicemock kpt-pasture/module/backend GoodsService
 type GoodsService interface {
+	// FrozenSemenList 冻精
+	FrozenSemenList(ctx context.Context, req *pasturePb.FrozenSemenRequest, pagination *pasturePb.PaginationModel) (*pasturePb.FrozenSemenResponse, error)
+	FrozenSemenCreate(ctx context.Context, req *pasturePb.SearchFrozenSemenList) error
+	// DrugsList 药品
 	DrugsList(ctx context.Context, req *pasturePb.SearchDrugsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchDrugsResponse, error)
 	DrugsCreateOrUpdate(ctx context.Context, req *pasturePb.SearchDrugsList) error
+	// MedicalEquipmentList 医疗设备
 	MedicalEquipmentList(ctx context.Context, req *pasturePb.SearchMedicalEquipmentRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchMedicalEquipmentResponse, error)
 	MedicalEquipmentCreateOrUpdate(ctx context.Context, req *pasturePb.SearchMedicalEquipmentList) error
-	NeckRingLogCreateOrUpdate(ctx context.Context, req *pasturePb.NeckRingCreateRequest) error
+	// NeckRingLogList 脖环相关
 	NeckRingLogList(ctx context.Context, req *pasturePb.SearchNeckRingRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchNeckRingResponse, error)
+	NeckRingLogCreateOrUpdate(ctx context.Context, req *pasturePb.NeckRingCreateRequest) error
+	// OutboundApply 出库申请
 	OutboundApply(ctx context.Context, req *pasturePb.OutboundApplyItem) error
 	OutboundList(ctx context.Context, req *pasturePb.SearchOutboundApplyRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchOutboundApplyResponse, error)
 	OutboundAudit(ctx context.Context, req *pasturePb.OutboundApplyAuditRequest) error