Browse Source

仓库管理-v2 后端

xu 4 tháng trước cách đây
mục cha
commit
39dee61748
52 tập tin đã thay đổi với 474 bổ sung1619 xóa
  1. 0 94
      server/api/v1/storehouse/commodity.go
  2. 0 71
      server/api/v1/storehouse/commodityGenre.go
  3. 4 16
      server/api/v1/storehouse/enter.go
  4. 0 12
      server/api/v1/storehouse/goods.go
  5. 71 0
      server/api/v1/storehouse/goodsGenre.go
  6. 0 111
      server/api/v1/storehouse/place.go
  7. 0 111
      server/api/v1/storehouse/storageArea.go
  8. 0 71
      server/api/v1/storehouse/storageAreaGenre.go
  9. 0 94
      server/api/v1/storehouse/supplier.go
  10. 0 111
      server/api/v1/storehouse/warehouse.go
  11. 5 10
      server/dao/godown/cargo.go
  12. 0 60
      server/dao/godown/commodity.go
  13. 0 30
      server/dao/godown/commodityGenre.go
  14. 21 30
      server/dao/godown/goods.go
  15. 110 0
      server/dao/godown/goodsGenre.go
  16. 11 19
      server/dao/godown/manifest.go
  17. 0 69
      server/dao/godown/place.go
  18. 0 63
      server/dao/godown/storageArea.go
  19. 0 31
      server/dao/godown/storageAreaGenre.go
  20. 0 53
      server/dao/godown/supplier.go
  21. 0 55
      server/dao/godown/warehouse.go
  22. 3 0
      server/dao/project.go
  23. 2 2
      server/dao/projectWorkingHours.go
  24. 1 7
      server/initialize/gorm.go
  25. 1 7
      server/initialize/router.go
  26. 5 5
      server/model/common/request/common.go
  27. 0 25
      server/router/storehouse/commodity.go
  28. 0 25
      server/router/storehouse/commodityGenre.go
  29. 1 7
      server/router/storehouse/enter.go
  30. 0 1
      server/router/storehouse/goods.go
  31. 25 0
      server/router/storehouse/goodsGenre.go
  32. 0 26
      server/router/storehouse/place.go
  33. 0 26
      server/router/storehouse/storageArea.go
  34. 0 24
      server/router/storehouse/storageAreaGenre.go
  35. 0 26
      server/router/storehouse/supplier.go
  36. 0 27
      server/router/storehouse/warehouse.go
  37. 0 30
      server/service/storehouse/commodity.go
  38. 0 32
      server/service/storehouse/commodityGenre.go
  39. 1 7
      server/service/storehouse/enter.go
  40. 1 17
      server/service/storehouse/goods.go
  41. 32 0
      server/service/storehouse/goodsGenre.go
  42. 0 34
      server/service/storehouse/place.go
  43. 0 34
      server/service/storehouse/storageArea.go
  44. 0 23
      server/service/storehouse/storageAreaGenre.go
  45. 0 32
      server/service/storehouse/supplier.go
  46. 0 35
      server/service/storehouse/warehouse.go
  47. 11 11
      web/src/view/finance/financeAnalysis/components/hour.vue
  48. 14 14
      web/src/view/finance/financeAnalysis/components/payment.vue
  49. 1 0
      web/src/view/finance/financeAnalysis/components/projectCost.vue
  50. 32 11
      web/src/view/finance/workingHours/workingHours.vue
  51. 61 9
      web/src/view/projectManage/projectApproval/projectApproval.vue
  52. 61 11
      web/src/view/projectManage/projectDetails/projectDetails.vue

+ 0 - 94
server/api/v1/storehouse/commodity.go

