contractEvaluationOrder.go 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. package oilcontract
  2. import (
  3. "dashoo.cn/backend/api/business/oilcontract/contractEvaluationOrder"
  4. "dashoo.cn/backend/api/business/oilcontract/contractReview"
  5. "encoding/json"
  6. "strconv"
  7. "strings"
  8. "time"
  9. "dashoo.cn/backend/api/business/baseUser"
  10. . "dashoo.cn/backend/api/controllers"
  11. "dashoo.cn/business2/userRole"
  12. "dashoo.cn/utils"
  13. )
  14. type OilContractEvaluationOrderController struct {
  15. BaseController
  16. }
  17. // @Title 获取列表
  18. // @Description get user by token
  19. // @Success 200 {object} []evaluationItems.OilEvaluationItems
  20. // @router /list [get]
  21. func (this *OilContractEvaluationOrderController) GetEntityList() {
  22. //获取分页信息
  23. page := this.GetPageInfoForm()
  24. where := " 1=1 "
  25. orderby := "Id"
  26. asc := false
  27. Order := this.GetString("Order")
  28. Prop := this.GetString("Prop")
  29. if Order != "" && Prop != "" {
  30. orderby = Prop
  31. if Order == "asc" {
  32. asc = true
  33. }
  34. }
  35. Id := this.GetString("Id")
  36. ContractId := this.GetString("ContractId")
  37. ReviewId := this.GetString("ReviewId")
  38. AuditId := this.GetString("AuditId")
  39. AuditBy := this.GetString("AuditBy")
  40. IsConfirm := this.GetString("IsConfirm")
  41. CreateOn := this.GetString("CreateOn")
  42. CreateUserId := this.GetString("CreateUserId")
  43. CreateBy := this.GetString("CreateBy")
  44. ModifiedOn := this.GetString("ModifiedOn")
  45. ModifiedUserId := this.GetString("ModifiedUserId")
  46. ModifiedBy := this.GetString("ModifiedBy")
  47. if Id != "" {
  48. where = where + " and Id like '%" + Id + "%'"
  49. }
  50. if ContractId != "" {
  51. where = where + " and ContractId like '%" + ContractId + "%'"
  52. }
  53. if ReviewId != "" {
  54. where = where + " and ReviewId like '%" + ReviewId + "%'"
  55. }
  56. if AuditId != "" {
  57. where = where + " and AuditId like '%" + AuditId + "%'"
  58. }
  59. if AuditBy != "" {
  60. where = where + " and AuditBy like '%" + AuditBy + "%'"
  61. }
  62. if IsConfirm != "" {
  63. where = where + " and IsConfirm like '%" + IsConfirm + "%'"
  64. }
  65. if CreateOn != "" {
  66. where = where + " and CreateOn like '%" + CreateOn + "%'"
  67. }
  68. if CreateUserId != "" {
  69. where = where + " and CreateUserId like '%" + CreateUserId + "%'"
  70. }
  71. if CreateBy != "" {
  72. where = where + " and CreateBy like '%" + CreateBy + "%'"
  73. }
  74. if ModifiedOn != "" {
  75. where = where + " and ModifiedOn like '%" + ModifiedOn + "%'"
  76. }
  77. if ModifiedUserId != "" {
  78. where = where + " and ModifiedUserId like '%" + ModifiedUserId + "%'"
  79. }
  80. if ModifiedBy != "" {
  81. where = where + " and ModifiedBy like '%" + ModifiedBy + "%'"
  82. }
  83. if CreateOn != "" {
  84. dates := strings.Split(CreateOn, ",")
  85. if len(dates) == 2 {
  86. minDate := dates[0]
  87. maxDate := dates[1]
  88. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  89. }
  90. }
  91. svc := contractEvaluationOrder.GetOilContractEvaluationOrderService(utils.DBE)
  92. var list []contractEvaluationOrder.OilContractEvaluationOrder
  93. total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  94. var datainfo DataInfo
  95. datainfo.Items = list
  96. datainfo.CurrentItemCount = total
  97. datainfo.PageIndex = page.CurrentPage
  98. datainfo.ItemsPerPage = page.Size
  99. this.Data["json"] = &datainfo
  100. this.ServeJSON()
  101. }
  102. // @Title 获取字典列表
  103. // @Description get user by token
  104. // @Success 200 {object} map[string]interface{}
  105. // @router /dictlist [get]
  106. func (this *OilContractEvaluationOrderController) GetDictList() {
  107. dictList := make(map[string]interface{})
  108. //dictSvc := items.GetItemsService(utils.DBE)
  109. userSvc := baseUser.GetBaseUserService(utils.DBE)
  110. //customerSvc := svccustomer.GetCustomerService(utils.DBE)
  111. //dictList["WellNo"] = dictSvc.GetKeyValueItems("WellNo", "")
  112. var userEntity userRole.Base_User
  113. userSvc.GetEntityById(this.User.Id, &userEntity)
  114. dictList["Supervisers"] = userSvc.GetUserListByDepartmentId("", userEntity.Departmentid)
  115. //var dictCustomer []svccustomer.Customer
  116. //customerSvc.GetEntitysByWhere("" + CustomerName, "", &dictCustomer)
  117. //dictList["EntrustCorp"] = &dictCustomer
  118. var datainfo DataInfo
  119. datainfo.Items = dictList
  120. this.Data["json"] = &datainfo
  121. this.ServeJSON()
  122. }
  123. // @Title 获取实体
  124. // @Description 获取实体
  125. // @Success 200 {object} contractEvaluationOrder.OilContractEvaluationOrder
  126. // @router /get/:id [get]
  127. func (this *OilContractEvaluationOrderController) GetEntity() {
  128. Id := this.Ctx.Input.Param(":id")
  129. svc := contractEvaluationOrder.GetOilContractEvaluationOrderService(utils.DBE)
  130. var model contractEvaluationOrder.OilContractEvaluationOrder
  131. svc.GetEntityByIdBytbl(OilContractEvaluationOrderName, Id, &model)
  132. this.Data["json"] = &model
  133. this.ServeJSON()
  134. }
  135. // @Title 添加
  136. // @Description 创建工单
  137. // @Param body body contractEvaluationOrder.OilContractEvaluationOrder
  138. // @Success 200 {object} controllers.Request
  139. // @router /add [post]
  140. func (this *OilContractEvaluationOrderController) AddEntity() {
  141. var model contractEvaluationOrder.OilContractEvaluationOrder
  142. var jsonBlob = this.Ctx.Input.RequestBody
  143. svc := contractEvaluationOrder.GetOilContractEvaluationOrderService(utils.DBE)
  144. json.Unmarshal(jsonBlob, &model)
  145. model.CreateOn = time.Now()
  146. model.CreateBy = this.User.Realname
  147. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  148. var errinfo ErrorDataInfo
  149. defer func() { //finally处理失败的异常
  150. if err := recover(); err != nil {
  151. errinfo.Message = err.(string)
  152. errinfo.Code = -1
  153. this.Data["json"] = &errinfo
  154. this.ServeJSON()
  155. } else {
  156. //返回正确结果
  157. errinfo.Message = "添加成功!"
  158. errinfo.Code = 0
  159. errinfo.Item = model.Id
  160. this.Data["json"] = &errinfo
  161. this.ServeJSON()
  162. }
  163. }()
  164. svc.InsertEntityBytbl(OilContractEvaluationOrderName, &model)
  165. }
  166. // @Title 确认
  167. // @Description 点击确认
  168. // @Param body body contractEvaluationOrder.OilContractEvaluationOrder
  169. // @Success 200 {object} controllers.Request
  170. // @router /update/:id [post]
  171. func (this *OilContractEvaluationOrderController) UpdateEntity() {
  172. id := this.Ctx.Input.Param(":id")
  173. var errinfo ErrorInfo
  174. defer func() { //finally处理失败的异常
  175. if err := recover(); err != nil {
  176. errinfo.Message = err.(string)
  177. errinfo.Code = -1
  178. this.Data["json"] = &errinfo
  179. this.ServeJSON()
  180. } else {
  181. //返回正确结果
  182. errinfo.Message = "修改成功!"
  183. errinfo.Code = 0
  184. this.Data["json"] = &errinfo
  185. this.ServeJSON()
  186. }
  187. }()
  188. if id == "" {
  189. panic("操作失败!请求信息不完整")
  190. }
  191. var model contractEvaluationOrder.OilContractEvaluationOrder
  192. var model1 contractEvaluationOrder.OilContractEvaluationOrder
  193. svc := contractEvaluationOrder.GetOilContractEvaluationOrderService(utils.DBE)
  194. svc.GetEntityByIdBytbl(OilContractEvaluationOrderName, id, &model1)
  195. if model1.IsConfirm == 1 {
  196. panic("操作失败!不能再次确认")
  197. }
  198. // 获取最后一条评价
  199. where := " IsFinal = 1 and ContractId = " + strconv.Itoa(model1.ContractId)
  200. var contractRev []contractReview.OilContractReview
  201. contractSvc := contractReview.GetOilContractReviewService(utils.DBE)
  202. contractSvc.GetEntitysByOrderbyWhere(OilContractReviewName, where, "Id Desc", &contractRev)
  203. if len(contractRev) <= 0 {
  204. panic("操作失败!找不到评价")
  205. }
  206. var ReviewId int
  207. for _, value := range contractRev {
  208. if value.Status != "8" {
  209. panic("操作失败!审核未结束不能确认")
  210. }
  211. ReviewId = value.Id
  212. break
  213. }
  214. var jsonBlob = this.Ctx.Input.RequestBody
  215. json.Unmarshal(jsonBlob, &model)
  216. model.ReviewId = ReviewId
  217. model.IsConfirm = 1
  218. model.ModifiedOn = time.Now()
  219. model.ModifiedBy = this.User.Realname
  220. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  221. cols := []string{
  222. "ReviewId",
  223. "IsConfirm",
  224. "ModifiedOn",
  225. "ModifiedUserId",
  226. "ModifiedBy",
  227. }
  228. svc.UpdateEntityBytbl(OilContractEvaluationOrderName, id, &model, cols)
  229. }