package router import ( "net/http" "wms/conf" "wms/controllers" _ "wms/docs" "wms/middleware" "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" ) func NewRouter() *gin.Engine { r := gin.Default() r.Use(middleware.Cors()) r.StaticFS(conf.LocalConf.StorePath, http.Dir(conf.LocalConf.StorePath)) // 为用户头像和文件提供静态地址 r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) urlPrefix := "/api-wms/v1" r.Use(middleware.JWTAuth()) r.Use(middleware.VerifyResetPwd()) // 组织管理 departmentController := new(controllers.DepartmentController) organizeAPI := r.Group(urlPrefix + "/organize") { organizeAPI.GET("department", departmentController.List) // 获取部门列表 organizeAPI.POST("department", departmentController.Add) // 新增部门 organizeAPI.PUT("department/:id", departmentController.Update) // 修改部门 organizeAPI.DELETE("department/:id", departmentController.Delete) // 删除部门 } // 公司管理 companyController := new(controllers.CompanyController) companyAPI := r.Group(urlPrefix + "/company") { companyAPI.GET("company", companyController.List) // 获取公司列表 companyAPI.POST("company", companyController.Add) // 新增公司 companyAPI.PUT("company/:id", companyController.Update) // 修改公司 companyAPI.DELETE("company/:id", companyController.Delete) // 删除公司 } // 仓库管理 warehouseController := new(controllers.WarehouseController) warehouseAPI := r.Group(urlPrefix + "/warehouse") { warehouseAPI.GET("warehouse", warehouseController.List) // 获取仓库列表 warehouseAPI.POST("warehouse", warehouseController.Add) // 新增仓库 warehouseAPI.POST("updateWarehouse", warehouseController.UpdateWarehouse) // 修改仓库 warehouseAPI.DELETE("warehouse/:id", warehouseController.Delete) // 删除仓库 warehouseAPI.GET("getWarehouseDetails/:id", warehouseController.GetWarehouseDetails) // 获取仓库详情 } // 位置信息 locationController := new(controllers.LocationController) locationAPI := r.Group(urlPrefix + "/location") { locationAPI.POST("addLocation", locationController.AddLocation) //添加位置信息 locationAPI.POST("getLocationList", locationController.GetLocationList) //获取位置列表 locationAPI.POST("updateLocation", locationController.UpdateLocation) //修改位置 locationAPI.GET("getLocationDetails/:id", locationController.GetLocationDetails) //获取位置详情 locationAPI.DELETE("deleteLocation/:id", locationController.DeleteLocation) //删除位置 locationAPI.GET("getLocationTreeList", locationController.GetLocationTreeList) //获取位置列表树 } // 业务类型 operationTypeController := new(controllers.OperationTypeController) operationTypeAPI := r.Group(urlPrefix + "/operationType") { operationTypeAPI.GET("operationType", operationTypeController.List) // 获取作业类型列表 operationTypeAPI.GET("listTransfer", operationTypeController.ListTransfer) // 获取作业类型列表 operationTypeAPI.POST("operationType", operationTypeController.Add) // 新增作业类型 operationTypeAPI.PUT("operationType/:id", operationTypeController.Update) // 修改作业类型 operationTypeAPI.DELETE("operationType/:id", operationTypeController.Delete) // 删除作业类型 } // 入库/出库 operationController := new(controllers.OperationController) operationAPI := r.Group(urlPrefix + "/operation") { operationAPI.POST("list", operationController.List) operationAPI.GET("getOperationInfo/:id", operationController.GetOperationInfo) operationAPI.POST("operation", operationController.Add) operationAPI.POST("update", operationController.Update) operationAPI.DELETE("operation/:id", operationController.Delete) operationAPI.PUT("finish/:id", operationController.Finish) operationAPI.POST("listTransfer", operationController.ListTransfer) operationAPI.GET("getLogisticCompanyList", operationController.GetLogisticCompanyList) operationAPI.PUT("cancel/:id", operationController.Cancel) operationAPI.PUT("outputOperation/:id", operationController.OutputOperation) operationAPI.GET("getSupplierList", operationController.GetSupplierList) operationAPI.GET("getClientList", operationController.GetClientList) operationAPI.POST("listByCondition", operationController.ListByCondition) operationAPI.GET("getPersonnelList", operationController.GetPersonnelList) } //产品 productController := new(controllers.ProductController) productAPI := r.Group(urlPrefix + "/product") { productAPI.POST("addProduct", productController.AddProduct) // 新增产品 productAPI.POST("getProductList", productController.GetProductList) // 获取产品列表 productAPI.GET("getProductDetails/:id", productController.GetProductDetails) // 获取产品详情 productAPI.POST("updateProduct", productController.UpdateProduct) // 修改产品详情 productAPI.DELETE("deleteProduct/:id", productController.DeleteProduct) // 删除产品 productAPI.POST("addProductCategory", productController.AddProductCategory) //添加产品类型 productAPI.POST("getProductCategoryList", productController.GetProductCategoryList) //获取产品类型列表 productAPI.GET("getProductCategoryDetails/:id", productController.GetProductCategoryDetails) //获取产品类型详情 productAPI.POST("updateProductCategory", productController.UpdateProductCategory) //修改产品类型 productAPI.DELETE("deleteProductCategory/:id", productController.DeleteProductCategory) //删除产品类型 productAPI.POST("listOperaton", productController.ListOperation) //查看产品的历史出入库信息 productAPI.POST("addDisuse", productController.AddDisuse) //添加报废信息 productAPI.POST("listDisuse", productController.ListDisuse) //查看产品的历史出入库信息 productAPI.PUT("finishDisuse/:id", productController.FinishDisuse) //报废验证 productAPI.POST("updateDisuse", productController.UpdateDisuse) //修改报废信息 productAPI.POST("listHistory", productController.ListHistory) //产品位置历史记录 productAPI.PUT("cancelDisuse/:id", productController.CancelDisuse) //取消报废 productAPI.GET("getUserInfo", productController.GetUserInfo) //获取登录用户信息 productAPI.GET("getUnitInfo", productController.GetUnitInfo) //获取单位信息 productAPI.POST("saveUnitDict", productController.SaveUnitDict) //更新计量单位字典 } // 上架规则 locationProductController := new(controllers.LocationProductController) locationProductAPI := r.Group(urlPrefix + "/locationProduct") { locationProductAPI.POST("list", locationProductController.List) // 获取上架规则列表 locationProductAPI.POST("add", locationProductController.Add) // 新增上架规则 locationProductAPI.POST("update", locationProductController.Update) // 修改上架规则 locationProductAPI.DELETE("delete/:id", locationProductController.Delete) // 删除上架规则 } //库存盘点 locationProductAmountController := new(controllers.LocationProductAmountController) locationProductAmountAPI := r.Group(urlPrefix + "/locationProductAmount") { locationProductAmountAPI.POST("add", locationProductAmountController.Add) //添加库存盘点信息 locationProductAmountAPI.POST("list", locationProductAmountController.List) //查看库存盘点列表 locationProductAmountAPI.POST("update", locationProductAmountController.Update) //修改库存盘点信息 locationProductAmountAPI.POST("finish", locationProductAmountController.Finish) //应用、验证库存盘点信息 locationProductAmountAPI.POST("getRuleList", locationProductAmountController.GetRuleList) //获取上架规则 locationProductAmountAPI.POST("getLocationProductAmount", locationProductAmountController.GetLocationProductAmount) //获取位置产品信息 } //报表 reportFormsController := new(controllers.ReportFormsController) reportFormsAPI := r.Group(urlPrefix + "/forms") { reportFormsAPI.POST("getInventoryForms", reportFormsController.GetInventoryForms) //获取库存报表 reportFormsAPI.POST("downloadInventoryForms", reportFormsController.DownloadInventoryForms) //下载库存报表 reportFormsAPI.POST("getHistory", reportFormsController.GetHistory) //获取库存历史 reportFormsAPI.POST("downloadHistory", reportFormsController.DownloadHistory) //下载库存报表 reportFormsAPI.POST("getLocationForms", reportFormsController.GetLocationForms) //获取位置报表 reportFormsAPI.POST("downloadLocationForms", reportFormsController.DownloadLocationForms) //下载位置报表 reportFormsAPI.POST("monthStats", reportFormsController.MonthStats) //获取月度统计报表 reportFormsAPI.POST("downloadMonthStats", reportFormsController.DownloadMonthStats) //下载月度统计报表 reportFormsAPI.POST("doMonthStats", reportFormsController.DoMonthStats) //手动跑月度统计库存报表 } //重订货规则 reorderRuleController := new(controllers.ReorderRuleController) reorderRuleAPI := r.Group(urlPrefix + "/reorderRule") { reorderRuleAPI.POST("addReorderRule", reorderRuleController.AddReorderRule) //添加重订货规则 reorderRuleAPI.POST("getReorderRuleList", reorderRuleController.GetReorderRuleList) //获取重订货规则列表 reorderRuleAPI.POST("getAmountAndPrediction", reorderRuleController.GetAmountAndPrediction) //获取在库与预测数量 reorderRuleAPI.POST("updateReorderRule", reorderRuleController.UpdateReorderRule) //更新重订货规则 reorderRuleAPI.POST("orderAgain", reorderRuleController.OrderAgain) //再订一次 } attachmentController := new(controllers.AttachmentController) attachmentAPI := r.Group(urlPrefix + "/attachment") { attachmentAPI.POST("uploadFiles", attachmentController.UploadFiles) //上传文件 } codeApiController := new(controllers.CodeApi) codeApi := r.Group(urlPrefix + "/code") { codeApi.GET("getCodeList", codeApiController.GetCodeList) //获取编码列表 codeApi.POST("getAutoCode", codeApiController.GetAutoCode) //获取自动编码 } return r }