Bladeren bron

仓库管理-v2 后端

xu 3 maanden geleden
bovenliggende
commit
fe932ae5b2

+ 35 - 2
server/api/v1/storehouse/goods.go

@@ -1,8 +1,8 @@
 package storehouse
 
 import (
-	"fmt"
 	"github.com/gin-gonic/gin"
+	"server/dao/godown"
 	"server/global"
 	"server/model/common/request"
 	"server/model/common/response"
@@ -28,7 +28,6 @@ func (ga *GoodsApi) QueryGoodsList(c *gin.Context) {
 		global.GVA_LOG.Error("QueryGoodsList ====== " + err.Error())
 		return
 	}
-	fmt.Println(info)
 	list, total, err := goodsService.QueryGoodsList(info)
 	if err != nil {
 		response.FailWithMessage("查询失败", c)
@@ -42,3 +41,37 @@ func (ga *GoodsApi) QueryGoodsList(c *gin.Context) {
 		PageSize: info.PageInfo.PageSize,
 	}, "获取成功", c)
 }
+
+func (ga *GoodsApi) CreateGoods(c *gin.Context) {
+	var goods godown.Goods
+	err := c.ShouldBindJSON(&goods)
+	if err != nil {
+		response.FailWithMessage("参数错误", c)
+		global.GVA_LOG.Error("CreateGoods ====== " + err.Error())
+		return
+	}
+	err = goodsService.CreateGoods(goods)
+	if err != nil {
+		response.FailWithMessage("新增失败", c)
+		global.GVA_LOG.Error("CreateGoods ====== " + err.Error())
+		return
+	}
+	response.Ok(c)
+}
+
+func (ga *GoodsApi) UpdateGoods(c *gin.Context) {
+	var goods godown.Goods
+	err := c.ShouldBindJSON(&goods)
+	if err != nil {
+		response.FailWithMessage("参数错误", c)
+		global.GVA_LOG.Error("UpdateGoods ====== " + err.Error())
+		return
+	}
+	err = goodsService.UpdateGoods(goods)
+	if err != nil {
+		response.FailWithMessage("修改失败", c)
+		global.GVA_LOG.Error("UpdateGoods ====== " + err.Error())
+		return
+	}
+	response.Ok(c)
+}

+ 5 - 4
server/api/v1/storehouse/goodsGenre.go

@@ -5,6 +5,7 @@ import (
 	"server/dao/godown"
 	"server/global"
 	"server/model/common/response"
+	"strconv"
 )
 
 type GoodsGenreApi struct{}
@@ -54,14 +55,14 @@ func (cga *GoodsGenreApi) UpdateGoodsGenre(c *gin.Context) {
 }
 
 func (cga *GoodsGenreApi) DeleteGoodsGenre(c *gin.Context) {
-	var goodsGenre godown.GoodsGenre
-	err := c.ShouldBindJSON(&goodsGenre)
+	id, err := strconv.Atoi(c.Query("id"))
 	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
+		response.FailWithMessage("参数错误", c)
 		global.GVA_LOG.Error("DeleteGoodsGenre ======= " + err.Error())
 		return
 	}
