quality_inspect_program.go 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package handlers
  2. import (
  3. "net/http"
  4. "easydo-echo_win7/middleware"
  5. "easydo-echo_win7/models"
  6. "easydo-echo_win7/services"
  7. "easydo-echo_win7/utils"
  8. "github.com/jmoiron/sqlx"
  9. "github.com/labstack/echo-contrib/session"
  10. "github.com/labstack/echo/v4"
  11. )
  12. func Add_quality_inspect_program_to_routes(e *echo.Echo) {
  13. group := e.Group("/qualityInspectProgram")
  14. group.Use(middleware.AuthMiddleware)
  15. group.POST("/getPage", qualityInspectProgramGetPage)
  16. group.POST("/getList", qualityInspectProgramGetList)
  17. group.POST("/save", qualityInspectProgramSave)
  18. group.POST("/update", qualityInspectProgramUpdate)
  19. group.POST("/remove", qualityInspectProgramRemove)
  20. }
  21. func qualityInspectProgramGetPage(c echo.Context) error {
  22. var paramMap map[string]interface{}
  23. if err := c.Bind(&paramMap); err != nil {
  24. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
  25. }
  26. result, _ := services.JdbcClient.GetJdbcPage(paramMap, models.QualityInspectProgram{})
  27. list := utils.ConvertInterface[[]models.QualityInspectProgram](result.Records)
  28. if len(list) == 0 {
  29. list = []models.QualityInspectProgram{}
  30. }
  31. for i := range list {
  32. model := list[i]
  33. minioList, err := services.JdbcClient.GetMinioFile(model)
  34. if err != nil {
  35. utils.PrintSearchFileErr(err)
  36. }
  37. model.FileList = &minioList
  38. inspect_user := new(models.SysUser)
  39. inspect_user.ID = model.InspectUserId
  40. services.JdbcClient.GetJdbcModelById(inspect_user)
  41. model.InspectUserName = inspect_user.NickName
  42. review_user := new(models.SysUser)
  43. review_user.ID = model.ReviewUserId
  44. services.JdbcClient.GetJdbcModelById(review_user)
  45. model.ReviewUserName = review_user.NickName
  46. list[i] = model
  47. }
  48. result.Records = list
  49. return c.JSON(http.StatusOK, result)
  50. }
  51. func qualityInspectProgramGetList(c echo.Context) error {
  52. var paramMap map[string]interface{}
  53. if err := c.Bind(&paramMap); err != nil {
  54. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
  55. }
  56. result, _ := services.JdbcClient.GetJdbcList(paramMap, models.QualityInspectProgram{})
  57. list := utils.ConvertInterface[[]models.QualityInspectProgram](result)
  58. if len(list) == 0 {
  59. return c.JSON(http.StatusOK, []string{})
  60. }
  61. return c.JSON(http.StatusOK, list)
  62. }
  63. func qualityInspectProgramSave(c echo.Context) error {
  64. tx, _ := services.MYSQL_DB.Beginx()
  65. program := new(models.QualityInspectProgram)
  66. if err := c.Bind(program); err != nil {
  67. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
  68. }
  69. sess, _ := session.Get("auth_session", c)
  70. err_msg := qualityInspectProgram_generateCode(program, tx)
  71. if err_msg != "" {
  72. tx.Rollback()
  73. return c.JSON(http.StatusBadRequest, utils.ErrorResponse(err_msg, ""))
  74. }
  75. user_id, ok := sess.Values["user_id"].(int64)
  76. if !ok {
  77. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("用户请先登录", ""))
  78. }
  79. program.CreateId = &user_id
  80. err := services.JdbcClient.JdbcInsert(program, tx)
  81. if err != nil {
  82. utils.PrintSqlErr(err)
  83. tx.Rollback()
  84. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  85. }
  86. if program.FileList == nil {
  87. tx.Commit()
  88. return c.JSON(http.StatusOK, program)
  89. }
  90. fileList := *program.FileList
  91. for _, file := range fileList {
  92. file.RefId = program.ID
  93. refType := models.File_Ref_Type_Quality_Inspect_Program
  94. file.RefType = &refType
  95. err := services.JdbcClient.JdbcInsert(&file, tx)
  96. if err != nil {
  97. utils.PrintSqlErr(err)
  98. tx.Rollback()
  99. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  100. }
  101. }
  102. tx.Commit()
  103. return c.JSON(http.StatusOK, program)
  104. }
  105. func qualityInspectProgramUpdate(c echo.Context) error {
  106. tx, _ := services.MYSQL_DB.Beginx()
  107. program := new(models.QualityInspectProgram)
  108. if err := c.Bind(program); err != nil {
  109. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
  110. }
  111. sess, _ := session.Get("auth_session", c)
  112. user_id, ok := sess.Values["user_id"].(int64)
  113. if !ok {
  114. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("用户请先登录", ""))
  115. }
  116. program.UpdateId = &user_id
  117. err := services.JdbcClient.JdbcUpdateById(program, tx)
  118. if err != nil {
  119. utils.PrintSqlErr(err)
  120. tx.Rollback()
  121. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  122. }
  123. if program.FileList == nil {
  124. tx.Commit()
  125. return c.JSON(http.StatusOK, program)
  126. }
  127. fileList := *program.FileList
  128. for _, file := range fileList {
  129. file.RefId = program.ID
  130. refType := models.File_Ref_Type_Quality_Inspect_Program
  131. file.RefType = &refType
  132. err := services.JdbcClient.JdbcInsert(&file, tx)
  133. if err != nil {
  134. utils.PrintSqlErr(err)
  135. tx.Rollback()
  136. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  137. }
  138. }
  139. tx.Commit()
  140. return c.JSON(http.StatusOK, program)
  141. }
  142. func qualityInspectProgramRemove(c echo.Context) error {
  143. tx, _ := services.MYSQL_DB.Beginx()
  144. program := new(models.QualityInspectProgram)
  145. if err := c.Bind(program); err != nil {
  146. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
  147. }
  148. err := services.JdbcClient.JdbcRemoveById(program, tx)
  149. if err != nil {
  150. utils.PrintSqlErr(err)
  151. tx.Rollback()
  152. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  153. }
  154. minio_file := new(models.MinioFile)
  155. minio_file.RefId = program.ID
  156. refType := models.File_Ref_Type_Quality_Inspect_Program
  157. minio_file.RefType = &refType
  158. err = services.JdbcClient.JdbcRemove(minio_file, tx)
  159. if err != nil {
  160. utils.PrintSqlErr(err)
  161. tx.Rollback()
  162. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  163. }
  164. tx.Commit()
  165. return c.JSON(http.StatusOK, program)
  166. }
  167. func qualityInspectProgram_generateCode(model *models.QualityInspectProgram, tx *sqlx.Tx) string {
  168. sync := new(models.Synchronized)
  169. sync.Sync.Lock()
  170. defer sync.Sync.Unlock()
  171. if model.Code != nil && len(*model.Code) > 0 {
  172. modelParam := new(models.QualityInspectProgram)
  173. modelParam.Code = model.Code
  174. modelParam.TenantId = model.TenantId
  175. count, err := services.JdbcClient.GetJdbcCount(modelParam, tx)
  176. if err != nil {
  177. utils.PrintSqlErr(err)
  178. return "SQL执行失败"
  179. }
  180. if count > 0 {
  181. return "编号已存在,请重新填写"
  182. }
  183. } else {
  184. for {
  185. code, err := services.GetFlowNo(models.Flow_No_Type_Quality_Inspect_Program, *model.TenantId, tx)
  186. if err != nil {
  187. return "自动生成编码失败"
  188. }
  189. modelParam := new(models.QualityInspectProgram)
  190. modelParam.Code = &code
  191. modelParam.TenantId = model.TenantId
  192. count, err := services.JdbcClient.GetJdbcCount(modelParam, tx)
  193. if err != nil {
  194. utils.PrintSqlErr(err)
  195. return "SQL执行失败"
  196. }
  197. if count == 0 {
  198. model.Code = &code
  199. break
  200. }
  201. }
  202. }
  203. return ""
  204. }