medicine_template.go 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. package controllers
  2. import (
  3. "Medical_ERP/common/actions"
  4. "Medical_ERP/common/global"
  5. _ "Medical_ERP/common/response"
  6. "Medical_ERP/dto"
  7. "Medical_ERP/models"
  8. "Medical_ERP/services"
  9. "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/beegouser"
  10. )
  11. type MedicineTemplateController struct {
  12. BaseController
  13. }
  14. // Initialize 初始化
  15. // @Summary 初始化
  16. // @Description 创建系统初始化的药品字段和药品表
  17. // @Tags 药品信息模板
  18. // @Param body body dto.MedicineTemplateInitializeReq true "body"
  19. // @Success 200 {object} response.Page{list=[]models.Product} "{"code": 200, "data": [...]}"
  20. // @Router /medicine-template/list [post]
  21. // @Security Bearer
  22. func (c MedicineTemplateController) Initialize() {
  23. s := services.MedicineTemplate{}
  24. reqData := dto.MedicineTemplateInitializeReq{}
  25. if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil {
  26. c.Error(global.ParseFormErr, err, err.Error())
  27. return
  28. }
  29. userId := beegouser.GetUserId(c.Ctx)
  30. err := s.InitMedicineTemplate(reqData.DeptId, userId)
  31. if err != nil {
  32. c.Error(global.BadRequest, err, "初始化失败")
  33. return
  34. }
  35. c.OK(nil, "初始化成功")
  36. }
  37. // List 获取品名列表
  38. // @Summary 获取品名列表
  39. // @Description 获取品名列表
  40. // @Tags 药品信息模板
  41. // @Success 200 {object} response.Page{list=[]models.MedicineTemplate} "{"code": 200, "data": [...]}"
  42. // @Router /medicine-template/list [post]
  43. // @Security Bearer
  44. func (c MedicineTemplateController) List() {
  45. s := services.MedicineTemplate{}
  46. list := make([]models.MedicineTemplate, 0)
  47. var count int64
  48. //数据权限检查
  49. p := actions.GetPermissionFromContext(c.Ctx)
  50. err := s.GetPage(&list, &count, p)
  51. if err != nil {
  52. c.Error(global.BadRequest, err, err.Error())
  53. return
  54. }
  55. c.PageOK(list, int(count), 0, 0, "查询成功")
  56. }
  57. // Add 添加模版字段
  58. // @Summary 添加模版字段
  59. // @Description 添加模版字段
  60. // @Tags 药品信息模板
  61. // @Param data body dto.MedicineTemplateInsertReq true "data"
  62. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  63. // @Router /medicine-template/add [post]
  64. // @Security Bearer
  65. func (c MedicineTemplateController) Add() {
  66. s := services.MedicineTemplate{}
  67. reqData := dto.MedicineTemplateInsertReq{}
  68. if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil {
  69. c.Error(global.ParseFormErr, err, err.Error())
  70. return
  71. }
  72. reqData.SetCreateBy(beegouser.GetUserId(c.Ctx))
  73. reqData.SetDeptId(beegouser.GetDeptId(c.Ctx))
  74. //if !utils.IsChineseOnly(reqData.Name) {
  75. // err := errors.New("标签名称不能包含非中文字符")
  76. // c.Error(500, err, err.Error())
  77. // return
  78. //}
  79. err := s.Insert(&reqData)
  80. if err != nil {
  81. c.Error(500, err, err.Error())
  82. return
  83. }
  84. c.OK(reqData.GetId(), "创建成功")
  85. }
  86. // Edit 修改模版字段
  87. // @Summary 修改模版字段
  88. // @Description 修改模版字段
  89. // @Tags 药品信息模板
  90. // @Param data body dto.MedicineTemplateUpdateReq true "body"
  91. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  92. // @Router /medicine-template/edit [post]
  93. // @Security Bearer
  94. func (c MedicineTemplateController) Edit() {
  95. s := services.MedicineTemplate{}
  96. reqData := dto.MedicineTemplateUpdateReq{}
  97. if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil {
  98. c.Error(global.ParseFormErr, err, err.Error())
  99. return
  100. }
  101. reqData.SetUpdateBy(beegouser.GetUserId(c.Ctx))
  102. err := s.Update(&reqData)
  103. if err != nil {
  104. c.Error(500, err, err.Error())
  105. return
  106. }
  107. c.OK(reqData.GetId(), "更新成功")
  108. }
  109. // Delete 删除模版字段
  110. // @Summary 删除模版字段
  111. // @Description 删除模版字段
  112. // @Tags 药品信息模板
  113. // @Accept application/json
  114. // @Unit application/json
  115. // @Param data body dto.MedicineTemplateDeleteReq true "body"
  116. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  117. // @Router /medicine-template/delete [post]
  118. // @Security Bearer
  119. func (c MedicineTemplateController) Delete() {
  120. s := services.MedicineTemplate{}
  121. reqData := dto.MedicineTemplateDeleteReq{}
  122. if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil {
  123. c.Error(global.ParseFormErr, err, err.Error())
  124. return
  125. }
  126. reqData.SetUpdateBy(beegouser.GetUserId(c.Ctx))
  127. err := s.Remove(&reqData)
  128. if err != nil {
  129. c.Error(500, err, err.Error())
  130. return
  131. }
  132. c.OK(reqData.GetId(), "删除成功")
  133. }
  134. // Columns 获取药品列名
  135. // @Summary 获取品名列表
  136. // @Description 获取品名列表
  137. // @Tags 药品信息模板
  138. // @Success 200 {object} response.Page{list=[]models.MedicineTemplate} "{"code": 200, "data": [...]}"
  139. // @Router /medicine-template/columns [post]
  140. // @Security Bearer
  141. func (c MedicineTemplateController) Columns() {
  142. s := services.MedicineTemplate{}
  143. list := make([]dto.MedicineColumnsRes, 0)
  144. //数据权限检查
  145. p := actions.GetPermissionFromContext(c.Ctx)
  146. err := s.GetColumns(&list, p)
  147. if err != nil {
  148. c.Error(global.BadRequest, err, err.Error())
  149. return
  150. }
  151. c.PageOK(list, 0, 0, 0, "查询成功")
  152. }
  153. // ListForStockIn 获取入库列表
  154. // @Summary 获取入库列表
  155. // @Description 获取入库列表
  156. // @Tags 药品信息模板
  157. // @Success 200 {object} response.Page{list=[]models.MedicineTemplate} "{"code": 200, "data": [...]}"
  158. // @Router /medicine-template/list-for-stock [post]
  159. // @Security Bearer
  160. func (c MedicineTemplateController) ListForStock() {
  161. s := services.MedicineTemplate{}
  162. list := make([]dto.MedicineTemplateForStockRes, 0)
  163. var count int64
  164. //数据权限检查
  165. p := actions.GetPermissionFromContext(c.Ctx)
  166. err := s.ListForStock(&list, &count, p)
  167. if err != nil {
  168. c.Error(global.BadRequest, err, err.Error())
  169. return
  170. }
  171. c.PageOK(list, int(count), 0, 0, "查询成功")
  172. }
  173. // ListForStockOut 获取入库列表
  174. // @Summary 获取入库列表
  175. // @Description 获取入库列表
  176. // @Tags 药品信息模板
  177. // @Success 200 {object} response.Page{list=[]models.MedicineTemplate} "{"code": 200, "data": [...]}"
  178. // @Router /medicine-template/list-for-stock [post]
  179. // @Security Bearer
  180. func (c MedicineTemplateController) ListForStockOut() {
  181. s := services.MedicineTemplate{}
  182. list := make([]dto.MedicineTemplateForStockRes, 0)
  183. var count int64
  184. //数据权限检查
  185. p := actions.GetPermissionFromContext(c.Ctx)
  186. err := s.ListForStockOut(&list, &count, p)
  187. if err != nil {
  188. c.Error(global.BadRequest, err, err.Error())
  189. return
  190. }
  191. c.PageOK(list, int(count), 0, 0, "查询成功")
  192. }
  193. // ListForStockInScanCode 获取扫码入库表单列表
  194. // @Summary 获取扫码入库表单列表
  195. // @Description 获取扫码入库表单列表
  196. // @Tags 药品信息模板
  197. // @Success 200 {object} response.Page{list=[]models.MedicineTemplate} "{"code": 200, "data": [...]}"
  198. // @Router /medicine-template/list-for-stock [post]
  199. // @Security Bearer
  200. func (c MedicineTemplateController) ListForStockInScanCode() {
  201. s := services.MedicineTemplate{}
  202. list := make([]dto.MedicineTemplateForStockRes, 0)
  203. var count int64
  204. //数据权限检查
  205. p := actions.GetPermissionFromContext(c.Ctx)
  206. err := s.ListForStockInScanCode(&list, &count, p)
  207. if err != nil {
  208. c.Error(global.BadRequest, err, err.Error())
  209. return
  210. }
  211. c.PageOK(list, int(count), 0, 0, "查询成功")
  212. }
  213. // ListForStockOutScanCode 获取扫码出库表单列表
  214. // @Summary 获取扫码出库表单列表
  215. // @Description 获取扫码出库表单列表
  216. // @Tags 药品信息模板
  217. // @Success 200 {object} response.Page{list=[]models.MedicineTemplate} "{"code": 200, "data": [...]}"
  218. // @Router /medicine-template/list-for-stock [post]
  219. // @Security Bearer
  220. func (c MedicineTemplateController) ListForStockOutScanCode() {
  221. s := services.MedicineTemplate{}
  222. list := make([]dto.MedicineTemplateForStockRes, 0)
  223. var count int64
  224. //数据权限检查
  225. p := actions.GetPermissionFromContext(c.Ctx)
  226. err := s.ListForStockOutScanCode(&list, &count, p)
  227. if err != nil {
  228. c.Error(global.BadRequest, err, err.Error())
  229. return
  230. }
  231. c.PageOK(list, int(count), 0, 0, "查询成功")
  232. }