-	err = goodsGenreService.DeleteGoodsGenre(goodsGenre)
+
+	err = goodsGenreService.DeleteGoodsGenre(id)
 	if err != nil {
 		response.FailWithMessage("删除失败", c)
 		global.GVA_LOG.Error("DeleteGoodsGenre ======= " + err.Error())

+ 2 - 1
server/dao/godown/goods.go

@@ -13,6 +13,7 @@ type Goods struct {
 	Specifications string     `json:"specifications" gorm:"comment:规格"`
 	Unit           string     `json:"unit" gorm:"comment:单位"`
 	Number         int        `json:"number" gorm:"comment:数量"`
+	Position       string     `json:"position" gorm:"comment:位置"`
 }
 
 func (Goods) TableName() string {
@@ -45,7 +46,7 @@ func QueryGoodsList(limit, offset, genre int, name, characteristic, specificatio
 	if err != nil {
 		return
 	}
-	err = db.Order("id desc").Limit(limit).Offset(offset).Find(&goods).Error
+	err = db.Order("id desc").Limit(limit).Offset(offset).Preload("GoodsGenre").Find(&goods).Error
 	return goods, total, err
 }
 

+ 5 - 5
server/dao/godown/goodsGenre.go

@@ -21,13 +21,13 @@ func (GoodsGenre) TableName() string {
 // QueryAllGoodsGenres 查询所有所有商品类目,按层级结构返回
 func QueryAllGoodsGenres() (commodityGenres []GoodsGenre, err error) {
 	// 先查询所有所有顶级类目(parent_id 为 null)
-	if err = global.GVA_DB.Where("parent_id IS NULL").Find(&commodityGenres).Error; err != nil {
+	if err = global.GVA_DB.Debug().Where("parent_id IS NULL").Find(&commodityGenres).Error; err != nil {
 		return nil, err
 	}
 
 	// 为每个顶级类目加载子类目
 	for i := range commodityGenres {
-		if err = global.GVA_DB.Where("parent_id = ?", commodityGenres[i].ID).Find(&commodityGenres[i].Children).Error; err != nil {
+		if err = global.GVA_DB.Debug().Where("parent_id = ?", commodityGenres[i].ID).Find(&commodityGenres[i].Children).Error; err != nil {
 			return nil, err
 		}
 	}
@@ -91,10 +91,10 @@ func (cg GoodsGenre) UpdateGoodsGenre() error {
 }
 
 // DeleteGoodsGenre 删除商品类目
-func (cg GoodsGenre) DeleteGoodsGenre() error {
+func DeleteGoodsGenre(id int) error {
 	// 检查是否有子类目,如果有则不允许删除或级联删除
 	var childrenCount int64
-	if err := global.GVA_DB.Model(&GoodsGenre{}).Where("parent_id = ?", cg.ID).Count(&childrenCount).Error; err != nil {
+	if err := global.GVA_DB.Model(&GoodsGenre{}).Where("parent_id = ?", id).Count(&childrenCount).Error; err != nil {
 		return err
 	}
 
@@ -106,5 +106,5 @@ func (cg GoodsGenre) DeleteGoodsGenre() error {
 		// }
 	}
 
-	return global.GVA_DB.Unscoped().Delete(&cg).Error
+	return global.GVA_DB.Unscoped().Where("id = ?", id).Delete(&GoodsGenre{}).Error
 }

+ 6 - 0
server/dao/projectWorkingHours.go

@@ -86,6 +86,12 @@ func QueryWorkingHoursByCode(code string, people int) (workingHours ProjectWorki
 	return workingHours, err
 }
 
+// QueryWorkingHoursByUserId 查询工时 按用户
+func QueryWorkingHoursByUserId(userId int) (workingHours []ProjectWorkingHours, err error) {
+	err = global.GVA_DB.Model(&ProjectWorkingHours{}).Where("people = ?", userId).Preload("SysUser").Find(&workingHours).Error
+	return workingHours, err
+}
+
 // TODO:工时新增
 
 // CreateWorkingHours 创建工时

+ 4 - 1
server/router/storehouse/goods.go

@@ -3,16 +3,19 @@ package storehouse
 import (
 	"github.com/gin-gonic/gin"
 	v1 "server/api/v1"
+	"server/middleware"
 )
 
 type GoodsRouter struct{}
 
 func (s *GoodsRouter) InitGoodsRouter(Router *gin.RouterGroup) {
-	//goodsRouter := Router.Group("goods").Use(middleware.OperationRecord())
+	goodsRouter := Router.Group("goods").Use(middleware.OperationRecord())
 	goodsRouterWithoutRecord := Router.Group("goods")
 
 	goodsApi := v1.ApiGroupApp.StorehouseApiGroup.GoodsApi
 	{
+		goodsRouter.POST("createGoods", goodsApi.CreateGoods)
+		goodsRouter.PUT("updateGoods", goodsApi.UpdateGoods)
 	}
 	{
 		goodsRouterWithoutRecord.GET("queryAllGoods", goodsApi.QueryAllGoods)

+ 4 - 0
server/service/admin/project.go

@@ -83,6 +83,10 @@ func (ps *ProjectService) QueryWorkingHoursList(info request.SearchWorkingHours)
 	return dao.QueryWorkingHoursList(limit, offset, info.People, info.Code, info.Time, info.YearTime)
 }
 
+func (ps *ProjectService) QueryWorkingHoursByUserId(userId int) (workingHours []dao.ProjectWorkingHours, err error) {
+	return dao.QueryWorkingHoursByUserId(userId)
+}
+
 func (ps *ProjectService) QueryWorkingHoursSum(info request.SearchWorkingHours) (list interface{}, total int64, err error) {
 	limit := info.PageInfo.PageSize
 	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)

+ 8 - 0
server/service/storehouse/goods.go

@@ -17,3 +17,11 @@ func (gs *GoodsService) QueryGoodsList(info request.SearchGoods) (interface{}, i
 	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
 	return godown.QueryGoodsList(limit, offset, info.Genre, info.Name, info.Characteristic, info.Specifications)
 }
+
+func (gs *GoodsService) CreateGoods(goods godown.Goods) error {
+	return goods.CreateGoods()
+}
+
+func (gs *GoodsService) UpdateGoods(goods godown.Goods) error {
+	return goods.UpdateGoods()
+}

+ 3 - 4
server/service/storehouse/goodsGenre.go

@@ -19,14 +19,13 @@ func (cgs *GoodsGenreService) UpdateGoodsGenre(cg godown.GoodsGenre) error {
 	return cg.UpdateGoodsGenre()
 }
 
-func (cgs *GoodsGenreService) DeleteGoodsGenre(cg godown.GoodsGenre) error {
-	goods, err := godown.QueryGoodsByGenre(int(cg.ID))
+func (cgs *GoodsGenreService) DeleteGoodsGenre(id int) error {
+	goods, err := godown.QueryGoodsByGenre(id)
 	if err != nil {
 		return err
 	}
 	if len(goods) > 0 {
 		return fmt.Errorf("数据已被使用")
 	}
-
-	return cg.DeleteGoodsGenre()
+	return godown.DeleteGoodsGenre(id)
 }