liujiandao
2024-04-22 8cb1da78fd4d237b278ed4d512c6c4f04b663cfc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
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("getHistory", reportFormsController.GetHistory)               //获取库存历史
        reportFormsAPI.POST("getLocationForms", reportFormsController.GetLocationForms)   //获取位置报表
        reportFormsAPI.POST("monthStats", reportFormsController.MonthStats)               //获取月度统计报表
    }
 
    //重订货规则
    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
}