Browse Source

drug: 药品管理优化

ping 7 months ago
parent
commit
bd56c6bdbe
3 changed files with 27 additions and 62 deletions
  1. 17 23
      model/drugs.go
  2. 6 34
      module/backend/enum_map.go
  3. 4 5
      module/backend/goods.go

+ 17 - 23
model/drugs.go

@@ -19,6 +19,7 @@ type Drugs struct {
 	MeatExpiredDays int32                       `json:"meat_expired_days"`
 	Remarks         string                      `json:"remarks"`
 	OperationId     int32                       `json:"operation_id"`
+	OperationName   string                      `json:"operation_name"`
 	CreatedAt       int64                       `json:"created_at"`
 	UpdatedAt       int64                       `json:"updated_at"`
 }
@@ -29,36 +30,29 @@ func (d *Drugs) TableName() string {
 
 func NewDrugs(req *pasturePb.SearchDrugsList, currentUser *SystemUser) *Drugs {
 	return &Drugs{
-		Name:         req.Name,
-		CategoryId:   req.CategoryId,
-		Producer:     req.Producer,
-		BatchNumber:  req.BatchNumber,
-		ProductionAt: int64(req.ProductionAt),
-		ExpirationAt: int64(req.ExpirationAt),
-		Unit:         req.Unit,
-		Specs:        req.Specs,
-		Inventory:    req.Inventory,
-		UsageMethod:  req.Usage,
-		Price:        int32(req.Price * 100),
-		Remarks:      req.Remarks,
-		OperationId:  int32(currentUser.Id),
+		Name:          req.Name,
+		CategoryId:    req.CategoryId,
+		Producer:      req.Producer,
+		BatchNumber:   req.BatchNumber,
+		ProductionAt:  int64(req.ProductionAt),
+		ExpirationAt:  int64(req.ExpirationAt),
+		Unit:          req.Unit,
+		Specs:         req.Specs,
+		Inventory:     req.Inventory,
+		UsageMethod:   req.Usage,
+		Price:         int32(req.Price * 100),
+		Remarks:       req.Remarks,
+		OperationId:   int32(currentUser.Id),
+		OperationName: currentUser.Name,
 	}
 }
 
 type DrugsSlice []*Drugs
 
-func (d DrugsSlice) ToPB(systemUserList []*SystemUser, drugsCategoryMap map[pasturePb.DrugCategory_Kind]string,
+func (d DrugsSlice) ToPB(drugsCategoryMap map[pasturePb.DrugCategory_Kind]string,
 	unitMap map[pasturePb.Unit_Kind]string, drugUsageMap map[pasturePb.DrugUsage_Kind]string) []*pasturePb.SearchDrugsList {
 	res := make([]*pasturePb.SearchDrugsList, len(d))
 	for i, v := range d {
-		operationName := ""
-		for _, u := range systemUserList {
-			if int64(v.OperationId) != u.Id {
-				continue
-			}
-			operationName = u.Name
-		}
-
 		res[i] = &pasturePb.SearchDrugsList{
 			Id:              int32(v.Id),
 			Name:            v.Name,
@@ -79,7 +73,7 @@ func (d DrugsSlice) ToPB(systemUserList []*SystemUser, drugsCategoryMap map[past
 			MilkExpiredDays: v.MilkExpiredDays,
 			Remarks:         v.Remarks,
 			OperationId:     v.OperationId,
-			OperationName:   operationName,
+			OperationName:   v.OperationName,
 			CreatedAt:       int32(v.CreatedAt),
 			UpdatedAt:       int32(v.UpdatedAt),
 		}

+ 6 - 34
module/backend/enum_map.go

@@ -2,40 +2,12 @@ package backend
 
 import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
 
-var DrugCategoryMap = map[pasturePb.DrugCategory_Kind]string{
-	pasturePb.DrugCategory_Antibiotics:    "抗生素类",
-	pasturePb.DrugCategory_Antivirals:     "抗病毒类",
-	pasturePb.DrugCategory_Antifungals:    "抗真菌类",
-	pasturePb.DrugCategory_Antiparasitics: "驱虫类",
-	pasturePb.DrugCategory_Analgesics:     "镇痛类",
-	pasturePb.DrugCategory_Antipyretic:    "退烧类",
-	pasturePb.DrugCategory_Vitamin:        "维生素类",
-	pasturePb.DrugCategory_Brine:          "盐水",
-	pasturePb.DrugCategory_Glucose:        "葡萄糖",
-	pasturePb.DrugCategory_Hormone:        "激素类",
-	pasturePb.DrugCategory_Anti_Stress:    "抗应激类",
-	pasturePb.DrugCategory_Disinfect:      "消毒类",
-	pasturePb.DrugCategory_Chinese_Herbal: "中药合剂",
-	pasturePb.DrugCategory_Tocolytic:      "保胎类",
-	pasturePb.DrugCategory_Immunity:       "疫苗类",
-}
-var UnitMap = map[pasturePb.Unit_Kind]string{
-	pasturePb.Unit_Pieces:  "个",
-	pasturePb.Unit_Package: "包/袋",
-	pasturePb.Unit_Bottle:  "瓶",
-	pasturePb.Unit_Box:     "盒",
-	pasturePb.Unit_Boxful:  "箱",
-	pasturePb.Unit_Branch:  "支",
-	pasturePb.Unit_Barrel:  "桶",
-	pasturePb.Unit_Pot:     "罐",
-	pasturePb.Unit_ML:      "毫升",
-	pasturePb.Unit_L:       "升",
-}
-var DrugUsageMap = map[pasturePb.DrugUsage_Kind]string{
-	pasturePb.DrugUsage_Oral_Medications:       "口服",
-	pasturePb.DrugUsage_Injectable_Medications: "肌注",
-	pasturePb.DrugUsage_Topical_Medications:    "外用",
-	pasturePb.DrugUsage_Drink_Medications:      "饮水",
+func (s *StoreEntry) DrugCategoryMaps() map[pasturePb.DrugCategory_Kind]string {
+	res := make(map[pasturePb.DrugCategory_Kind]string)
+	for _, v := range s.DrugCategoryEnumList() {
+		res[pasturePb.DrugCategory_Kind(v.Value)] = v.Label
+	}
+	return res
 }
 
 func (s *StoreEntry) DrugUsageMaps() map[pasturePb.DrugUsage_Kind]string {

+ 4 - 5
module/backend/goods.go

@@ -33,16 +33,15 @@ func (s *StoreEntry) DrugsList(ctx context.Context, req *pasturePb.SearchDrugsRe
 		return nil, xerr.WithStack(err)
 	}
 
-	drugsCategoryMap := DrugCategoryMap
-	systemUserList, _ := s.SystemUserList(ctx)
-	unitMap := UnitMap
-	drugUsageMap := DrugUsageMap
+	drugsCategoryMap := s.DrugCategoryMaps()
+	unitMap := s.UnitMap()
+	drugUsageMap := s.DrugUsageMaps()
 
 	return &pasturePb.SearchDrugsResponse{
 		Code:    http.StatusOK,
 		Message: "ok",
 		Data: &pasturePb.SearchDrugsData{
-			List:     model.DrugsSlice(drugsList).ToPB(systemUserList, drugsCategoryMap, unitMap, drugUsageMap),
+			List:     model.DrugsSlice(drugsList).ToPB(drugsCategoryMap, unitMap, drugUsageMap),
 			Total:    int32(count),
 			PageSize: pagination.PageSize,
 			Page:     pagination.Page,