auditsetting.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450
  1. package system
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "strconv"
  6. "strings"
  7. "time"
  8. "dashoo.cn/backend/api/business/auditsetting"
  9. "dashoo.cn/backend/api/business/baseUser"
  10. "dashoo.cn/backend/api/business/items"
  11. "dashoo.cn/backend/api/business/organize"
  12. "dashoo.cn/backend/api/business/role"
  13. . "dashoo.cn/backend/api/controllers"
  14. "dashoo.cn/business2/permission"
  15. "dashoo.cn/business2/userRole"
  16. "dashoo.cn/utils"
  17. )
  18. type OilAuditSettingController struct {
  19. BaseController
  20. }
  21. // @Title 获取列表
  22. // @Description get user by token
  23. // @Success 200 {object} []auditsetting.Base_OilAuditSetting
  24. // @router /list [get]
  25. func (this *OilAuditSettingController) GetEntityList() {
  26. //获取分页信息
  27. page := this.GetPageInfoForm()
  28. where := " 1=1 "
  29. orderby := "Id"
  30. asc := false
  31. Order := this.GetString("Order")
  32. Prop := this.GetString("Prop")
  33. if Order != "" && Prop != "" {
  34. orderby = Prop
  35. if Order == "asc" {
  36. asc = true
  37. }
  38. }
  39. OrganizeId := this.GetString("OrganizeId")
  40. OrganizeName := this.GetString("OrganizeName")
  41. // AuditStepCode := this.GetString("AuditStepCode")
  42. AuditStepName := this.GetString("AuditStepName")
  43. RoleId := this.GetString("RoleId")
  44. RoleName := this.GetString("RoleName")
  45. WorkFlowCord := this.GetString("WorkFlowCord")
  46. WorkFlowName := this.GetString("WorkFlowName")
  47. Remark := this.GetString("Remark")
  48. CreateOn := this.GetString("CreateOn")
  49. Code := this.GetString("Code")
  50. svcPerm := permission.GetPermissionService(utils.DBE)
  51. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.AuditSetting.AllRecord")
  52. svcuser := organize.GetOrganizeService(utils.DBE)
  53. isauth = svcuser.UserInRoleById(this.User.Id, "10000203")
  54. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  55. //OrganizeId = this.User.DepartmentId //无权限看所有时,只看当前部门的数据
  56. var org organize.Base_Organize
  57. orgsvc := organize.GetOrganizeService(utils.DBE)
  58. orgsvc.GetEntityById(this.User.DepartmentId, &org)
  59. OrganizeId = strconv.Itoa(org.Parentid)
  60. if OrganizeId != "" {
  61. where = where +
  62. " and OrganizeId = '" + OrganizeId + "'"
  63. }
  64. }
  65. if OrganizeName != "" {
  66. where = where + " and OrganizeName like '%" + OrganizeName + "%'"
  67. }
  68. if Code != "" {
  69. where = where + " and AuditStepCode like '%" + Code + "%'"
  70. }
  71. if AuditStepName != "" {
  72. where = where + " and AuditStepName like '%" + AuditStepName + "%'"
  73. }
  74. if RoleId != "" {
  75. where = where + " and RoleId like '%" + RoleId + "%'"
  76. }
  77. if RoleName != "" {
  78. where = where + " and RoleName like '%" + RoleName + "%'"
  79. }
  80. if WorkFlowCord != "" {
  81. where = where + " and WorkFlowCord like '%" + WorkFlowCord + "%'"
  82. }
  83. if WorkFlowName != "" {
  84. where = where + " and WorkFlowName like '%" + WorkFlowName + "%'"
  85. }
  86. if Remark != "" {
  87. where = where + " and Remark like '%" + Remark + "%'"
  88. }
  89. if CreateOn != "" {
  90. dates := strings.Split(CreateOn, ",")
  91. if len(dates) == 2 {
  92. minDate := dates[0]
  93. maxDate := dates[1]
  94. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  95. }
  96. }
  97. if Remark != "" {
  98. where = where + " and Remark like '%" + Remark + "%'"
  99. }
  100. svc := auditsetting.GetOilAuditSettingService(utils.DBE)
  101. var list []auditsetting.Base_OilAuditSetting
  102. total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  103. var datainfo DataInfo
  104. datainfo.Items = list
  105. datainfo.CurrentItemCount = total
  106. datainfo.PageIndex = page.CurrentPage
  107. datainfo.ItemsPerPage = page.Size
  108. this.Data["json"] = &datainfo
  109. this.ServeJSON()
  110. }
  111. // @Title 获取字典列表
  112. // @Description get user by token
  113. // @Success 200 {object} map[string]interface{}
  114. // @router /dictlist [get]
  115. func (this *OilAuditSettingController) GetDictList() {
  116. dictList := make(map[string]interface{})
  117. dictSvc := items.GetItemsService(utils.DBE)
  118. userSvc := baseUser.GetBaseUserService(utils.DBE)
  119. dictList["AuditStep"] = dictSvc.GetKeyValueItems("AuditStep", this.User.AccCode)
  120. dictList["WorkFlow"] = dictSvc.GetKeyValueItems("WorkFlow", this.User.AccCode)
  121. var userEntity userRole.Base_User
  122. userSvc.GetEntityById(this.User.Id, &userEntity)
  123. dictList["Supervisers"] = userSvc.GetUserListByDepartmentId(this.User.AccCode, userEntity.Departmentid)
  124. svcRole := role.GetRoleService(utils.DBE)
  125. var roles []userRole.Base_Role
  126. where := "IsVisible=1"
  127. svcRole.GetMyRoleList("CreateOn", utils.ToStr(this.User.Id), &roles, where)
  128. dictList["RoleList"] = roles
  129. svcOrgan := organize.GetOrganizeService(utils.DBE)
  130. dictList["OrganizeId"] = this.User.DepartmentId
  131. dictList["OrganizeName"] = svcOrgan.GetNameById(this.User.DepartmentId)
  132. var users []userRole.Base_User
  133. where = "DepartmentId=" + this.User.DepartmentId
  134. svcRole.GetEntities(&users, where)
  135. dictList["users"] = users
  136. //var dictCustomer []svccustomer.Customer
  137. //customerSvc.GetEntitysByWhere(this.User.AccCode + CustomerName, "", &dictCustomer)
  138. //dictList["EntrustCorp"] = &dictCustomer
  139. var datainfo DataInfo
  140. datainfo.Items = dictList
  141. this.Data["json"] = &datainfo
  142. this.ServeJSON()
  143. }
  144. // @Title 获取实体
  145. // @Description 获取实体
  146. // @Success 200 {object} auditsetting.Base_OilAuditSetting
  147. // @router /get/:id [get]
  148. func (this *OilAuditSettingController) GetEntity() {
  149. Id := this.Ctx.Input.Param(":id")
  150. var model auditsetting.Base_OilAuditSetting
  151. svc := auditsetting.GetOilAuditSettingService(utils.DBE)
  152. svc.GetEntityByIdBytbl(OilAuditSettingName, Id, &model)
  153. this.Data["json"] = &model
  154. this.ServeJSON()
  155. }
  156. // @Title 添加
  157. // @Description 新增
  158. // @Param body body auditsetting.OilAuditSetting
  159. // @Success 200 {object} controllers.Request
  160. // @router /add [post]
  161. func (this *OilAuditSettingController) AddEntity() {
  162. audits := this.GetString("aduitres")
  163. auditIds := strings.Split(audits, ",")
  164. fmt.Println(audits)
  165. var model auditsetting.Base_OilAuditSetting
  166. var audituser auditsetting.OilAuditUser
  167. var org organize.Base_Organize
  168. var jsonBlob = this.Ctx.Input.RequestBody
  169. svc := auditsetting.GetOilAuditSettingService(utils.DBE)
  170. json.Unmarshal(jsonBlob, &model)
  171. model.CreateOn = time.Now()
  172. model.CreateBy = this.User.Realname
  173. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  174. //model.OrganizeId, _ = utils.StrTo(this.User.DepartmentId).Int()
  175. svc.GetEntityById(this.User.DepartmentId, &org)
  176. model.OrganizeId = org.Parentid
  177. var org1 organize.Base_Organize
  178. svc.GetEntityById(org.Parentid, &org1)
  179. model.OrganizeName = org1.Fullname
  180. var errinfo ErrorDataInfo
  181. //var modelsele auditsetting.Base_OilAuditSetting
  182. //where := "OrganizeId=" + this.User.DepartmentId + " and AuditStepCode='" + model.AuditStepCode + "'"
  183. //has := svc.GetEntity(&modelsele, where)
  184. //if (has) {
  185. // errinfo.Message = "审批步骤已经存在,不允许重复添加!"
  186. // errinfo.Code = -1
  187. // this.Data["json"] = &errinfo
  188. // this.ServeJSON()
  189. // return
  190. //}
  191. var err error
  192. _, err = svc.InsertEntityBytbl(OilAuditSettingName, &model)
  193. if (err == nil) {
  194. for _, Id := range auditIds {
  195. var user userRole.Base_User
  196. var org1 organize.Base_Organize
  197. svc.GetEntityById(Id, &user)
  198. svc.GetEntityById(user.Departmentid, &org1)
  199. audituser.Id = 0
  200. audituser.SettingId = model.Id
  201. audituser.DepartmentId,_ = strconv.Atoi(user.Departmentid)
  202. audituser.CompanyId = org1.Parentid
  203. audituser.UserId,_ = strconv.Atoi(Id)
  204. audituser.UserName = user.Realname
  205. audituser.CreateOn = time.Now()
  206. audituser.CreateBy = this.User.Realname
  207. audituser.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  208. _, err = svc.InsertEntityBytbl(OilAuditUserName, &audituser)
  209. }
  210. }
  211. if err == nil {
  212. //新增
  213. errinfo.Message = "添加成功!"
  214. errinfo.Code = 0
  215. errinfo.Item = model.Id
  216. this.Data["json"] = &errinfo
  217. this.ServeJSON()
  218. } else {
  219. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  220. errinfo.Code = -1
  221. this.Data["json"] = &errinfo
  222. this.ServeJSON()
  223. }
  224. }
  225. // @Title 修改实体
  226. // @Description 修改实体
  227. // @Param body body auditsetting.OilAuditSetting
  228. // @Success 200 {object} controllers.Request
  229. // @router /update/:id [post]
  230. func (this *OilAuditSettingController) UpdateEntity() {
  231. id := this.Ctx.Input.Param(":id")
  232. var errinfo ErrorInfo
  233. if id == "" {
  234. errinfo.Message = "操作失败!请求信息不完整"
  235. errinfo.Code = -2
  236. this.Data["json"] = &errinfo
  237. this.ServeJSON()
  238. return
  239. }
  240. var model auditsetting.Base_OilAuditSetting
  241. svc := auditsetting.GetOilAuditSettingService(utils.DBE)
  242. var jsonBlob = this.Ctx.Input.RequestBody
  243. json.Unmarshal(jsonBlob, &model)
  244. model.ModifiedOn = time.Now()
  245. model.ModifiedBy = this.User.Realname
  246. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  247. var org organize.Base_Organize
  248. svc.GetEntityById(this.User.DepartmentId, &org)
  249. model.OrganizeId = org.Parentid
  250. var org1 organize.Base_Organize
  251. svc.GetEntityById(org.Parentid, &org1)
  252. model.OrganizeName = org1.Fullname
  253. cols := []string{
  254. "Id",
  255. "OrganizeId",
  256. "OrganizeName",
  257. "AuditStepCode",
  258. "AuditStepName",
  259. "RoleId",
  260. "RoleName",
  261. "WorkFlowCord",
  262. "WorkFlowName",
  263. "UserId",
  264. "UserName",
  265. "Remark",
  266. "IsDelete",
  267. "CreateOn",
  268. "CreateUserId",
  269. "CreateBy",
  270. "ModifiedOn",
  271. "ModifiedUserId",
  272. "ModifiedBy",
  273. }
  274. err := svc.UpdateEntityBytbl(OilAuditSettingName, id, &model, cols)
  275. auditIds := strings.Split(model.UserId, ",")
  276. var audituser auditsetting.OilAuditUser
  277. if err == nil {
  278. where := "SettingId=" + id
  279. err = svc.DeleteEntityBytbl(OilAuditUserName, where)
  280. for _, Id := range auditIds {
  281. var user userRole.Base_User
  282. svc.GetEntityById(Id, &user)
  283. var org organize.Base_Organize
  284. svc.GetEntityById(user.Departmentid, &org)
  285. audituser.DepartmentId,_ = strconv.Atoi(user.Departmentid)
  286. audituser.CompanyId = org.Parentid
  287. audituser.Id = 0
  288. audituser.SettingId = model.Id
  289. audituser.UserId,_ = strconv.Atoi(Id)
  290. audituser.UserName = user.Realname
  291. audituser.CreateOn = time.Now()
  292. audituser.CreateBy = this.User.Realname
  293. audituser.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  294. _, err = svc.InsertEntityBytbl(OilAuditUserName, &audituser)
  295. }
  296. }
  297. if err == nil {
  298. errinfo.Message = "修改成功!"
  299. errinfo.Code = 0
  300. this.Data["json"] = &errinfo
  301. this.ServeJSON()
  302. } else {
  303. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  304. errinfo.Code = -1
  305. this.Data["json"] = &errinfo
  306. this.ServeJSON()
  307. }
  308. }
  309. // @Title 删除单条信息
  310. // @Description
  311. // @Success 200 {object} ErrorInfo
  312. // @Failure 403 :id 为空
  313. // @router /delete/:Id [delete]
  314. func (this *OilAuditSettingController) DeleteEntity() {
  315. Id := this.Ctx.Input.Param(":Id")
  316. var errinfo ErrorInfo
  317. if Id == "" {
  318. errinfo.Message = "操作失败!请求信息不完整"
  319. errinfo.Code = -2
  320. this.Data["json"] = &errinfo
  321. this.ServeJSON()
  322. return
  323. }
  324. var model auditsetting.Base_OilAuditSetting
  325. var entityempty auditsetting.Base_OilAuditSetting
  326. svc := auditsetting.GetOilAuditSettingService(utils.DBE)
  327. where := "SettingId=" + Id
  328. svc.DeleteEntityBytbl(OilAuditUserName, where)
  329. opdesc := "删除-" + Id
  330. err := svc.DeleteOperationAndWriteLogBytbl(OilAuditSettingName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "钻井日报")
  331. if err == nil {
  332. errinfo.Message = "删除成功"
  333. errinfo.Code = 0
  334. this.Data["json"] = &errinfo
  335. this.ServeJSON()
  336. } else {
  337. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  338. errinfo.Code = -1
  339. this.Data["json"] = &errinfo
  340. this.ServeJSON()
  341. }
  342. }
  343. // @Title 获取实体
  344. // @Description 获取实体
  345. // @Success 200 {object} controllers.Request
  346. // @router /isaccess [get]
  347. func (this *OilAuditSettingController) IsAccess() {
  348. auditstepcode := this.GetString("auditstepcode")
  349. var users []userRole.Base_RoleList
  350. var auditWorkflow auditsetting.Base_OilAuditSetting
  351. rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
  352. rsvc.GetAuditStepRoleEntity(OilAuditSettingName, this.User.DepartmentId, auditstepcode, &auditWorkflow)
  353. users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), this.User.AccCode)
  354. res := false
  355. for _, user := range users {
  356. if this.User.Id == strconv.Itoa(int(user.Id)) {
  357. res = true
  358. break
  359. }
  360. }
  361. this.Data["json"] = res
  362. this.ServeJSON()
  363. }
  364. // @Title 根据部门获取人员
  365. // @Description 根据部门获取人员
  366. // @router /getauditerbydept/:deptId [get]
  367. func (this *OilAuditSettingController) GetAuditerByDept() {
  368. Id := this.Ctx.Input.Param(":deptId")
  369. var users []userRole.Base_RoleList
  370. rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
  371. organsvc := organize.GetOrganizeService(utils.DBE)
  372. depids := organsvc.GetAllChildById(Id)
  373. where := "DepartmentId in (" + depids + ")"
  374. rsvc.GetEntitysByWhere(BaseUserName, where, &users)
  375. var datainfo ErrorDataInfo
  376. if users == nil {
  377. datainfo.Code = 0
  378. } else {
  379. datainfo.Code = 1
  380. }
  381. datainfo.Item = users
  382. this.Data["json"] = &datainfo
  383. this.ServeJSON()
  384. }
  385. // @Title 获取审核人列表
  386. // @Description 获取审核人列表
  387. // @Success 200 {object} auditsetting.Base_OilAuditSetting
  388. // @router /getaudituserlist/:id [get]
  389. func (this *OilAuditSettingController) GetAuditUserList() {
  390. Id := this.Ctx.Input.Param(":id")
  391. var users []userRole.Base_RoleList
  392. rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
  393. rsvc.GetAuditUserList(Id, &users)
  394. ////where := "SettingId=" + Id
  395. ////sql := "SELECT UserId Id, UserName RealName FROM " + OilAuditUserName + " where " + where
  396. //rsvc.DBE.SQL(sql).Find(&users)
  397. this.Data["json"] = &users
  398. this.ServeJSON()
  399. }