@@ -1,94 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	"server/dao/godown"
-	"server/global"
-	"server/model/common/request"
-	"server/model/common/response"
-)
-
-type CommodityApi struct{}
-
-func (ca *CommodityApi) QueryAllCommodity(c *gin.Context) {
-	commodities, err := commodityService.QueryAllCommodity()
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryAllCommodity ====== " + err.Error())
-		return
-	}
-	response.OkWithData(commodities, c)
-}
-
-func (ca *CommodityApi) QueryCommodityList(c *gin.Context) {
-	var info request.SearchCommodityList
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("QueryCommodityList ====== " + err.Error())
-		return
-	}
-	list, total, err := commodityService.QueryCommodityList(info)
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryCommodityList ====== " + err.Error())
-		return
-	}
-	response.OkWithDetailed(response.PageResult{
-		List:     list,
-		Total:    total,
-		Page:     info.PageInfo.Page,
-		PageSize: info.PageInfo.PageSize,
-	}, "获取成功", c)
-}
-
-func (ca *CommodityApi) CreateCommodity(c *gin.Context) {
-	var commodity godown.Commodity
-	err := c.ShouldBindJSON(&commodity)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("CreateCommodity ====== " + err.Error())
-		return
-	}
-	err = commodityService.CreateCommodity(commodity)
-	if err != nil {
-		response.FailWithMessage("创建失败", c)
-		global.GVA_LOG.Error("CreateCommodity ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("创建成功", c)
-}
-
-func (ca *CommodityApi) UpdateCommodity(c *gin.Context) {
-	var commodity godown.Commodity
-	err := c.ShouldBindJSON(&commodity)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("UpdateCommodity ====== " + err.Error())
-		return
-	}
-	err = commodityService.UpdateCommodity(commodity)
-	if err != nil {
-		response.FailWithMessage("更新失败", c)
-		global.GVA_LOG.Error("UpdateCommodity ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("更新成功", c)
-}
-
-func (ca *CommodityApi) DeleteCommodity(c *gin.Context) {
-	var commodity godown.Commodity
-	err := c.ShouldBindJSON(&commodity)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("DeleteCommodity ====== " + err.Error())
-		return
-	}
-	err = commodityService.DeleteCommodity(commodity)
-	if err != nil {
-		response.FailWithMessage("删除失败", c)
-		global.GVA_LOG.Error("DeleteCommodity ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}

+ 0 - 71
server/api/v1/storehouse/commodityGenre.go

@@ -1,71 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	"server/dao/godown"
-	"server/global"
-	"server/model/common/response"
-)
-
-type CommodityGenreApi struct{}
-
-func (cga *CommodityGenreApi) QueryAllCommodityGenre(c *gin.Context) {
-	commodityGenres, err := commodityGenreService.QueryAllCommodityGenre()
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryAllCommodityGenre ======= " + err.Error())
-		return
-	}
-	response.OkWithData(commodityGenres, c)
-}
-
-func (cga *CommodityGenreApi) CreateCommodityGenre(c *gin.Context) {
-	var commodityGenre godown.CommodityGenre
-	err := c.ShouldBindJSON(&commodityGenre)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("CreateCommodityGenre ======= " + err.Error())
-		return
-	}
-	err = commodityGenreService.CreateCommodityGenre(commodityGenre)
-	if err != nil {
-		response.FailWithMessage("创建失败", c)
-		global.GVA_LOG.Error("CreateCommodityGenre ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("创建成功", c)
-}
-
-func (cga *CommodityGenreApi) UpdateCommodityGenre(c *gin.Context) {
-	var commodityGenre godown.CommodityGenre
-	err := c.ShouldBindJSON(&commodityGenre)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("UpdateCommodityGenre ======= " + err.Error())
-		return
-	}
-	err = commodityGenreService.UpdateCommodityGenre(commodityGenre)
-	if err != nil {
-		response.FailWithMessage("更新失败", c)
-		global.GVA_LOG.Error("UpdateCommodityGenre ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("更新成功", c)
-}
-
-func (cga *CommodityGenreApi) DeleteCommodityGenre(c *gin.Context) {
-	var commodityGenre godown.CommodityGenre
-	err := c.ShouldBindJSON(&commodityGenre)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("DeleteCommodityGenre ======= " + err.Error())
-		return
-	}
-	err = commodityGenreService.DeleteCommodityGenre(commodityGenre)
-	if err != nil {
-		response.FailWithMessage("删除失败", c)
-		global.GVA_LOG.Error("DeleteCommodityGenre ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}

+ 4 - 16
server/api/v1/storehouse/enter.go

@@ -3,25 +3,13 @@ package storehouse
 import "server/service"
 
 type ApiGroup struct {
-	CommodityApi
-	CommodityGenreApi
-	SupplierApi
-	WarehouseApi
-	PlaceApi
-	StorageAreaApi
-	StorageAreaGenreApi
+	GoodsGenreApi
 	ManifestApi
 	GoodsApi
 }
 
 var (
-	commodityService        = service.ServiceGroupApp.StorehouseServiceGroup.CommodityService
-	commodityGenreService   = service.ServiceGroupApp.StorehouseServiceGroup.CommodityGenreService
-	supplierService         = service.ServiceGroupApp.StorehouseServiceGroup.SupplierService
-	warehouseService        = service.ServiceGroupApp.StorehouseServiceGroup.WarehouseService
-	placeService            = service.ServiceGroupApp.StorehouseServiceGroup.PlaceService
-	storageAreaService      = service.ServiceGroupApp.StorehouseServiceGroup.StorageAreaService
-	storageAreaGenreService = service.ServiceGroupApp.StorehouseServiceGroup.StorageAreaGenreService
-	manifestService         = service.ServiceGroupApp.StorehouseServiceGroup.ManifestService
-	goodsService            = service.ServiceGroupApp.StorehouseServiceGroup.GoodsService
+	goodsGenreService = service.ServiceGroupApp.StorehouseServiceGroup.GoodsGenreService
+	manifestService   = service.ServiceGroupApp.StorehouseServiceGroup.ManifestService
+	goodsService      = service.ServiceGroupApp.StorehouseServiceGroup.GoodsService
 )

+ 0 - 12
server/api/v1/storehouse/goods.go

@@ -42,15 +42,3 @@ func (ga *GoodsApi) QueryGoodsList(c *gin.Context) {
 		PageSize: info.PageInfo.PageSize,
 	}, "获取成功", c)
 }
-
-func (ga *GoodsApi) GetInventory(c *gin.Context) {
-	var info request.GetInventoryRequest
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage("参数错误", c)
-		global.GVA_LOG.Error("QueryGoodsList ====== " + err.Error())
-		return
-	}
-	inventory := goodsService.GetInventory(info)
-	response.OkWithData(inventory, c)
-}

+ 71 - 0
server/api/v1/storehouse/goodsGenre.go

@@ -0,0 +1,71 @@
+package storehouse
+
+import (
+	"github.com/gin-gonic/gin"
+	"server/dao/godown"
+	"server/global"
+	"server/model/common/response"
+)
+
+type GoodsGenreApi struct{}
+
+func (cga *GoodsGenreApi) QueryAllGoodsGenre(c *gin.Context) {
+	goodsGenres, err := goodsGenreService.QueryAllGoodsGenre()
+	if err != nil {
+		response.FailWithMessage("查询失败", c)
+		global.GVA_LOG.Error("QueryAllCommodityGenre ======= " + err.Error())
+		return
+	}
+	response.OkWithData(goodsGenres, c)
+}
+
+func (cga *GoodsGenreApi) CreateGoodsGenre(c *gin.Context) {
+	var goodsGenre godown.GoodsGenre
+	err := c.ShouldBindJSON(&goodsGenre)
+	if err != nil {
+		response.FailWithMessage("参数解析失败", c)
+		global.GVA_LOG.Error("CreateCommodityGenre ======= " + err.Error())
+		return
+	}
+	err = goodsGenreService.CreateGoodsGenre(goodsGenre)
+	if err != nil {
+		response.FailWithMessage("创建失败", c)
+		global.GVA_LOG.Error("CreateCommodityGenre ======= " + err.Error())
+		return
+	}
+	response.OkWithMessage("创建成功", c)
+}
+
+func (cga *GoodsGenreApi) UpdateGoodsGenre(c *gin.Context) {
+	var goodsGenre godown.GoodsGenre
+	err := c.ShouldBindJSON(&goodsGenre)
+	if err != nil {
+		response.FailWithMessage("参数解析失败", c)
+		global.GVA_LOG.Error("UpdateGoodsGenre ======= " + err.Error())
+		return
+	}
+	err = goodsGenreService.UpdateGoodsGenre(goodsGenre)
+	if err != nil {
+		response.FailWithMessage("更新失败", c)
+		global.GVA_LOG.Error("UpdateGoodsGenre ======= " + err.Error())
+		return
+	}
+	response.OkWithMessage("更新成功", c)
+}
+
+func (cga *GoodsGenreApi) DeleteGoodsGenre(c *gin.Context) {
+	var goodsGenre godown.GoodsGenre
+	err := c.ShouldBindJSON(&goodsGenre)
+	if err != nil {
+		response.FailWithMessage("参数解析失败", c)
+		global.GVA_LOG.Error("DeleteGoodsGenre ======= " + err.Error())
+		return
+	}
+	err = goodsGenreService.DeleteGoodsGenre(goodsGenre)
+	if err != nil {
+		response.FailWithMessage("删除失败", c)
+		global.GVA_LOG.Error("DeleteGoodsGenre ======= " + err.Error())
+		return
+	}
+	response.OkWithMessage("删除成功", c)
+}

+ 0 - 111
server/api/v1/storehouse/place.go

@@ -1,111 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	"server/dao/godown"
-	"server/global"
-	"server/model/common/request"
-	"server/model/common/response"
-)
-
-type PlaceApi struct{}
-
-func (pa *PlaceApi) QueryAllPlace(c *gin.Context) {
-	places, err := placeService.QueryAllPlaces()
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryAllPlace ======= " + err.Error())
-		return
-	}
-	response.OkWithData(places, c)
-}
-
-func (pa *PlaceApi) QueryPlaceList(c *gin.Context) {
-	var info request.SearchPlace
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("QueryPlaceList ======= " + err.Error())
-		return
-	}
-	list, total, err := placeService.QueryPlaceList(info)
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryPlaceList ======= " + err.Error())
-		return
-	}
-	response.OkWithDetailed(response.PageResult{
-		List:     list,
-		Total:    total,
-		Page:     info.PageInfo.Page,
-		PageSize: info.PageInfo.PageSize,
-	}, "获取成功", c)
-}
-
-func (pa *PlaceApi) CreatePlace(c *gin.Context) {
-	var place godown.Place
-	err := c.ShouldBindJSON(&place)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("CreatePlace ======= " + err.Error())
-		return
-	}
-	err = placeService.CreatePlace(place)
-	if err != nil {
-		response.FailWithMessage("创建失败", c)
-		global.GVA_LOG.Error("CreatePlace ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("创建成功", c)
-}
-
-func (pa *PlaceApi) UpdatePlace(c *gin.Context) {
-	var place godown.Place
-	err := c.ShouldBindJSON(&place)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("UpdatePlace ======= " + err.Error())
-		return
-	}
-	err = placeService.UpdatePlace(place)
-	if err != nil {
-		response.FailWithMessage("更新失败", c)
-		global.GVA_LOG.Error("UpdatePlace ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("更新成功", c)
-}
-
-func (pa *PlaceApi) SwitchPlace(c *gin.Context) {
-	var place godown.Place
-	err := c.ShouldBindJSON(&place)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("SwitchPlace ======= " + err.Error())
-		return
-	}
-	err = placeService.SwitchPlace(place)
-	if err != nil {
-		response.FailWithMessage("切换失败", c)
-		global.GVA_LOG.Error("SwitchPlace ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("切换成功", c)
-}
-
-func (pa *PlaceApi) DeletePlace(c *gin.Context) {
-	var place godown.Place
-	err := c.ShouldBindJSON(&place)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("DeletePlace ======= " + err.Error())
-		return
-	}
-	err = placeService.DeletePlace(place)
-	if err != nil {
-		response.FailWithMessage("删除失败", c)
-		global.GVA_LOG.Error("DeletePlace ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}

+ 0 - 111
server/api/v1/storehouse/storageArea.go

@@ -1,111 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	"server/dao/godown"
-	"server/global"
-	"server/model/common/request"
-	"server/model/common/response"
-)
-
-type StorageAreaApi struct{}
-
-func (ssa *StorageAreaApi) QueryAllStorageAreas(c *gin.Context) {
-	area, err := storageAreaService.QueryAllStorageArea()
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryAllStorageAreas ====== " + err.Error())
-		return
-	}
-	response.OkWithData(area, c)
-}
-
-func (ssa *StorageAreaApi) QueryStorageAreaList(c *gin.Context) {
-	var info request.SearchStorageArea
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("QueryPlaceList ======= " + err.Error())
-		return
-	}
-	list, total, err := storageAreaService.QueryStorageAreaList(info)
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryPlaceList ======= " + err.Error())
-		return
-	}
-	response.OkWithDetailed(response.PageResult{
-		List:     list,
-		Total:    total,
-		Page:     info.PageInfo.Page,
-		PageSize: info.PageInfo.PageSize,
-	}, "获取成功", c)
-}
-
-func (ssa *StorageAreaApi) CreateStorageArea(c *gin.Context) {
-	var area godown.StorageArea
-	err := c.ShouldBindJSON(&area)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("CreateStorageArea ====== " + err.Error())
-		return
-	}
-	err = storageAreaService.CreateStorageArea(area)
-	if err != nil {
-		response.FailWithMessage("创建失败", c)
-		global.GVA_LOG.Error("CreateStorageArea ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("创建成功", c)
-}
-
-func (ssa *StorageAreaApi) UpdateStorageArea(c *gin.Context) {
-	var area godown.StorageArea
-	err := c.ShouldBindJSON(&area)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("UpdateStorageArea ====== " + err.Error())
-		return
-	}
-	err = storageAreaService.UpdateStorageArea(area)
-	if err != nil {
-		response.FailWithMessage("修改失败", c)
-		global.GVA_LOG.Error("UpdateStorageArea ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("修改成功", c)
-}
-
-func (ssa *StorageAreaApi) SwitchStorageArea(c *gin.Context) {
-	var area godown.StorageArea
-	err := c.ShouldBindJSON(&area)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("SwitchStorageArea ====== " + err.Error())
-		return
-	}
-	err = storageAreaService.SwitchStorageArea(area)
-	if err != nil {
-		response.FailWithMessage("切换状态失败", c)
-		global.GVA_LOG.Error("SwitchStorageArea ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("切换状态成功", c)
-}
-
-func (ssa *StorageAreaApi) DeleteStorageArea(c *gin.Context) {
-	var area godown.StorageArea
-	err := c.ShouldBindJSON(&area)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("DeleteStorageArea ====== " + err.Error())
-		return
-	}
-	err = storageAreaService.DeleteStorageArea(area)
-	if err != nil {
-		response.FailWithMessage("删除失败", c)
-		global.GVA_LOG.Error("DeleteStorageArea ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}

+ 0 - 71
server/api/v1/storehouse/storageAreaGenre.go

@@ -1,71 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	"server/dao/godown"
-	"server/global"
-	"server/model/common/response"
-)
-
-type StorageAreaGenreApi struct{}
-
-func (saga *StorageAreaGenreApi) QueryAllStorageAreaGenre(c *gin.Context) {
-	genres, err := storageAreaGenreService.QueryAllStorageAreaGenres()
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryAllStorageAreaGenre ======= " + err.Error())
-		return
-	}
-	response.OkWithData(genres, c)
-}
-
-func (saga *StorageAreaGenreApi) CreateStorageAreaGenre(c *gin.Context) {
-	var genre godown.StorageAreaGenre
-	err := c.ShouldBindJSON(&genre)
-	if err != nil {
-		response.FailWithMessage("参数错误", c)
-		global.GVA_LOG.Error("CreateStorageAreaGenre ======= " + err.Error())
-		return
-	}
-	err = storageAreaGenreService.CreateStorageAreaGenre(genre)
-	if err != nil {
-		response.FailWithMessage("创建失败", c)
-		global.GVA_LOG.Error("CreateStorageAreaGenre ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("创建成功", c)
-}
-
-func (saga *StorageAreaGenreApi) UpdateStorageAreaGenre(c *gin.Context) {
-	var genre godown.StorageAreaGenre
-	err := c.ShouldBindJSON(&genre)
-	if err != nil {
-		response.FailWithMessage("参数错误", c)
-		global.GVA_LOG.Error("UpdateStorageAreaGenre ======= " + err.Error())
-		return
-	}
-	err = storageAreaGenreService.UpdateStorageAreaGenre(genre)
-	if err != nil {
-		response.FailWithMessage("更新失败", c)
-		global.GVA_LOG.Error("UpdateStorageAreaGenre ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("更新成功", c)
-}
-
-func (saga *StorageAreaGenreApi) DeleteStorageAreaGenre(c *gin.Context) {
-	var genre godown.StorageAreaGenre
-	err := c.ShouldBindJSON(&genre)
-	if err != nil {
-		response.FailWithMessage("参数错误", c)
-		global.GVA_LOG.Error("DeleteStorageAreaGenre ======= " + err.Error())
-		return
-	}
-	err = storageAreaGenreService.DeleteStorageAreaGenre(genre)
-	if err != nil {
-		response.FailWithMessage("删除失败", c)
-		global.GVA_LOG.Error("DeleteStorageAreaGenre ======= " + err.Error())
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}

+ 0 - 94
server/api/v1/storehouse/supplier.go

@@ -1,94 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	"server/dao/godown"
-	"server/global"
-	"server/model/common/request"
-	"server/model/common/response"
-)
-
-type SupplierApi struct{}
-
-func (sa *SupplierApi) QueryAllSupplier(c *gin.Context) {
-	suppliers, err := supplierService.QueryAllSupplier()
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryAllSupplier ====== " + err.Error())
-		return
-	}
-	response.OkWithData(suppliers, c)
-}
-
-func (sa *SupplierApi) QuerySupplierList(c *gin.Context) {
-	var info request.SearchSupplierList
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("QuerySupplierList ====== " + err.Error())
-		return
-	}
-	list, total, err := supplierService.QuerySupplierList(info)
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QuerySupplierList ====== " + err.Error())
-		return
-	}
-	response.OkWithDetailed(response.PageResult{
-		List:     list,
-		Total:    total,
-		Page:     info.PageInfo.Page,
-		PageSize: info.PageInfo.PageSize,
-	}, "获取成功", c)
-}
-
-func (sa *SupplierApi) CreateSupplier(c *gin.Context) {
-	var supplier godown.Supplier
-	err := c.ShouldBindJSON(&supplier)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("CreateSupplier ====== " + err.Error())
-		return
-	}
-	err = supplierService.CreateSupplier(supplier)
-	if err != nil {
-		response.FailWithMessage("创建失败", c)
-		global.GVA_LOG.Error("CreateSupplier ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("创建成功", c)
-}
-
-func (sa *SupplierApi) UpdateSupplier(c *gin.Context) {
-	var supplier godown.Supplier
-	err := c.ShouldBindJSON(&supplier)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("UpdateSupplier ====== " + err.Error())
-		return
-	}
-	err = supplierService.UpdateSupplier(supplier)
-	if err != nil {
-		response.FailWithMessage("更新失败", c)
-		global.GVA_LOG.Error("UpdateSupplier ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("更新成功", c)
-}
-
-func (sa *SupplierApi) DeleteSupplier(c *gin.Context) {
-	var supplier godown.Supplier
-	err := c.ShouldBindJSON(&supplier)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("DeleteSupplier ====== " + err.Error())
-		return
-	}
-	err = supplierService.DeleteSupplier(supplier)
-	if err != nil {
-		response.FailWithMessage("删除失败", c)
-		global.GVA_LOG.Error("DeleteSupplier ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}

+ 0 - 111
server/api/v1/storehouse/warehouse.go

@@ -1,111 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	"server/dao/godown"
-	"server/global"
-	"server/model/common/request"
-	"server/model/common/response"
-)
-
-type WarehouseApi struct{}
-
-func (wa *WarehouseApi) QueryAllWarehouse(c *gin.Context) {
-	warehouses, err := warehouseService.QueryAllWarehouse()
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryAllWarehouse ====== " + err.Error())
-		return
-	}
-	response.OkWithData(warehouses, c)
-}
-
-func (wa *WarehouseApi) QueryWarehouseList(c *gin.Context) {
-	var info request.SearchWarehouse
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("QueryWarehouseList ====== " + err.Error())
-		return
-	}
-	list, total, err := warehouseService.QueryWarehouseList(info)
-	if err != nil {
-		response.FailWithMessage("查询失败", c)
-		global.GVA_LOG.Error("QueryWarehouseList ====== " + err.Error())
-		return
-	}
-	response.OkWithDetailed(response.PageResult{
-		List:     list,
-		Total:    total,
-		Page:     info.PageInfo.Page,
-		PageSize: info.PageInfo.PageSize,
-	}, "获取成功", c)
-}
-
-func (wa *WarehouseApi) CreateWarehouse(c *gin.Context) {
-	var warehouse godown.Warehouse
-	err := c.ShouldBindJSON(&warehouse)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("CreateWarehouse ====== " + err.Error())
-		return
-	}
-	err = warehouseService.CreateWarehouse(warehouse)
-	if err != nil {
-		response.FailWithMessage("创建失败", c)
-		global.GVA_LOG.Error("CreateWarehouse ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("创建成功", c)
-}
-
-func (wa *WarehouseApi) UpdateWarehouse(c *gin.Context) {
-	var warehouse godown.Warehouse
-	err := c.ShouldBindJSON(&warehouse)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("UpdateWarehouse ====== " + err.Error())
-		return
-	}
-	err = warehouseService.UpdateWarehouse(warehouse)
-	if err != nil {
-		response.FailWithMessage("更新失败", c)
-		global.GVA_LOG.Error("UpdateWarehouse ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("更新成功", c)
-}
-
-func (wa *WarehouseApi) SwitchWarehouse(c *gin.Context) {
-	var warehouse godown.Warehouse
-	err := c.ShouldBindJSON(&warehouse)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("SwitchWarehouse ====== " + err.Error())
-		return
-	}
-	err = warehouseService.SwitchWarehouse(warehouse)
-	if err != nil {
-		response.FailWithMessage("切换失败", c)
-		global.GVA_LOG.Error("SwitchWarehouse ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("切换成功", c)
-}
-
-func (wa *WarehouseApi) DeleteWarehouse(c *gin.Context) {
-	var warehouse godown.Warehouse
-	err := c.ShouldBindJSON(&warehouse)
-	if err != nil {
-		response.FailWithMessage("参数解析失败", c)
-		global.GVA_LOG.Error("DeleteWarehouse ====== " + err.Error())
-		return
-	}
-	err = warehouseService.DeleteWarehouse(warehouse)
-	if err != nil {
-		response.FailWithMessage("删除失败", c)
-		global.GVA_LOG.Error("DeleteWarehouse ====== " + err.Error())
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}

+ 5 - 10
server/dao/godown/cargo.go

@@ -4,16 +4,11 @@ import "server/global"
 
 type Cargo struct {
 	global.GVA_MODEL
-	CommodityId   int         `json:"commodityId" gorm:"comment:商品id"`
-	Commodity     Commodity   `json:"commodity" gorm:"foreignKey:CommodityId;references:id;"`
-	Number        int         `json:"number" gorm:"comment:数量"`
-	ManifestId    int         `json:"manifestId" gorm:"comment:货单id"`
-	WarehouseId   int         `json:"warehouseId" gorm:"comment:仓库id"`
-	Warehouse     Warehouse   `json:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"`
-	StorageAreaId int         `json:"storageAreaId" gorm:"comment:库区id"`
-	StorageArea   StorageArea `json:"storageArea" gorm:"foreignKey:StorageAreaId;references:id;"`
-	PlaceId       int         `json:"placeId" gorm:"comment:库位id"`
-	Place         Place       `json:"place" gorm:"foreignKey:PlaceId;references:id;"`
+	GoodsId     int     `json:"goodsId" gorm:"comment:商品id"`
+	Goods       Goods   `json:"goods" gorm:"foreignKey:GoodsId;references:id;"`
+	BuyingPrice float64 `json:"buyingPrice" gorm:"comment:进货价"`
+	Number      int     `json:"number" gorm:"comment:数量"`
+	ManifestId  int     `json:"manifestId" gorm:"comment:货单id"`
 }
 
 func (Cargo) TableName() string {

+ 0 - 60
server/dao/godown/commodity.go

@@ -1,60 +0,0 @@
-package godown
-
-import (
-	"server/global"
-)
-
-type Commodity struct {
-	global.GVA_MODEL
-	Name           string         `json:"name" form:"name" gorm:"comment:商品名称"`
-	SupplierId     int            `json:"supplierId" form:"supplierId" gorm:"comment:供应商id"`
-	Supplier       Supplier       `json:"supplier" form:"supplier" gorm:"foreignKey:SupplierId;references:id;"`
-	Genre          int            `json:"genre" form:"genre" gorm:"comment:商品类型id"`
-	CommodityGenre CommodityGenre `json:"commodityGenre" form:"commodityGenre" gorm:"foreignKey:Genre;references:id;"`
-	UnitPrice      float64        `json:"unitPrice" form:"unitPrice" gorm:"comment:单价"`
-	Unity          string         `json:"unity" form:"unity" gorm:"comment:单位"`
-	Remark         string         `json:"remark" form:"remark" gorm:"comment:备注"`
-}
-
-func (Commodity) TableName() string {
-	return "commodity"
-}
-
-func QueryAllCommodity() (commodities []Commodity, err error) {
-	err = global.GVA_DB.Preload("Supplier").Preload("CommodityGenre").Find(&commodities).Error
-	return commodities, err
-}
-
-func QueryCommodityList(limit, offset int, name string) (commodities []Commodity, total int64, err error) {
-	// 创建db
-	db := global.GVA_DB.Model(&Commodity{})
-	// 如果有条件搜索 下方会自动创建搜索语句
-
-	if name != "" {
-		db = db.Where("name LIKE?", "%"+name+"%")
-	}
-
-	err = db.Count(&total).Error
-	if err != nil {
-		return
-	}
-	err = db.Order("id desc").Limit(limit).Offset(offset).Preload("Supplier").Preload("CommodityGenre").Find(&commodities).Error
-	return commodities, total, err
-}
-
-func QueryCommodityByGenre(genre int) (commodities []Commodity, err error) {
-	err = global.GVA_DB.Where("genre =?", genre).Preload("Supplier").Preload("CommodityGenre").Find(&commodities).Error
-	return commodities, err
-}
-
-func (c Commodity) CreateCommodity() error {
-	return global.GVA_DB.Create(&c).Error
-}
-
-func (c Commodity) UpdateCommodity() error {
-	return global.GVA_DB.Select("*").Omit("created_at").Where("id = ?", c.ID).Updates(&c).Error
-}
-
-func (c Commodity) DeleteCommodity() error {
-	return global.GVA_DB.Unscoped().Delete(&c).Error
-}

+ 0 - 30
server/dao/godown/commodityGenre.go

@@ -1,30 +0,0 @@
-package godown
-
-import "server/global"
-
-type CommodityGenre struct {
-	global.GVA_MODEL
-	Name    string `json:"name" form:"name" gorm:"comment:商品类目名称"`
-	Remarks string `json:"remarks" form:"remarks" gorm:"comment:备注"`
-}
-
-func (CommodityGenre) TableName() string {
-	return "commodity_genre"
-}
-
-func QueryAllCommodityGenres() (commodityGenres []CommodityGenre, err error) {
-	err = global.GVA_DB.Find(&commodityGenres).Error
-	return commodityGenres, err
-}
-
-func (cg CommodityGenre) CreateCommodityGenre() error {
-	return global.GVA_DB.Create(&cg).Error
-}
-
-func (cg CommodityGenre) UpdateCommodityGenre() error {
-	return global.GVA_DB.Select("*").Omit("created_at").Where("id = ?", cg.ID).Updates(&cg).Error
-}
-
-func (cg CommodityGenre) DeleteCommodityGenre() error {
-	return global.GVA_DB.Unscoped().Delete(&cg).Error
-}

+ 21 - 30
server/dao/godown/goods.go

@@ -6,15 +6,13 @@ import (
 
 type Goods struct {
 	global.GVA_MODEL
-	CommodityId   int         `json:"commodityId" gorm:"comment:商品id"`
-	Commodity     Commodity   `json:"commodity" gorm:"foreignKey:CommodityId;references:id;"`
-	Number        int         `json:"number" gorm:"comment:数量"`
-	WarehouseId   int         `json:"warehouseId" gorm:"comment:仓库id"`
-	Warehouse     Warehouse   `json:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"`
-	StorageAreaId int         `json:"storageAreaId" gorm:"comment:库区id"`
-	StorageArea   StorageArea `json:"storageArea" gorm:"foreignKey:StorageAreaId;references:id;"`
-	PlaceId       int         `json:"placeId" gorm:"comment:库位id"`
-	Place         Place       `json:"place" gorm:"foreignKey:PlaceId;references:id;"`
+	Name           string     `json:"name" gorm:"comment:名称"`
+	GoodsGenreId   int        `json:"goodsGenreId" gorm:"comment:类型"`
+	GoodsGenre     GoodsGenre `json:"goodsGenre" gorm:"foreignKey:GoodsGenreId;"`
+	Characteristic string     `json:"characteristic" gorm:"comment:特性"`
+	Specifications string     `json:"specifications" gorm:"comment:规格"`
+	Unit           string     `json:"unit" gorm:"comment:单位"`
+	Number         int        `json:"number" gorm:"comment:数量"`
 }
 
 func (Goods) TableName() string {
@@ -22,45 +20,38 @@ func (Goods) TableName() string {
 }
 
 func QueryAllGoods() (goods []Goods, err error) {
-	err = global.GVA_DB.Model(&Goods{}).Preload("Commodity").Preload("Warehouse").Preload("StorageArea").Preload("Place").Find(&goods).Error
+	err = global.GVA_DB.Model(&Goods{}).Find(&goods).Error
 	return
 }
 
-func QueryGoodsList(limit, offset, commodityId, warehouseId, storageAreaId, placeId int) (goods []Goods, total int64, err error) {
+func QueryGoodsList(limit, offset, genre int, name, characteristic, specifications string) (goods []Goods, total int64, err error) {
 	// 创建db
 	db := global.GVA_DB.Model(&Goods{}).Debug()
 	// 如果有条件搜索 下方会自动创建搜索语句
-
-	if commodityId != 0 {
-		db = db.Where("commodity_id = ?", commodityId)
+	if name != "" {
+		db = db.Where("name LIKE ?", "%"+name+"%")
 	}
-	if warehouseId != 0 {
-		db = db.Where("warehouse_id = ?", warehouseId)
+	if characteristic != "" {
+		db = db.Where("characteristic LIKE ?", "%"+characteristic+"%")
 	}
-	if storageAreaId != 0 {
-		db = db.Where("storage_area_id = ?", storageAreaId)
+	if specifications != "" {
+		db = db.Where("specifications LIKE ?", "%"+specifications+"%")
 	}
-	if placeId != 0 {
-		db = db.Where("place_id = ?", placeId)
+	if genre > 0 {
+		db = db.Where("goods_genre_id = ?", genre)
 	}
 
 	err = db.Count(&total).Error
 	if err != nil {
 		return
 	}
-	err = db.Order("id desc").Limit(limit).Offset(offset).Preload("Commodity").Preload("Warehouse").Preload("StorageArea").Preload("Place").Find(&goods).Error
+	err = db.Order("id desc").Limit(limit).Offset(offset).Find(&goods).Error
 	return goods, total, err
 }
 
-func GetInventory(commodityId, warehouseId, storageAreaId, placeId int) (goods Goods, commodity Commodity, place Place) {
-	global.GVA_DB.Model(&Goods{}).
-		Where("commodity_id = ? AND warehouse_id = ? AND storage_area_id = ? AND place_id = ?",
-			commodityId, warehouseId, storageAreaId, placeId).
-		First(&goods)
-
-	global.GVA_DB.First(&commodity, commodityId)
-	global.GVA_DB.First(&place, placeId)
-	return
+func QueryGoodsByGenre(genreId int) (goods []Goods, err error) {
+	err = global.GVA_DB.Model(&Goods{}).Where("goods_genre_id = ?", genreId).Find(&goods).Error
+	return goods, err
 }
 
 func (g Goods) CreateGoods() error {

+ 110 - 0
server/dao/godown/goodsGenre.go

@@ -0,0 +1,110 @@
+package godown
+
+import (
+	"fmt"
+	"server/global"
+)
+
+type GoodsGenre struct {
+	global.GVA_MODEL
+	Name     string       `json:"name" form:"name" gorm:"comment:商品类目名称"`
+	Remarks  string       `json:"remarks" form:"remarks" gorm:"comment:备注"`
+	ParentID *uint        `json:"parentId" form:"parentId" gorm:"comment:父级类目ID;default:null"` // 父级ID,null表示顶级类目
+	Parent   *GoodsGenre  `json:"parent" gorm:"foreignKey:ParentID;references:ID"`             // 父级类目关联
+	Children []GoodsGenre `json:"children" gorm:"foreignKey:ParentID;references:ID"`           // 子级类目列表
+}
+
+func (GoodsGenre) TableName() string {
+	return "goods_genre"
+}
+
+// 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 {
+		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 {
+			return nil, err
+		}
+	}
+
+	return commodityGenres, nil
+}
+
+// CreateGoodsGenre 创建商品类目
+func (cg GoodsGenre) CreateGoodsGenre() error {
+	// 验证:如果是二级类目,检查父类目是否存在
+	if cg.ParentID != nil {
+		var count int64
+		if err := global.GVA_DB.Model(&GoodsGenre{}).Where("id = ?", cg.ParentID).Count(&count).Error; err != nil {
+			return err
+		}
+		if count == 0 {
+			return fmt.Errorf("父级类目不存在")
+		}
+
+		// 验证:确保不超过二级分类(父类目必须是顶级类目)
+		var parentGenre GoodsGenre
+		if err := global.GVA_DB.Where("id = ?", cg.ParentID).First(&parentGenre).Error; err != nil {
+			return err
+		}
+		if parentGenre.ParentID != nil {
+			return fmt.Errorf("最多支持二级分类,不能为三级及以上分类")
+		}
+	}
+
+	return global.GVA_DB.Create(&cg).Error
+}
+
+// UpdateGoodsGenre 更新商品类目
+func (cg GoodsGenre) UpdateGoodsGenre() error {
+	// 如果更新了父级ID,需要验证
+	if cg.ParentID != nil {
+		var count int64
+		if err := global.GVA_DB.Model(&GoodsGenre{}).Where("id = ?", cg.ParentID).Count(&count).Error; err != nil {
+			return err
+		}
+		if count == 0 {
+			return fmt.Errorf("父级类目不存在")
+		}
+
+		// 不能将自己设置为父类目
+		if *cg.ParentID == cg.ID {
+			return fmt.Errorf("不能将自身设置为父级类目")
+		}
+
+		// 检查是否会形成循环引用
+		var childrenCount int64
+		if err := global.GVA_DB.Model(&GoodsGenre{}).Where("parent_id = ? AND id = ?", cg.ID, cg.ParentID).Count(&childrenCount).Error; err != nil {
+			return err
+		}
+		if childrenCount > 0 {
+			return fmt.Errorf("不能将子类目设置为父类目,会导致循环引用")
+		}
+	}
+
+	return global.GVA_DB.Select("*").Omit("created_at").Where("id = ?", cg.ID).Updates(&cg).Error
+}
+
+// DeleteGoodsGenre 删除商品类目
+func (cg GoodsGenre) DeleteGoodsGenre() error {
+	// 检查是否有子类目,如果有则不允许删除或级联删除
+	var childrenCount int64
+	if err := global.GVA_DB.Model(&GoodsGenre{}).Where("parent_id = ?", cg.ID).Count(&childrenCount).Error; err != nil {
+		return err
+	}
+
+	if childrenCount > 0 {
+		return fmt.Errorf("该类目下存在子类目,请先删除子类目")
+		// 或者使用级联删除:
+		// if err := global.GVA_DB.Where("parent_id = ?", cg.ID).Delete(&GoodsGenre{}).Error; err != nil {
+		//     return err
+		// }
+	}
+
+	return global.GVA_DB.Unscoped().Delete(&cg).Error
+}

+ 11 - 19
server/dao/godown/manifest.go

@@ -12,7 +12,8 @@ type Manifest struct {
 	ManifestGenre string  `json:"manifestGenre" gorm:"comment:'货单类型'"`
 	Title         string  `json:"title" gorm:"comment:'标题'"`
 	Cargos        []Cargo `json:"cargos" gorm:"foreignKey:ManifestId"`
-	Custodian     string  `json:"custodian" gorm:"comment:管理人"`
+	Custodian     string  `json:"custodian" gorm:"comment:负责人"`
+	Remarks       string  `json:"remarks" gorm:"comment:'备注'"`
 }
 
 func (Manifest) TableName() string {
@@ -75,8 +76,8 @@ func CreateInboundManifest(manifestGenre, title, custodian string, cargos []Carg
 		for _, cargo := range manifest.Cargos {
 			// 检查是否已存在相同商品、仓库、库区、库位的记录
 			var goods Goods
-			err := tx.Where("commodity_id = ? AND warehouse_id = ? AND storage_area_id = ? AND place_id = ?",
-				cargo.CommodityId, cargo.WarehouseId, cargo.StorageAreaId, cargo.PlaceId).
+			err := tx.Where("good_id = ?",
+				cargo.GoodsId).
 				First(&goods).Error
 
 			if err == nil {
@@ -86,17 +87,8 @@ func CreateInboundManifest(manifestGenre, title, custodian string, cargos []Carg
 					return fmt.Errorf("更新库存失败: %v", err)
 				}
 			} else if errors.Is(err, gorm.ErrRecordNotFound) {
-				// 不存在记录:新建库存
-				newGoods := Goods{
-					CommodityId:   cargo.CommodityId,
-					Number:        cargo.Number,
-					WarehouseId:   cargo.WarehouseId,
-					StorageAreaId: cargo.StorageAreaId,
-					PlaceId:       cargo.PlaceId,
-				}
-				if err := tx.Create(&newGoods).Error; err != nil {
-					return fmt.Errorf("创建库存失败: %v", err)
-				}
+				// 不存在记录
+				return fmt.Errorf("查询库存失败: %v", err)
 			} else {
 				return fmt.Errorf("查询库存失败: %v", err)
 			}
@@ -112,14 +104,14 @@ func CreateOutboundManifest(manifestGenre, title, custodian string, cargos []Car
 		// 1. 检查库存是否充足(预扣减检查)
 		for _, cargo := range cargos {
 			var goods Goods
-			if err := tx.Where("commodity_id = ? AND warehouse_id = ? AND storage_area_id = ? AND place_id = ?",
-				cargo.CommodityId, cargo.WarehouseId, cargo.StorageAreaId, cargo.PlaceId).
+			if err := tx.Where("good_id = ?",
+				cargo.GoodsId).
 				First(&goods).Error; err != nil {
 				return fmt.Errorf("库存记录不存在: %v", err)
 			}
 			if goods.Number < cargo.Number {
 				return fmt.Errorf("商品 %v 库存不足(当前: %d,需要: %d)",
-					cargo.Commodity.Name, goods.Number, cargo.Number)
+					cargo.Goods.Name, goods.Number, cargo.Number)
 			}
 		}
 
@@ -137,8 +129,8 @@ func CreateOutboundManifest(manifestGenre, title, custodian string, cargos []Car
 		// 3. 扣减库存
 		for _, cargo := range manifest.Cargos {
 			if err := tx.Model(&Goods{}).
-				Where("commodity_id = ? AND warehouse_id = ? AND storage_area_id = ? AND place_id = ?",
-					cargo.CommodityId, cargo.WarehouseId, cargo.StorageAreaId, cargo.PlaceId).
+				Where("goods_id = ?",
+					cargo.GoodsId).
 				Update("number", gorm.Expr("number - ?", cargo.Number)).
 				Error; err != nil {
 				return fmt.Errorf("扣减库存失败: %v", err)

+ 0 - 69
server/dao/godown/place.go

@@ -1,69 +0,0 @@
-package godown
-
-import (
-	"server/global"
-)
-
-type Place struct {
-	global.GVA_MODEL
-	Code           string         `json:"code" form:"code" gorm:"comment:库位编码"`
-	ShelfNumber    string         `json:"shelfNumber" form:"shelfNumber" gorm:"comment:货架号"`
-	LayerNumber    string         `json:"layerNumber" form:"layerNumber" gorm:"comment:层号"`
-	Genre          int            `json:"genre" form:"genre" gorm:"comment:商品类型"`
-	CommodityGenre CommodityGenre `json:"commodityGenre" form:"commodityGenre" gorm:"foreignKey:Genre;references:id;"`
-	StorageAreaID  int            `json:"storageAreaId" form:"storageAreaId" gorm:"comment:所属库区id"`
-	StorageArea    StorageArea    `json:"storageArea" form:"storageArea" gorm:"foreignKey:StorageAreaID;references:id;"`
-	WarehouseId    int            `json:"warehouseId" form:"warehouseId" gorm:"comment:仓库"`
-	Warehouse      Warehouse      `json:"warehouse" form:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"`
-	IsEffective    bool           `json:"isEffective" form:"isEffective" gorm:"comment:是否有效;default:0"`
-}
-
-func (Place) TableName() string {
-	return "place"
-}
-
-func QueryAllPlace() (places []Place, err error) {
-	err = global.GVA_DB.Where("is_effective = true").Find(&places).Error
-	return
-}
-
-func QueryPlaceList(limit, offset, genre, warehouseId, storageAreaId int, name string) (places []Place, total int64, err error) {
-	// 创建db
-	db := global.GVA_DB.Model(&Place{})
-	// 如果有条件搜索 下方会自动创建搜索语句
-	if genre != 0 {
-		db = db.Where("genre = ?", genre)
-	}
-	if storageAreaId != 0 {
-		db = db.Where("id = ?", storageAreaId)
-	}
-	if warehouseId != 0 {
-		db = db.Where("warehouse_id = ?", warehouseId)
-	}
-	if name != "" {
-		db = db.Where("code LIKE ?", "%"+name+"%")
-	}
-
-	err = db.Count(&total).Error
-	if err != nil {
-		return
-	}
-	err = db.Order("id desc").Limit(limit).Offset(offset).Preload("StorageArea").Preload("Warehouse").Preload("CommodityGenre").Find(&places).Error
-	return places, total, err
-}
-
-func (p Place) CreatePlace() error {
-	return global.GVA_DB.Create(&p).Error
-}
-
-func (p Place) SwitchPlace() error {
-	return global.GVA_DB.Select("is_effective").Where("id = ?", p.ID).Updates(&p).Error
-}
-
-func (p Place) UpdatePlace() error {
-	return global.GVA_DB.Model(&Place{}).Where("id =?", p.ID).Updates(&p).Error
-}
-
-func (p Place) DeletePlace() error {
-	return global.GVA_DB.Unscoped().Delete(&p).Error
-}

+ 0 - 63
server/dao/godown/storageArea.go

@@ -1,63 +0,0 @@
-package godown
-
-import (
-	"server/global"
-)
-
-type StorageArea struct {
-	global.GVA_MODEL
-	Name           string         `json:"name" form:"name" gorm:"comment:库区名称"`
-	Genre          int            `json:"genre" form:"genre" gorm:"comment:库区类型"`
-	CommodityGenre CommodityGenre `json:"commodityGenre" form:"commodityGenre" gorm:"foreignKey:Genre;references:id;"`
-	WarehouseId    int            `json:"warehouseId" form:"warehouseId" gorm:"comment:仓库"`
-	Warehouse      Warehouse      `json:"warehouse" form:"warehouse" gorm:"foreignKey:WarehouseId;references:id;"`
-	IsEffective    bool           `json:"isEffective" form:"isEffective" gorm:"comment:是否有效;default:0"`
-	Places         []Place        `json:"places" form:"places" gorm:"foreignKey:StorageAreaID;"`
-}
-
-func (StorageArea) TableName() string {
-	return "storage_area"
-}
-
-func QueryAllStorageArea() (storageAreas []StorageArea, err error) {
-	err = global.GVA_DB.Where("is_effective = true").Preload("CommodityGenre").Find(&storageAreas).Error
-	return storageAreas, err
-}
-
-func QueryStorageAreaList(limit, offset, genre, warehouseId int, name string) (storageAreas []StorageArea, total int64, err error) {
-	// 创建db
-	db := global.GVA_DB.Model(&StorageArea{})
-	// 如果有条件搜索 下方会自动创建搜索语句
-	if genre != 0 {
-		db = db.Where("genre = ?", genre)
-	}
-	if warehouseId != 0 {
-		db = db.Where("warehouse_id = ?", warehouseId)
-	}
-	if name != "" {
-		db = db.Where("name LIKE?", "%"+name+"%")
-	}
-
-	err = db.Count(&total).Error
-	if err != nil {
-		return
-	}
-	err = db.Order("id desc").Limit(limit).Offset(offset).Preload("Warehouse").Preload("CommodityGenre").Find(&storageAreas).Error
-	return storageAreas, total, err
-}
-
-func (sa StorageArea) CreateStorageArea() error {
-	return global.GVA_DB.Create(&sa).Error
-}
-
-func (sa StorageArea) UpdateStorageArea() error {
-	return global.GVA_DB.Where("id = ?", sa.ID).Updates(&sa).Error
-}
-
-func (sa StorageArea) SwitchStorageArea() error {
-	return global.GVA_DB.Select("is_effective").Where("id = ?", sa.ID).Updates(&sa).Error
-}
-
-func (sa StorageArea) DeleteStorageArea() error {
-	return global.GVA_DB.Unscoped().Delete(&sa).Error
-}

+ 0 - 31
server/dao/godown/storageAreaGenre.go

@@ -1,31 +0,0 @@
-package godown
-
-import "server/global"
-
-type StorageAreaGenre struct {
-	global.GVA_MODEL
-	Name string `json:"name" form:"name" gorm:"comment:库区类目名称"`
-}
-
-func (StorageAreaGenre) TableName() string {
-	return "storage_area_genre"
-}
-
-func QueryAllStorageAreaGenres() (genre []StorageAreaGenre, err error) {
-	err = global.GVA_DB.Find(&genre).Error
-	return
-}
-
-func (sg StorageAreaGenre) CreateStorageAreaGenre() error {
-	return global.GVA_DB.Create(&sg).Error
-}
-
-func (sg StorageAreaGenre) UpdateStorageAreaGenre() error {
-	err := global.GVA_DB.Model(&sg).Where("id = ?", sg.ID).Updates(&sg).Error
-	return err
-}
-
-func (sg StorageAreaGenre) DeleteStorageAreaGenre() error {
-	err := global.GVA_DB.Unscoped().Delete(&sg).Error
-	return err
-}

+ 0 - 53
server/dao/godown/supplier.go

@@ -1,53 +0,0 @@
-package godown
-
-import "server/global"
-
-type Supplier struct {
-	global.GVA_MODEL
-	Name        string `json:"name" form:"name" gorm:"comment:供应商名称"`
-	City        string `json:"city" form:"city" gorm:"comment:所在城市"`
-	Address     string `json:"address" form:"address" gorm:"comment:详细地址"`
-	ContactName string `json:"contactName" form:"contactName" gorm:"comment:联系人"`
-	Email       string `json:"email" form:"email" gorm:"comment:Email"`
-	Phone       string `json:"phone" form:"phone" gorm:"comment:联系电话"`
-	Remarks     string `json:"remarks" form:"remarks" gorm:"comment:备注"`
-}
-
-func (Supplier) TableName() string {
-	return "supplier"
-}
-
-func QueryAllSupplier() ([]Supplier, error) {
-	var suppliers []Supplier
-	err := global.GVA_DB.Find(&suppliers).Error
-	return suppliers, err
-}
-
-func QuerySupplierList(limit, offset int, name string) (suppliers []Supplier, total int64, err error) {
-	// 创建db
-	db := global.GVA_DB.Model(&Supplier{})
-	// 如果有条件搜索 下方会自动创建搜索语句
-
-	if name != "" {
-		db = db.Where("name LIKE ?", "%"+name+"%")
-	}
-
-	err = db.Count(&total).Error
-	if err != nil {
-		return
-	}
-	err = db.Order("id desc").Limit(limit).Offset(offset).Find(&suppliers).Error
-	return suppliers, total, err
-}
-
-func (s Supplier) CreateSupplier() error {
-	return global.GVA_DB.Create(&s).Error
-}
-
-func (s Supplier) UpdateSupplier() error {
-	return global.GVA_DB.Model(&s).Select("*").Omit("created_at").Updates(&s).Error
-}
-
-func (s Supplier) DeleteSupplier() error {
-	return global.GVA_DB.Unscoped().Delete(&s).Error
-}

+ 0 - 55
server/dao/godown/warehouse.go

@@ -1,55 +0,0 @@
-package godown
-
-import "server/global"
-
-type Warehouse struct {
-	global.GVA_MODEL
-	Name         string        `json:"name" form:"name" gorm:"comment:库房名称"`
-	Location     string        `json:"location" form:"location" gorm:"comment:库房位置"`
-	Head         string        `json:"head" form:"head" gorm:"comment:负责人"`
-	Remarks      string        `json:"remarks" form:"remarks" gorm:"comment:备注"`
-	IsEffective  bool          `json:"isEffective" form:"isEffective" gorm:"comment:是否有效;default:0"`
-	StorageAreas []StorageArea `json:"storageAreas" form:"storageAreas" gorm:"foreignKey:WarehouseId"`
-}
-
-func (Warehouse) TableName() string {
-	return "warehouse"
-}
-
-func QueryAllWarehouse() (warehouse []Warehouse, err error) {
-	err = global.GVA_DB.Where("is_effective = true").Model(&Warehouse{}).Preload("StorageAreas").Preload("StorageAreas.Places").Find(&warehouse).Error
-	return warehouse, err
-}
-
-func QueryWarehouseList(limit, offset int, name string) (warehouse []Warehouse, total int64, err error) {
-	// 创建db
-	db := global.GVA_DB.Model(&Warehouse{})
-	// 如果有条件搜索 下方会自动创建搜索语句
-
-	if name != "" {
-		db = db.Where("name LIKE ?", "%"+name+"%")
-	}
-
-	err = db.Count(&total).Error
-	if err != nil {
-		return
-	}
-	err = db.Order("id desc").Limit(limit).Offset(offset).Find(&warehouse).Error
-	return warehouse, total, err
-}
-
-func (w Warehouse) CreateWarehouse() error {
-	return global.GVA_DB.Create(&w).Error
-}
-
-func (w Warehouse) UpdateWarehouse() error {
-	return global.GVA_DB.Where("id = ?", w.ID).Updates(&w).Error
-}
-
-func (w Warehouse) SwitchWarehouse() error {
-	return global.GVA_DB.Select("is_effective").Where("id = ?", w.ID).Updates(&w).Error
-}
-
-func (w Warehouse) DeleteWarehouse() error {
-	return global.GVA_DB.Unscoped().Delete(&w).Error
-}

+ 3 - 0
server/dao/project.go

@@ -24,6 +24,9 @@ type Project struct {
 	SupervisorUint       string                `json:"supervisorUint" form:"supervisorUint" gorm:"comment:监理单位"`
 	SupervisorName       string                `json:"supervisorName" form:"supervisorName" gorm:"comment:监理姓名"`
 	SupervisorPhone      string                `json:"supervisorPhone" form:"supervisorPhone" gorm:"comment:监理电话"`
+	CooperativeUnits     string                `json:"cooperativeUnits" form:"cooperativeUnits" gorm:"comment:合作单位"`
+	CooperativePrincipal string                `json:"cooperativePrincipal" form:"cooperativePrincipal" gorm:"comment:合作单位负责人"`
+	CooperativePhone     string                `json:"cooperativePhone" form:"cooperativePhone" gorm:"comment:合作单位电话"`
 	Illustrate           string                `json:"illustrate" form:"illustrate" gorm:"comment:说明;type:varchar(200)"`
 	State                int                   `json:"state" form:"state" gorm:"comment:状态"`
 	ProjectState         ProjectState          `json:"projectState" form:"projectState" gorm:"foreignKey:State;references:id;"`

+ 2 - 2
server/dao/projectWorkingHours.go

@@ -23,7 +23,7 @@ func (ProjectWorkingHours) TableName() string {
 // QueryWorkingHoursList 查询工时详情列表
 func QueryWorkingHoursList(limit, offset, people int, code, time, yearTime string) (projectWorkingHours []ProjectWorkingHours, total int64, err error) {
 	// 创建db
-	db := global.GVA_DB.Model(&ProjectWorkingHours{})
+	db := global.GVA_DB.Debug().Model(&ProjectWorkingHours{})
 	// 如果有条件搜索 下方会自动创建搜索语句
 	if code != "" {
 		db = db.Where("project_code like ?", "%"+code+"%")
@@ -70,7 +70,7 @@ func QueryWorkingHoursSum(limit, offset, people int, code, time, yearTime string
 	if yearTime != "" {
 		db = db.Where("DATE_FORMAT(people_time, '%Y') = ?", yearTime)
 	}
-	err = db.Group("people").Limit(limit).Offset(offset).Preload("SysUser").Count(&total).Scan(&results).Error
+	err = db.Group("people").Count(&total).Limit(limit).Offset(offset).Preload("SysUser").Scan(&results).Error
 	return results, total, err
 }
 

+ 1 - 7
server/initialize/gorm.go

@@ -79,16 +79,10 @@ func RegisterTables() {
 		dao.ProjectProcess{},
 		dao.ProcessNodes{},
 
-		godown.Commodity{},
-		godown.CommodityGenre{},
-		godown.Supplier{},
-		godown.Warehouse{},
-		godown.Place{},
-		godown.StorageArea{},
-		godown.StorageAreaGenre{},
 		godown.Manifest{},
 		godown.Cargo{},
 		godown.Goods{},
+		godown.GoodsGenre{},
 
 		crm.Customer{},
 		crm.CustomerGenre{},

+ 1 - 7
server/initialize/router.go

@@ -104,13 +104,7 @@ func Routers() *gin.Engine {
 		workflowRouter.InitDescriptionRouter(PrivateGroup)
 		workflowRouter.InitProjectProcessRouter(PrivateGroup)
 
-		storehouseRouter.InitSupplierRouter(PrivateGroup)
-		storehouseRouter.InitWarehouseRouter(PrivateGroup)
-		storehouseRouter.InitCommodityRouter(PrivateGroup)
-		storehouseRouter.InitCommodityGenreRouter(PrivateGroup)
-		storehouseRouter.InitPlaceRouter(PrivateGroup)
-		storehouseRouter.InitStorageAreaRouter(PrivateGroup)
-		storehouseRouter.InitStorageAreaGenreRouter(PrivateGroup)
+		storehouseRouter.InitGoodsGenreRouter(PrivateGroup)
 		storehouseRouter.InitManifestRouter(PrivateGroup)
 		storehouseRouter.InitGoodsRouter(PrivateGroup)
 

+ 5 - 5
server/model/common/request/common.go

@@ -151,11 +151,11 @@ type SearchManifest struct {
 }
 
 type SearchGoods struct {
-	PageInfo      PageInfo `json:"pageInfo" form:"pageInfo"`
-	CommodityId   int      `json:"commodityId" form:"commodityId"`
-	WarehouseId   int      `json:"warehouseId" form:"warehouseId"`
-	StorageAreaId int      `json:"storageAreaId" form:"storageAreaId"`
-	PlaceId       int      `json:"placeId" form:"placeId"`
+	PageInfo       PageInfo `json:"pageInfo" form:"pageInfo"`
+	Genre          int      `json:"genre" form:"genre"`
+	Name           string   `json:"name" form:"name"`
+	Characteristic string   `json:"characteristic" form:"characteristic"`
+	Specifications string   `json:"specifications" form:"specifications"`
 }
 
 type GetInventoryRequest struct {

+ 0 - 25
server/router/storehouse/commodity.go

@@ -1,25 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	v1 "server/api/v1"
-	"server/middleware"
-)
-
-type CommodityRouter struct{}
-
-func (s *CommodityRouter) InitCommodityRouter(Router *gin.RouterGroup) {
-	commodityRouter := Router.Group("commodity").Use(middleware.OperationRecord())
-	commodityRouterWithoutRecord := Router.Group("commodity")
-
-	commodityApi := v1.ApiGroupApp.StorehouseApiGroup.CommodityApi
-	{
-		commodityRouter.POST("createCommodity", commodityApi.CreateCommodity)
-		commodityRouter.PUT("updateCommodity", commodityApi.UpdateCommodity)
-		commodityRouter.DELETE("deleteCommodity", commodityApi.DeleteCommodity)
-	}
-	{
-		commodityRouterWithoutRecord.GET("queryAllCommodity", commodityApi.QueryAllCommodity)
-		commodityRouterWithoutRecord.POST("queryCommodityList", commodityApi.QueryCommodityList)
-	}
-}

+ 0 - 25
server/router/storehouse/commodityGenre.go

@@ -1,25 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	v1 "server/api/v1"
-	"server/middleware"
-)
-
-type CommodityGenreRouter struct{}
-
-func (r *CommodityGenreRouter) InitCommodityGenreRouter(Router *gin.RouterGroup) {
-	commodityGenreRouter := Router.Group("commodityGenre").Use(middleware.OperationRecord())
-	commodityGenreRouterWithoutRecord := Router.Group("commodityGenre")
-	commodityGenreApi := v1.ApiGroupApp.StorehouseApiGroup.CommodityGenreApi
-
-	{
-		commodityGenreRouter.POST("createCommodityGenre", commodityGenreApi.CreateCommodityGenre)
-		commodityGenreRouter.PUT("updateCommodityGenre", commodityGenreApi.UpdateCommodityGenre)
-		commodityGenreRouter.DELETE("deleteCommodityGenre", commodityGenreApi.DeleteCommodityGenre)
-	}
-
-	{
-		commodityGenreRouterWithoutRecord.GET("queryAllCommodityGenre", commodityGenreApi.QueryAllCommodityGenre)
-	}
-}

+ 1 - 7
server/router/storehouse/enter.go

@@ -1,13 +1,7 @@
 package storehouse
 
 type RouterGroup struct {
-	CommodityRouter
-	CommodityGenreRouter
-	SupplierRouter
-	WarehouseRouter
-	PlaceRouter
-	StorageAreaRouter
-	StorageAreaGenreRouter
 	ManifestRouter
 	GoodsRouter
+	GoodsGenreRouter
 }

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

@@ -17,6 +17,5 @@ func (s *GoodsRouter) InitGoodsRouter(Router *gin.RouterGroup) {
 	{
 		goodsRouterWithoutRecord.GET("queryAllGoods", goodsApi.QueryAllGoods)
 		goodsRouterWithoutRecord.POST("queryGoodsList", goodsApi.QueryGoodsList)
-		goodsRouterWithoutRecord.POST("getInventory", goodsApi.GetInventory)
 	}
 }

+ 25 - 0
server/router/storehouse/goodsGenre.go

@@ -0,0 +1,25 @@
+package storehouse
+
+import (
+	"github.com/gin-gonic/gin"
+	v1 "server/api/v1"
+	"server/middleware"
+)
+
+type GoodsGenreRouter struct{}
+
+func (r *GoodsGenreRouter) InitGoodsGenreRouter(Router *gin.RouterGroup) {
+	goodsGenreRouter := Router.Group("goodsGenre").Use(middleware.OperationRecord())
+	goodsGenreRouterWithoutRecord := Router.Group("goodsGenre")
+	goodsGenreApi := v1.ApiGroupApp.StorehouseApiGroup.GoodsGenreApi
+
+	{
+		goodsGenreRouter.POST("createGoodsGenre", goodsGenreApi.CreateGoodsGenre)
+		goodsGenreRouter.PUT("updateGoodsGenre", goodsGenreApi.UpdateGoodsGenre)
+		goodsGenreRouter.DELETE("deleteGoodsGenre", goodsGenreApi.DeleteGoodsGenre)
+	}
+
+	{
+		goodsGenreRouterWithoutRecord.GET("queryAllGoodsGenre", goodsGenreApi.QueryAllGoodsGenre)
+	}
+}

+ 0 - 26
server/router/storehouse/place.go

@@ -1,26 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	v1 "server/api/v1"
-	"server/middleware"
-)
-
-type PlaceRouter struct{}
-
-func (s *PlaceRouter) InitPlaceRouter(Router *gin.RouterGroup) {
-	placeRouter := Router.Group("place").Use(middleware.OperationRecord())
-	placeRouterWithoutRecord := Router.Group("place")
-
-	placeApi := v1.ApiGroupApp.StorehouseApiGroup.PlaceApi
-	{
-		placeRouter.POST("createPlace", placeApi.CreatePlace)
-		placeRouter.PUT("updatePlace", placeApi.UpdatePlace)
-		placeRouter.PUT("switchPlace", placeApi.SwitchPlace)
-		placeRouter.DELETE("deletePlace", placeApi.DeletePlace)
-	}
-	{
-		placeRouterWithoutRecord.GET("queryAllPlace", placeApi.QueryAllPlace)
-		placeRouterWithoutRecord.POST("queryPlaceList", placeApi.QueryPlaceList)
-	}
-}

+ 0 - 26
server/router/storehouse/storageArea.go

@@ -1,26 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	v1 "server/api/v1"
-	"server/middleware"
-)
-
-type StorageAreaRouter struct{}
-
-func (sar *StorageAreaRouter) InitStorageAreaRouter(Router *gin.RouterGroup) {
-	storageAreaRouter := Router.Group("storageArea").Use(middleware.OperationRecord())
-	storageAreaRouterWithoutRecord := Router.Group("storageArea")
-
-	storageAreaApi := v1.ApiGroupApp.StorehouseApiGroup.StorageAreaApi
-	{
-		storageAreaRouter.POST("createStorageArea", storageAreaApi.CreateStorageArea)
-		storageAreaRouter.PUT("updateStorageArea", storageAreaApi.UpdateStorageArea)
-		storageAreaRouter.PUT("switchStorageArea", storageAreaApi.SwitchStorageArea)
-		storageAreaRouter.DELETE("deleteStorageArea", storageAreaApi.DeleteStorageArea)
-	}
-	{
-		storageAreaRouterWithoutRecord.GET("queryAllStorageAreas", storageAreaApi.QueryAllStorageAreas)
-		storageAreaRouterWithoutRecord.POST("queryStorageAreaList", storageAreaApi.QueryStorageAreaList)
-	}
-}

+ 0 - 24
server/router/storehouse/storageAreaGenre.go

@@ -1,24 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	v1 "server/api/v1"
-	"server/middleware"
-)
-
-type StorageAreaGenreRouter struct{}
-
-func (sar *StorageAreaGenreRouter) InitStorageAreaGenreRouter(Router *gin.RouterGroup) {
-	storageAreaGenreRouter := Router.Group("storageAreaGenre").Use(middleware.OperationRecord())
-	storageAreaGenreRouterWithoutRecord := Router.Group("storageAreaGenre")
-
-	storageAreaGenreApi := v1.ApiGroupApp.StorehouseApiGroup.StorageAreaGenreApi
-	{
-		storageAreaGenreRouter.POST("createStorageAreaGenre", storageAreaGenreApi.CreateStorageAreaGenre)
-		storageAreaGenreRouter.PUT("updateStorageAreaGenre", storageAreaGenreApi.UpdateStorageAreaGenre)
-		storageAreaGenreRouter.DELETE("deleteStorageAreaGenre", storageAreaGenreApi.DeleteStorageAreaGenre)
-	}
-	{
-		storageAreaGenreRouterWithoutRecord.GET("queryAllStorageAreaGenre", storageAreaGenreApi.QueryAllStorageAreaGenre)
-	}
-}

+ 0 - 26
server/router/storehouse/supplier.go

@@ -1,26 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	v1 "server/api/v1"
-	"server/middleware"
-)
-
-type SupplierRouter struct{}
-
-func (r *SupplierRouter) InitSupplierRouter(Router *gin.RouterGroup) {
-	supplierRouter := Router.Group("supplier").Use(middleware.OperationRecord())
-	supplierRouterWithoutRecord := Router.Group("supplier")
-	supplierApi := v1.ApiGroupApp.StorehouseApiGroup.SupplierApi
-
-	{
-		supplierRouter.POST("createSupplier", supplierApi.CreateSupplier)
-		supplierRouter.PUT("updateSupplier", supplierApi.UpdateSupplier)
-		supplierRouter.DELETE("deleteSupplier", supplierApi.DeleteSupplier)
-	}
-
-	{
-		supplierRouterWithoutRecord.GET("queryAllSupplier", supplierApi.QueryAllSupplier)
-		supplierRouterWithoutRecord.POST("querySupplierList", supplierApi.QuerySupplierList)
-	}
-}

+ 0 - 27
server/router/storehouse/warehouse.go

@@ -1,27 +0,0 @@
-package storehouse
-
-import (
-	"github.com/gin-gonic/gin"
-	v1 "server/api/v1"
-	"server/middleware"
-)
-
-type WarehouseRouter struct{}
-
-func (r *WarehouseRouter) InitWarehouseRouter(Router *gin.RouterGroup) {
-	warehouseRouter := Router.Group("warehouse").Use(middleware.OperationRecord())
-	warehouseRouterWithoutRecord := Router.Group("warehouse")
-
-	warehouseApi := v1.ApiGroupApp.StorehouseApiGroup.WarehouseApi
-
-	{
-		warehouseRouter.POST("createWarehouse", warehouseApi.CreateWarehouse)
-		warehouseRouter.PUT("updateWarehouse", warehouseApi.UpdateWarehouse)
-		warehouseRouter.PUT("switchWarehouse", warehouseApi.SwitchWarehouse)
-		warehouseRouter.DELETE("deleteWarehouse", warehouseApi.DeleteWarehouse)
-	}
-	{
-		warehouseRouterWithoutRecord.GET("queryAllWarehouse", warehouseApi.QueryAllWarehouse)
-		warehouseRouterWithoutRecord.POST("queryWarehouseList", warehouseApi.QueryWarehouseList)
-	}
-}

+ 0 - 30
server/service/storehouse/commodity.go

@@ -1,30 +0,0 @@
-package storehouse
-
-import (
-	"server/dao/godown"
-	"server/model/common/request"
-)
-
-type CommodityService struct{}
-
-func (cs *CommodityService) QueryAllCommodity() ([]godown.Commodity, error) {
-	return godown.QueryAllCommodity()
-}
-
-func (cs *CommodityService) QueryCommodityList(info request.SearchCommodityList) (list interface{}, total int64, err error) {
-	limit := info.PageInfo.PageSize
-	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
-	return godown.QueryCommodityList(limit, offset, info.Name)
-}
-
-func (cs *CommodityService) CreateCommodity(commodity godown.Commodity) error {
-	return commodity.CreateCommodity()
-}
-
-func (cs *CommodityService) UpdateCommodity(commodity godown.Commodity) error {
-	return commodity.UpdateCommodity()
-}
-
-func (cs *CommodityService) DeleteCommodity(commodity godown.Commodity) error {
-	return commodity.DeleteCommodity()
-}

+ 0 - 32
server/service/storehouse/commodityGenre.go

@@ -1,32 +0,0 @@
-package storehouse
-
-import (
-	"fmt"
-	"server/dao/godown"
-)
-
-type CommodityGenreService struct{}
-
-func (cgs *CommodityGenreService) QueryAllCommodityGenre() ([]godown.CommodityGenre, error) {
-	return godown.QueryAllCommodityGenres()
-}
-
-func (cgs *CommodityGenreService) CreateCommodityGenre(cg godown.CommodityGenre) error {
-	return cg.CreateCommodityGenre()
-}
-
-func (cgs *CommodityGenreService) UpdateCommodityGenre(cg godown.CommodityGenre) error {
-	return cg.UpdateCommodityGenre()
-}
-
-func (cgs *CommodityGenreService) DeleteCommodityGenre(cg godown.CommodityGenre) error {
-	commodity, err := godown.QueryCommodityByGenre(int(cg.ID))
-	if err != nil {
-		return err
-	}
-	if len(commodity) > 0 {
-		return fmt.Errorf("数据已被使用")
-	}
-
-	return cg.DeleteCommodityGenre()
-}

+ 1 - 7
server/service/storehouse/enter.go

@@ -1,13 +1,7 @@
 package storehouse
 
 type ServiceGroup struct {
-	CommodityService
-	SupplierService
-	CommodityGenreService
-	WarehouseService
-	PlaceService
-	StorageAreaService
-	StorageAreaGenreService
+	GoodsGenreService
 	ManifestService
 	GoodsService
 }

+ 1 - 17
server/service/storehouse/goods.go

@@ -1,10 +1,8 @@
 package storehouse
 
 import (
-	"fmt"
 	"server/dao/godown"
 	"server/model/common/request"
-	"server/model/common/response"
 )
 
 type GoodsService struct {
@@ -17,19 +15,5 @@ func (gs *GoodsService) QueryAllGoods() ([]godown.Goods, error) {
 func (gs *GoodsService) QueryGoodsList(info request.SearchGoods) (interface{}, int64, error) {
 	limit := info.PageInfo.PageSize
 	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
-	return godown.QueryGoodsList(limit, offset, info.CommodityId, info.WarehouseId, info.StorageAreaId, info.PlaceId)
-}
-
-func (gs *GoodsService) GetInventory(req request.GetInventoryRequest) response.InventoryResponse {
-	goods, commodity, place := godown.GetInventory(req.CommodityId, req.WarehouseId, req.StorageAreaId, req.PlaceId)
-
-	// 4. 返回结果
-	return response.InventoryResponse{
-		Number:        goods.Number,
-		CommodityName: commodity.Name,
-		Location: fmt.Sprintf("仓库%d-%s-货架%s",
-			req.WarehouseId,
-			place.StorageArea.Name,
-			place.Code),
-	}
+	return godown.QueryGoodsList(limit, offset, info.Genre, info.Name, info.Characteristic, info.Specifications)
 }

+ 32 - 0
server/service/storehouse/goodsGenre.go

@@ -0,0 +1,32 @@
+package storehouse
+
+import (
+	"fmt"
+	"server/dao/godown"
+)
+
+type GoodsGenreService struct{}
+
+func (cgs *GoodsGenreService) QueryAllGoodsGenre() ([]godown.GoodsGenre, error) {
+	return godown.QueryAllGoodsGenres()
+}
+
+func (cgs *GoodsGenreService) CreateGoodsGenre(cg godown.GoodsGenre) error {
+	return cg.CreateGoodsGenre()
+}
+
+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))
+	if err != nil {
+		return err
+	}
+	if len(goods) > 0 {
+		return fmt.Errorf("数据已被使用")
+	}
+
+	return cg.DeleteGoodsGenre()
+}

+ 0 - 34
server/service/storehouse/place.go

@@ -1,34 +0,0 @@
-package storehouse
-
-import (
-	"server/dao/godown"
-	"server/model/common/request"
-)
-
-type PlaceService struct{}
-
-func (p *PlaceService) QueryAllPlaces() ([]godown.Place, error) {
-	return godown.QueryAllPlace()
-}
-
-func (p *PlaceService) QueryPlaceList(info request.SearchPlace) (list interface{}, total int64, err error) {
-	limit := info.PageInfo.PageSize
-	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
-	return godown.QueryPlaceList(limit, offset, info.Genre, info.WarehouseId, info.StorageAreaId, info.Name)
-}
-
-func (p *PlaceService) CreatePlace(place godown.Place) error {
-	return place.CreatePlace()
-}
-
-func (p *PlaceService) UpdatePlace(place godown.Place) error {
-	return place.UpdatePlace()
-}
-
-func (p *PlaceService) SwitchPlace(place godown.Place) error {
-	return place.SwitchPlace()
-}
-
-func (p *PlaceService) DeletePlace(place godown.Place) error {
-	return place.DeletePlace()
-}

+ 0 - 34
server/service/storehouse/storageArea.go

@@ -1,34 +0,0 @@
-package storehouse
-
-import (
-	"server/dao/godown"
-	"server/model/common/request"
-)
-
-type StorageAreaService struct{}
-
-func (s *StorageAreaService) QueryAllStorageArea() ([]godown.StorageArea, error) {
-	return godown.QueryAllStorageArea()
-}
-
-func (s *StorageAreaService) QueryStorageAreaList(info request.SearchStorageArea) (list interface{}, total int64, err error) {
-	limit := info.PageInfo.PageSize
-	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
-	return godown.QueryStorageAreaList(limit, offset, info.Genre, info.WarehouseId, info.Name)
-}
-
-func (s *StorageAreaService) CreateStorageArea(storageArea godown.StorageArea) error {
-	return storageArea.CreateStorageArea()
-}
-
-func (s *StorageAreaService) UpdateStorageArea(storageArea godown.StorageArea) error {
-	return storageArea.UpdateStorageArea()
-}
-
-func (s *StorageAreaService) SwitchStorageArea(storageArea godown.StorageArea) error {
-	return storageArea.SwitchStorageArea()
-}
-
-func (s *StorageAreaService) DeleteStorageArea(storageArea godown.StorageArea) error {
-	return storageArea.DeleteStorageArea()
-}

+ 0 - 23
server/service/storehouse/storageAreaGenre.go

@@ -1,23 +0,0 @@
-package storehouse
-
-import (
-	"server/dao/godown"
-)
-
-type StorageAreaGenreService struct{}
-
-func (sags *StorageAreaGenreService) QueryAllStorageAreaGenres() ([]godown.StorageAreaGenre, error) {
-	return godown.QueryAllStorageAreaGenres()
-}
-
-func (sags *StorageAreaGenreService) CreateStorageAreaGenre(sg godown.StorageAreaGenre) error {
-	return sg.CreateStorageAreaGenre()
-}
-
-func (sags *StorageAreaGenreService) UpdateStorageAreaGenre(sg godown.StorageAreaGenre) error {
-	return sg.UpdateStorageAreaGenre()
-}
-
-func (sags *StorageAreaGenreService) DeleteStorageAreaGenre(sg godown.StorageAreaGenre) error {
-	return sg.DeleteStorageAreaGenre()
-}

+ 0 - 32
server/service/storehouse/supplier.go

@@ -1,32 +0,0 @@
-package storehouse
-
-import (
-	"server/dao/godown"
-	"server/model/common/request"
-)
-
-type SupplierService struct {
-}
-
-func (ss *SupplierService) QueryAllSupplier() ([]godown.Supplier, error) {
-	return godown.QueryAllSupplier()
-}
-
-func (ss *SupplierService) QuerySupplierList(info request.SearchSupplierList) (list interface{}, total int64, err error) {
-	limit := info.PageInfo.PageSize
-	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
-	suppliers, total, err := godown.QuerySupplierList(limit, offset, info.Name)
-	return suppliers, total, err
-}
-
-func (ss *SupplierService) CreateSupplier(supplier godown.Supplier) error {
-	return supplier.CreateSupplier()
-}
-
-func (ss *SupplierService) UpdateSupplier(supplier godown.Supplier) error {
-	return supplier.UpdateSupplier()
-}
-
-func (ss *SupplierService) DeleteSupplier(supplier godown.Supplier) error {
-	return supplier.DeleteSupplier()
-}

+ 0 - 35
server/service/storehouse/warehouse.go

@@ -1,35 +0,0 @@
-package storehouse
-
-import (
-	"server/dao/godown"
-	"server/model/common/request"
-)
-
-type WarehouseService struct{}
-
-func (ws *WarehouseService) QueryAllWarehouse() ([]godown.Warehouse, error) {
-	return godown.QueryAllWarehouse()
-}
-
-func (ws *WarehouseService) QueryWarehouseList(info request.SearchWarehouse) (list interface{}, total int64, err error) {
-	limit := info.PageInfo.PageSize
-	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
-	warehouse, total, err := godown.QueryWarehouseList(limit, offset, info.Name)
-	return warehouse, total, err
-}
-
-func (ws *WarehouseService) CreateWarehouse(warehouse godown.Warehouse) error {
-	return warehouse.CreateWarehouse()
-}
-
-func (ws *WarehouseService) UpdateWarehouse(warehouse godown.Warehouse) error {
-	return warehouse.UpdateWarehouse()
-}
-
-func (ws *WarehouseService) SwitchWarehouse(warehouse godown.Warehouse) error {
-	return warehouse.SwitchWarehouse()
-}
-
-func (ws *WarehouseService) DeleteWarehouse(warehouse godown.Warehouse) error {
-	return warehouse.DeleteWarehouse()
-}

+ 11 - 11
web/src/view/finance/financeAnalysis/components/hour.vue

@@ -206,17 +206,17 @@ const retrievalTime = () => {
 
 const addTime = () => {
   addCondition.projectCode = serial.currentCode
-  for (const i in addCondition) {
-    if (addCondition[i] === '' || addCondition[i] === null || addCondition[i] === 0) {
-      ElMessage({
-        message: '请将信息填写完整',
-        type: 'error',
-        showClose: true,
-        duration: 2000
-      })
-      return
-    }
-  }
+  // for (const i in addCondition) {
+  //   if (addCondition[i] === '' || addCondition[i] === null || addCondition[i] === 0) {
+  //     ElMessage({
+  //       message: '请将信息填写完整',
+  //       type: 'error',
+  //       showClose: true,
+  //       duration: 2000
+  //     })
+  //     return
+  //   }
+  // }
   createWorkingHours(addCondition).then(res => {
     if (res.code === 0) {
       ElMessage.success('添加成功')

+ 14 - 14
web/src/view/finance/financeAnalysis/components/payment.vue

@@ -364,20 +364,20 @@ const paymentAdd = () => {
   const addData = paymentAddData
   addData.collectionPrice = addAmount.value.length === 0 ? 0 : parseFloat(addAmount.value)
   addData.projectCode = serial.currentCode
-  for (const item in addData) {
-    if (item === 'serialNumber') {
-      continue
-    }
-    if (addData[item] === '' || addData[item] === 0) {
-      ElMessage({
-        message: '请将信息填写完整',
-        type: 'error',
-        showClose: true,
-        duration: 2000
-      })
-      return
-    }
-  }
+  // for (const item in addData) {
+  //   if (item === 'serialNumber') {
+  //     continue
+  //   }
+  //   if (addData[item] === '' || addData[item] === 0) {
+  //     ElMessage({
+  //       message: '请将信息填写完整',
+  //       type: 'error',
+  //       showClose: true,
+  //       duration: 2000
+  //     })
+  //     return
+  //   }
+  // }
   createCollection(addData).then(res => {
     const reset = condition
     reset.pageInfo.page = 1

+ 1 - 0
web/src/view/finance/financeAnalysis/components/projectCost.vue

@@ -684,6 +684,7 @@ const addDetailRecord = () => {
   drawerTitle.value = '新增项目费用项'
   drawerDataType.value = 'add'
   const initialData = {
+    ID: 0,
     reimburser: userList[0].ID,
     departmentId: userList[0].departmentId,
     expenditureAmount: 0,

+ 32 - 11
web/src/view/finance/workingHours/workingHours.vue

@@ -98,6 +98,17 @@
             </template>
           </el-table-column>
         </el-table>
+        <div class="gva-pagination">
+          <el-pagination
+            :current-page="searchWorkingHours.pageInfo.page"
+            :page-size="searchWorkingHours.pageInfo.pageSize"
+            :page-sizes="[10, 30, 50, 100]"
+            :total="workingTotal"
+            layout="total, sizes, prev, pager, next, jumper"
+            @current-change="handleCurrentChange1"
+            @size-change="handleSizeChange1"
+          />
+        </div>
       </div>
       <div v-if="isOpen === 2">
         <el-table :data="workingHoursSum">
@@ -114,17 +125,17 @@
             label="总金额"
           />
         </el-table>
-      </div>
-      <div class="gva-pagination">
-        <el-pagination
-          :current-page="searchWorkingHours.pageInfo.page"
-          :page-size="searchWorkingHours.pageInfo.pageSize"
-          :page-sizes="[10, 30, 50, 100]"
-          :total="workingTotal"
-          layout="total, sizes, prev, pager, next, jumper"
-          @current-change="handleCurrentChange"
-          @size-change="handleSizeChange"
-        />
+        <div class="gva-pagination">
+          <el-pagination
+            :current-page="searchData.pageInfo.page"
+            :page-size="searchData.pageInfo.pageSize"
+            :page-sizes="[10, 30, 50, 100]"
+            :total="total"
+            layout="total, sizes, prev, pager, next, jumper"
+            @current-change="handleCurrentChange"
+            @size-change="handleSizeChange"
+          />
+        </div>
       </div>
       <!--      修改-->
       <el-dialog
@@ -208,6 +219,16 @@ const handleCurrentChange = (val) => {
 
 const constructorTableData = ref()
 
+const handleSizeChange1 = (val) => {
+  searchWorkingHours.value.pageInfo.pageSize = val
+  queryData()
+}
+
+const handleCurrentChange1 = (val) => {
+  searchWorkingHours.value.pageInfo.page = val
+  queryData()
+}
+
 // 工时----------------------------------------------------------------------------------------------------------------
 const searchWorkingHours = ref({
   pageInfo: {

+ 61 - 9
web/src/view/projectManage/projectApproval/projectApproval.vue

@@ -23,7 +23,7 @@
         >
           <el-steps
             class="mb-4"
-            style="max-width: 750px"
+            style="max-width: 850px"
             :space="250"
             :active="infoSteps"
             simple
@@ -40,6 +40,10 @@
               title="丙方信息"
               :icon="Document"
             />
+            <el-step
+              title="合作方信息"
+              :icon="Document"
+            />
           </el-steps>
         </el-col>
         <el-col :span="4">
@@ -55,7 +59,7 @@
             </el-form-item>
             <el-form-item>
               <el-button
-                :disabled="infoSteps === 2"
+                :disabled="infoSteps === 3"
                 type="primary"
                 size="large"
                 @click="nextPage"
@@ -101,14 +105,16 @@
                 </el-col>
               </el-row>
               <el-row style="margin-top: 10px">
-                <el-col :span="5">
+                <el-col
+                  :span="5"
+                >
                   <el-form-item
-                    label="甲方电话"
+                    label="甲方负责人"
                     size="large"
                   >
                     <el-input
-                      v-model="condition.firstPhone"
-                      placeholder="请输入甲方负责人电话"
+                      v-model="condition.firstPrincipal"
+                      placeholder="请输入甲方负责人名称"
                     />
                   </el-form-item>
                 </el-col>
@@ -117,12 +123,12 @@
                   :offset="1"
                 >
                   <el-form-item
-                    label="甲方负责人"
+                    label="甲方电话"
                     size="large"
                   >
                     <el-input
-                      v-model="condition.firstPrincipal"
-                      placeholder="请输入甲方负责人名称"
+                      v-model="condition.firstPhone"
+                      placeholder="请输入甲方负责人电话"
                     />
                   </el-form-item>
                 </el-col>
@@ -277,6 +283,49 @@
                 </el-col>
               </el-row>
             </div>
+            <div v-show="infoSteps === 3">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item
+                    label="合作单位"
+                    size="large"
+                  >
+                    <el-input
+                      v-model="condition.cooperativeUnits"
+                      placeholder="请输入合作单位"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col
+                  :span="5"
+                  :offset="1"
+                >
+                  <el-form-item
+                    label="合作方负责人"
+                    size="large"
+                  >
+                    <el-input
+                      v-model="condition.cooperativePrincipal"
+                      placeholder="请输入合作方负责人"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col
+                  :span="5"
+                  :offset="1"
+                >
+                  <el-form-item
+                    label="合作单位电话"
+                    size="large"
+                  >
+                    <el-input
+                      v-model="condition.cooperativePhone"
+                      placeholder="请输入合作单位电话"
+                    />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </div>
           </el-form>
         </el-col>
       </el-row>
@@ -398,6 +447,9 @@ const condition = reactive({
   supervisorUint: '', // 监理单位
   supervisorName: '', // 监理姓名
   supervisorPhone: '', // 监理电话
+  cooperativeUnits: '',
+  cooperativePrincipal: '',
+  cooperativePhone: '',
   illustrate: '', // 说明
   state: 1 // 状态
 })

+ 61 - 11
web/src/view/projectManage/projectDetails/projectDetails.vue

@@ -160,6 +160,33 @@
                 </el-text>
               </el-row>
             </el-tab-pane>
+            <el-tab-pane
+              label="合作方信息"
+              name="cooperation"
+            >
+              <el-row class="mt-2">
+                <el-text
+                  size="large"
+                  :line-clamp="1"
+                >
+                  <b>合作方单位:</b>{{ information.cooperativeUnits }}
+                </el-text>
+              </el-row>
+              <el-row class="mt-10">
+                <el-text
+                  size="large"
+                >
+                  <b>合作方负责人:</b>{{ information.cooperativePrincipal }}
+                </el-text>
+              </el-row>
+              <el-row class="mt-10">
+                <el-text
+                  size="large"
+                >
+                  <b>合作方电话:</b>{{ information.cooperativePone }}
+                </el-text>
+              </el-row>
+            </el-tab-pane>
           </el-tabs>
         </el-card>
       </el-col>
@@ -562,6 +589,29 @@
               />
             </el-form-item>
           </el-tab-pane>
+          <el-tab-pane
+              label="合作方信息"
+              name="cooperation"
+          >
+            <el-form-item label="合作方单位:">
+              <el-input
+                  v-model="editData.cooperativeUnits"
+                  placeholder="请输入合作方"
+              />
+            </el-form-item>
+            <el-form-item label="合作方负责人:">
+              <el-input
+                  v-model="editData.cooperativePrincipal"
+                  placeholder="请输入合作方负责人"
+              />
+            </el-form-item>
+            <el-form-item label="合作方电话:">
+              <el-input
+                  v-model="editData.cooperativePhone"
+                  placeholder="请输入合作方电话"
+              />
+            </el-form-item>
+          </el-tab-pane>
         </el-tabs>
       </el-form>
       <template #footer>
@@ -670,12 +720,12 @@ const basicDataEdit = () => {
     illustrate: editData.illustrate, // 说明
     state: editData.state // 状态
   }
-  for (const i in edit) {
-    if (edit[i] === '' || edit[i] === 0 || edit[i] === null) {
-      ElMessage.error('请将甲乙丙三方的信息填写完整')
-      return
-    }
-  }
+  // for (const i in edit) {
+  //   if (edit[i] === '' || edit[i] === 0 || edit[i] === null) {
+  //     ElMessage.error('请将甲乙丙三方的信息填写完整')
+  //     return
+  //   }
+  // }
   editProject(edit).then(res => {
     if (res.code === 0) {
       ElMessage({
@@ -775,14 +825,14 @@ const projectMessage = (code) => {
 // 加密
 const ifUpdate = ref(false)
 const encryptPhone = (phone) => {
-  if (!phone) {
-    return ''
-  }
-  console.log(information.secondPrincipal === currentUserId.value, phone)
-  if (information.secondPrincipal === currentUserId.value || currentUserId.value === 6 || currentUserId.value === 7) {
+  if (information.secondPrincipal === currentUserId.value || currentUserId.value === 6 || currentUserId.value === 7 || currentUserId.value === 1) {
     ifUpdate.value = true
     return phone
   }
+  if (!phone) {
+    return ''
+  }
+  console.log(information)
   return phone.substring(0, 3) + '********'
 }