medicine_template.go 8.0 KB

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