qualchange.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717
  1. package oilsupplier
  2. import (
  3. "encoding/json"
  4. "strconv"
  5. "strings"
  6. "time"
  7. "dashoo.cn/backend/api/business/oilsupplier/qualchange"
  8. "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
  9. "dashoo.cn/backend/api/business/oilsupplier/supplierfile"
  10. "dashoo.cn/business2/permission"
  11. "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
  12. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  13. "dashoo.cn/backend/api/business/workflow"
  14. "dashoo.cn/backend/api/business/baseUser"
  15. "dashoo.cn/business/userRole"
  16. . "dashoo.cn/backend/api/controllers"
  17. "dashoo.cn/utils"
  18. )
  19. type QualChangeController struct {
  20. BaseController
  21. }
  22. type QualShenHeModel struct {
  23. QualId int
  24. SuccessStatus int
  25. AuditorRemark string
  26. Auditer int
  27. SuppId int
  28. }
  29. // @Title 获取列表
  30. // @Description get user by token
  31. // @Success 200 {object} []supplier.OilSupplierView
  32. // @router /list [get]
  33. func (this *QualChangeController) GetEntityList() {
  34. //获取分页信息
  35. page := this.GetPageInfoForm()
  36. where := " b.Status >= 1 "
  37. //where := " b.Status >= 7 "
  38. orderby := "a.CreateOn desc"
  39. Order := this.GetString("Order")
  40. Prop := this.GetString("Prop")
  41. if Order != "" && Prop != "" {
  42. orderby = Prop + " " + Order
  43. }
  44. CommercialNo := this.GetString("CommercialNo")
  45. AccessCardNo := this.GetString("AccessCardNo")
  46. SupplierName := this.GetString("SupplierName")
  47. CreateOn := this.GetString("CreateOn")
  48. if CommercialNo != "" {
  49. where = where + " and a.CommercialNo like '%" + CommercialNo + "%'"
  50. }
  51. if AccessCardNo != "" {
  52. where = where + " and b.AccessCardNo like '%" + AccessCardNo + "%'"
  53. }
  54. if SupplierName != "" {
  55. where = where + " and a.SupplierName like '%" + SupplierName + "%'"
  56. }
  57. if CreateOn != "" {
  58. dates := strings.Split(CreateOn, ",")
  59. if len(dates) == 2 {
  60. minDate := dates[0]
  61. maxDate := dates[1]
  62. where = where + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  63. }
  64. }
  65. //企业用户必须加创建人条件
  66. if this.User.IsCompanyUser == 1 {
  67. where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  68. } else {
  69. //超级管理员和有查看所有数据权限的用户不加条件
  70. svcPerm := permission.GetPermissionService(utils.DBE)
  71. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord")
  72. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  73. where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  74. }
  75. }
  76. svc := qualchange.GetQualChangeService(utils.DBE)
  77. var list []qualchange.OilSupplierQual
  78. total, list := svc.GetQualPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, OilSupplierFileName, OilQualChangeMainName, orderby, where, page.CurrentPage, page.Size)
  79. var datainfo DataInfo
  80. datainfo.Items = list
  81. datainfo.CurrentItemCount = total
  82. datainfo.PageIndex = page.CurrentPage
  83. datainfo.ItemsPerPage = page.Size
  84. this.Data["json"] = &datainfo
  85. this.ServeJSON()
  86. }
  87. // @Title 获取列表
  88. // @Description get user by token
  89. // @Success 200 {object} []supplier.OilSupplierView
  90. // @router /mytasks [get]
  91. func (this *QualChangeController) GetMyTaskEntityList() {
  92. //获取分页信息
  93. page := this.GetPageInfoForm()
  94. where := " 1=1 "
  95. orderby := "Id"
  96. asc := false
  97. Order := this.GetString("Order")
  98. Prop := this.GetString("Prop")
  99. if Order != "" && Prop != "" {
  100. orderby = Prop
  101. if Order == "asc" {
  102. asc = true
  103. }
  104. }
  105. SupplierTypeName := this.GetString("SupplierTypeName")
  106. RecUnitId := this.GetString("RecUnitId")
  107. AccessCardNo := this.GetString("AccessCardNo")
  108. SupplierName := this.GetString("SupplierName")
  109. CreateOn := this.GetString("CreateOn")
  110. if SupplierTypeName != "" {
  111. where = where + " and SupplierTypeName like '%" + SupplierTypeName + "%'"
  112. }
  113. if RecUnitId != "" {
  114. where = where + " and RecUnitId like '%" + RecUnitId + "%'"
  115. }
  116. if AccessCardNo != "" {
  117. where = where + " and AccessCardNo like '%" + AccessCardNo + "%'"
  118. }
  119. if SupplierName != "" {
  120. where = where + " and SupplierName like '%" + SupplierName + "%'"
  121. }
  122. if CreateOn != "" {
  123. dates := strings.Split(CreateOn, ",")
  124. if len(dates) == 2 {
  125. minDate := dates[0]
  126. maxDate := dates[1]
  127. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  128. }
  129. }
  130. //找出待办任务
  131. actisvc := workflow.GetActivitiService(utils.DBE)
  132. certIdList := actisvc.GetMyTasks(workflow.OIL_QUAL_CHANGE, this.User.Id)
  133. where += " and Id in (" + certIdList + ")"
  134. svc := qualchange.GetQualChangeService(utils.DBE)
  135. var list []qualchange.OilQualChangeMain
  136. total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  137. var datainfo DataInfo
  138. datainfo.Items = list
  139. datainfo.CurrentItemCount = total
  140. datainfo.PageIndex = page.CurrentPage
  141. datainfo.ItemsPerPage = page.Size
  142. this.Data["json"] = &datainfo
  143. this.ServeJSON()
  144. }
  145. // @Title 资质文件
  146. // @Description get user by token
  147. // @Success 200 {object} models.Userblood
  148. // @router /filelist [get]
  149. func (this *QualChangeController) FileList() {
  150. page := this.GetPageInfoForm()
  151. var list []qualchange.OilQualChangeDetail
  152. svc := qualchange.GetQualChangeService(utils.DBE)
  153. where := " 1=1"
  154. orderby := "a.Id"
  155. asc := false
  156. Order := this.GetString("Order")
  157. Prop := this.GetString("Prop")
  158. if Order != "" && Prop != "" {
  159. orderby = Prop
  160. if Order == "asc" {
  161. asc = true
  162. }
  163. }
  164. SupplierId := this.GetString("SupplierId")
  165. if SupplierId != "" {
  166. where = where + " and a.SupplierId = '" + SupplierId + "'"
  167. }
  168. SupplierTypeCode := this.GetString("SupplierTypeCode")
  169. if SupplierTypeCode != "" {
  170. where = where + " and a.SupplierTypeCode in ( '000', '" + SupplierTypeCode + "')"
  171. }
  172. total := svc.GetQualPagingEntities(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where)
  173. var datainfo DataInfo
  174. datainfo.Items = list
  175. datainfo.CurrentItemCount = total
  176. this.Data["json"] = &datainfo
  177. this.ServeJSON()
  178. }
  179. // @Title 资质文件
  180. // @Description get user by token
  181. // @Success 200 {object} models.Userblood
  182. // @router /auditfilelist [get]
  183. func (this *QualChangeController) AuditFileList() {
  184. page := this.GetPageInfoForm()
  185. var list []qualchange.OilQualChangeDetail
  186. svc := qualchange.GetQualChangeService(utils.DBE)
  187. where := " 1=1"
  188. orderby := "a.Id"
  189. asc := false
  190. Order := this.GetString("Order")
  191. Prop := this.GetString("Prop")
  192. if Order != "" && Prop != "" {
  193. orderby = Prop
  194. if Order == "asc" {
  195. asc = true
  196. }
  197. }
  198. SupplierId := this.GetString("SupplierId")
  199. if SupplierId != "" {
  200. where = where + " and a.SupplierId = '" + SupplierId + "'"
  201. }
  202. SupplierTypeCode := this.GetString("SupplierTypeCode")
  203. if SupplierTypeCode != "" {
  204. where = where + " and a.SupplierTypeCode in ( '000', '" + SupplierTypeCode + "')"
  205. }
  206. where = where + " and b.FileUrl != ''"
  207. total := svc.GetQualPagingEntities(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where)
  208. var datainfo DataInfo
  209. datainfo.Items = list
  210. datainfo.CurrentItemCount = total
  211. this.Data["json"] = &datainfo
  212. this.ServeJSON()
  213. }
  214. // @Title 获取年审企业名称
  215. // @Description 获取实体
  216. // @Success 200 {object} annualaudit.OilAnnualAudit
  217. // @router /supplierlist [get]
  218. func (this *QualChangeController) GetSupplierList() {
  219. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  220. var supplierlist []annualaudit.Suppliername
  221. supplierlist = svc.GetSupplierList(""+OilSupplierName, ""+OilAnnualAuditName)
  222. var datainfo DataInfo
  223. datainfo.Items = supplierlist
  224. this.Data["json"] = &datainfo
  225. this.ServeJSON()
  226. }
  227. // @Title 获取字典列表
  228. // @Description get user by token
  229. // @Success 200 {object} map[string]interface{}
  230. // @router /dictlist [get]
  231. func (this *QualChangeController) GetDictList() {
  232. dictList := make(map[string]interface{})
  233. //dictSvc := items.GetItemsService(utils.DBE)
  234. userSvc := baseUser.GetBaseUserService(utils.DBE)
  235. //customerSvc := svccustomer.GetCustomerService(utils.DBE)
  236. //dictList["WellNo"] = dictSvc.GetKeyValueItems("WellNo", "")
  237. var userEntity userRole.Base_User
  238. userSvc.GetEntityById(this.User.Id, &userEntity)
  239. dictList["Supervisers"] = userSvc.GetUserListByDepartmentId("", userEntity.Departmentid)
  240. //var dictCustomer []svccustomer.Customer
  241. //customerSvc.GetEntitysByWhere("" + CustomerName, "", &dictCustomer)
  242. //dictList["EntrustCorp"] = &dictCustomer
  243. var datainfo DataInfo
  244. datainfo.Items = dictList
  245. this.Data["json"] = &datainfo
  246. this.ServeJSON()
  247. }
  248. // @Title 获取实体
  249. // @Description 获取实体
  250. // @Success 200 {object} annualaudit.OilAnnualAudit
  251. // @router /get/:id [get]
  252. func (this *QualChangeController) GetEntity() {
  253. Id := this.Ctx.Input.Param(":id")
  254. var model annualaudit.OilAnnualAudit
  255. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  256. svc.GetEntityByIdBytbl(""+OilAnnualAuditName, Id, &model)
  257. this.Data["json"] = &model
  258. this.ServeJSON()
  259. }
  260. // @Title 添加
  261. // @Description 新增
  262. // @Success 200 {object} controllers.Request
  263. // @router /add [post]
  264. func (this *QualChangeController) AddEntity() {
  265. var model annualaudit.OilAnnualAudit
  266. var errinfo ErrorDataInfo
  267. var jsonBlob = this.Ctx.Input.RequestBody
  268. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  269. json.Unmarshal(jsonBlob, &model)
  270. where := "SupplierId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName
  271. var auditentity []annualaudit.OilAnnualAudit
  272. svc.GetEntitysByWhere(""+OilAnnualAuditName, where, &auditentity)
  273. if len(auditentity) == 1 {
  274. errinfo.Message = "已提交年审,请勿重复提交!"
  275. errinfo.Code = -1
  276. this.Data["json"] = &errinfo
  277. this.ServeJSON()
  278. return
  279. }
  280. supwhere := "a.Id = " + utils.ToStr(model.SupplierId) + " and b.SupplierTypeCode = " + model.SupplierTypeName
  281. supsvc := supplier.GetOilSupplierService(utils.DBE)
  282. var list []supplier.OilSupplierView
  283. total := supsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 1, "a.Id", true, &list, supwhere)
  284. if total == 0 {
  285. errinfo.Message = "请先提交准入申请再提交年审!"
  286. errinfo.Code = -1
  287. this.Data["json"] = &errinfo
  288. this.ServeJSON()
  289. return
  290. }
  291. var suppliermodel supplier.OilSupplierView
  292. suppliermodel = list[0]
  293. model.RecUnitId = suppliermodel.RecUnitId
  294. model.CerId, _ = strconv.Atoi(suppliermodel.CertId)
  295. model.Status = "0"
  296. model.BackReason = suppliermodel.BackReason
  297. //svc.GetEntitysByWhere(""+OilSupplierName, supwhere, &supplierlist)
  298. model.CreateOn = time.Now()
  299. model.CreateBy = this.User.Realname
  300. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  301. //model.OrganizeId, _ = utils.StrTo(this.User.DepartmentId).Int()
  302. _, err := svc.InsertEntityBytbl(""+OilAnnualAuditName, &model)
  303. annualId := model.Id
  304. //工作流开始
  305. processInstanceId, _ := svc.SubmitOrgAudit("", model.WorkflowId, utils.ToStr(model.CerId), utils.ToStr(model.Id), workflow.OIL_AUDIT_APPLY, workflow.FIRST_TRIAL, this.User.Id, "1", "提交给二级单位初审", OilSupplierCertSubName, OilClassOrgSettingName)
  306. var auditmodel annualaudit.OilAnnualAudit
  307. auditmodel.WorkflowId = processInstanceId
  308. cols := []string{
  309. "Id",
  310. "WorkflowId",
  311. }
  312. svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
  313. if err == nil {
  314. //新增
  315. errinfo.Message = "添加成功!"
  316. errinfo.Code = 0
  317. errinfo.Item = model.Id
  318. this.Data["json"] = &errinfo
  319. this.ServeJSON()
  320. } else {
  321. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  322. errinfo.Code = -1
  323. this.Data["json"] = &errinfo
  324. this.ServeJSON()
  325. }
  326. }
  327. // @Title 修改实体
  328. // @Description 修改实体
  329. // @Success 200 {object} controllers.Request
  330. // @router /update/:id [post]
  331. func (this *QualChangeController) UpdateEntity() {
  332. id := this.Ctx.Input.Param(":id")
  333. var errinfo ErrorInfo
  334. if id == "" {
  335. errinfo.Message = "操作失败!请求信息不完整"
  336. errinfo.Code = -2
  337. this.Data["json"] = &errinfo
  338. this.ServeJSON()
  339. return
  340. }
  341. var model annualaudit.OilAnnualAudit
  342. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  343. var jsonBlob = this.Ctx.Input.RequestBody
  344. json.Unmarshal(jsonBlob, &model)
  345. model.ModifiedOn = time.Now()
  346. model.ModifiedBy = this.User.Realname
  347. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  348. cols := []string{
  349. "Id",
  350. "Code",
  351. "Name",
  352. "F01",
  353. "F02",
  354. "F03",
  355. "F04",
  356. "F05",
  357. "F06",
  358. "F07",
  359. "F25",
  360. "Remark",
  361. "DeletionStateCode",
  362. "CreateOn",
  363. "CreateUserId",
  364. "CreateBy",
  365. "ModifiedOn",
  366. "ModifiedUserId",
  367. "ModifiedBy",
  368. }
  369. err := svc.UpdateEntityBytbl(""+OilAnnualAuditName, id, &model, cols)
  370. if err == nil {
  371. errinfo.Message = "修改成功!"
  372. errinfo.Code = 0
  373. this.Data["json"] = &errinfo
  374. this.ServeJSON()
  375. } else {
  376. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  377. errinfo.Code = -1
  378. this.Data["json"] = &errinfo
  379. this.ServeJSON()
  380. }
  381. }
  382. // @Title 资质文件变更上传
  383. // @Description 更新文件上传
  384. // @Param id path string true
  385. // @Success 200 {object}
  386. // @router /editqualchange/:id [put]
  387. func (this *QualChangeController) EditQualChange() {
  388. id := this.Ctx.Input.Param(":id")
  389. var errinfo ErrorInfo
  390. if id == "" {
  391. errinfo.Message = "操作失败!请求信息不完整"
  392. errinfo.Code = -2
  393. this.Data["json"] = &errinfo
  394. this.ServeJSON()
  395. return
  396. }
  397. var model qualchange.OilQualChangeDetail
  398. var jsonblob = this.Ctx.Input.RequestBody
  399. svc := qualchange.GetQualChangeService(utils.DBE)
  400. json.Unmarshal(jsonblob, &model)
  401. var entity qualchange.OilQualChangeDetail
  402. var mainentirt qualchange.OilQualChangeMain
  403. var qualmain []qualchange.OilQualChangeMain
  404. qmwhere := " SupplierId = " + utils.ToStr(model.SupplierId)
  405. svc.GetEntitysByWhere(OilQualChangeMainName, qmwhere, &qualmain)
  406. var qualmainId int
  407. if len(qualmain) == 0 {
  408. mainentirt.SupplierCertId = model.SupplierCertId
  409. mainentirt.SupplierId = model.SupplierId
  410. mainentirt.Status = "0"
  411. mainentirt.Step = 1
  412. svc.InsertEntityBytbl(OilQualChangeMainName, &mainentirt)
  413. qualmainId = mainentirt.Id
  414. } else {
  415. qualmainId = qualmain[0].Id
  416. }
  417. entity = model
  418. entity.Id = 0
  419. entity.ParentId = qualmainId
  420. entity.SupplierCertId = model.SupplierCertId
  421. entity.FileId, _ = utils.StrTo(id).Int()
  422. entity.CreateOn = time.Now()
  423. entity.CreateBy = this.User.Realname
  424. entity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  425. _, err := svc.InsertEntityBytbl(OilQualChangeDetailName, &entity)
  426. if err == nil {
  427. errinfo.Message = "操作成功!"
  428. errinfo.Code = 0
  429. this.Data["json"] = &errinfo
  430. this.ServeJSON()
  431. } else {
  432. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  433. errinfo.Code = -1
  434. this.Data["json"] = &errinfo
  435. this.ServeJSON()
  436. }
  437. }
  438. // @Title 提交审批
  439. // @Description 提交审批
  440. // @Success 200 {object} controllers.Request
  441. // @router /audit/:id [post]
  442. func (this *QualChangeController) AuditEntity() {
  443. suppId := this.Ctx.Input.Param(":id")
  444. firstAudit := this.GetString("auditer")
  445. Remark := this.GetString("Remark")
  446. //取出审批列表
  447. svc := qualchange.GetQualChangeService(utils.DBE)
  448. var suppentity supplier.OilSupplier
  449. //供方信息
  450. svc.GetEntityById(suppId, &suppentity)
  451. var qualmain qualchange.OilQualChangeMain
  452. where := " SupplierId = " + suppId
  453. svc.GetEntity(&qualmain, where)
  454. var errinfo ErrorDataInfo
  455. defer func() { //finally处理失败的异常
  456. if err := recover(); err != nil {
  457. errinfo.Message = "提交失败," + err.(string)
  458. errinfo.Code = -1
  459. this.Data["json"] = &errinfo
  460. this.ServeJSON()
  461. } else {
  462. //返回正确结果
  463. errinfo.Message = "审核提交成功"
  464. errinfo.Code = 0
  465. this.Data["json"] = &errinfo
  466. this.ServeJSON()
  467. }
  468. }()
  469. svcActiviti := workflow.GetActivitiService(utils.DBE)
  470. processInstanceId := ""
  471. if qualmain.WorkFlowId == "0" || len(qualmain.WorkFlowId) <= 0 {
  472. //启动工作流
  473. processInstanceId = svcActiviti.StartProcess(workflow.OIL_QUAL_CHANGE, utils.ToStr(qualmain.Id), this.User.Id)
  474. }
  475. var ActiComplete workflow.ActiCompleteVM
  476. ActiComplete.ProcessKey = workflow.OIL_QUAL_CHANGE
  477. ActiComplete.BusinessKey = utils.ToStr(qualmain.Id)
  478. ActiComplete.UserNames = firstAudit
  479. ActiComplete.UserId = this.User.Id
  480. ActiComplete.Result = "1"
  481. ActiComplete.Remarks = Remark
  482. ActiComplete.CallbackUrl = ""
  483. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  484. if receiveVal == "true" {
  485. //记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
  486. var qualmainmodel qualchange.OilQualChangeMain
  487. qualmainmodel.WorkFlowId = processInstanceId
  488. qualmainmodel.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
  489. qualmainmodel.CreateOn = time.Now()
  490. qualmainmodel.CreateBy = this.User.Realname
  491. qualmainmodel.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  492. qualmainmodel.SupplierName = suppentity.SupplierName
  493. qualmainmodel.CommercialNo = suppentity.CommercialNo
  494. cols := []string{
  495. "Id",
  496. "WorkflowId",
  497. "Status",
  498. "Step",
  499. "CreateOn",
  500. "CreateBy",
  501. "CreateUserId",
  502. "SupplierName",
  503. "CommercialNo",
  504. }
  505. _, err := svc.UpdateEntityByIdCols(qualmain.Id, qualmainmodel, cols)
  506. if err == nil {
  507. errinfo.Message = "提交成功!"
  508. errinfo.Code = 0
  509. this.Data["json"] = &errinfo
  510. this.ServeJSON()
  511. } else {
  512. errinfo.Message = "提交失败!"
  513. errinfo.Code = -1
  514. this.Data["json"] = &errinfo
  515. this.ServeJSON()
  516. }
  517. } else {
  518. errinfo.Message = "工作流异常,请联系管理员!"
  519. errinfo.Code = -1
  520. this.Data["json"] = &errinfo
  521. this.ServeJSON()
  522. return
  523. }
  524. }
  525. // @Title 审批
  526. // @Description 审批
  527. // @Success 200 {object} controllers.Request
  528. // @router /qualaudit [post]
  529. func (this *QualChangeController) QualAudit() {
  530. svc := qualchange.GetQualChangeService(utils.DBE)
  531. var jsonblob = this.Ctx.Input.RequestBody
  532. var dataother QualShenHeModel
  533. json.Unmarshal(jsonblob, &dataother)
  534. //取出审批列表
  535. var qualid = dataother.QualId
  536. var qualmodel qualchange.OilQualChangeMain
  537. svc.GetEntityById(utils.ToStr(dataother.QualId), &qualmodel)
  538. var qualdetail []qualchange.OilQualChangeDetail
  539. where := "ParentId = " + utils.ToStr(qualid)
  540. svc.GetEntities(&qualdetail, where)
  541. var qualchanentity qualchange.OilQualChangeMain
  542. var errinfo ErrorDataInfo
  543. defer func() { //finally处理失败的异常
  544. if err := recover(); err != nil {
  545. errinfo.Message = "提交失败," + err.(string)
  546. errinfo.Code = -1
  547. this.Data["json"] = &errinfo
  548. this.ServeJSON()
  549. } else {
  550. //返回正确结果
  551. errinfo.Message = "审核提交成功"
  552. errinfo.Code = 0
  553. this.Data["json"] = &errinfo
  554. this.ServeJSON()
  555. }
  556. }()
  557. var userIds string
  558. certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  559. var users []userRole.Base_RoleList
  560. certSrv.GetAuditUser("100000178", workflow.PROF_REGULATION, &users)
  561. for _, tmpUser := range users {
  562. userIds += strconv.FormatInt(tmpUser.Id, 10) + ","
  563. }
  564. userIds = strings.Trim(userIds, ",")
  565. step := 2
  566. svcActiviti := workflow.GetActivitiService(utils.DBE)
  567. var ActiComplete workflow.ActiCompleteVM
  568. ActiComplete.ProcessKey = workflow.OIL_QUAL_CHANGE
  569. ActiComplete.BusinessKey = utils.ToStr(qualid)
  570. ActiComplete.UserNames = userIds
  571. ActiComplete.UserId = this.User.Id
  572. ActiComplete.Remarks = dataother.AuditorRemark
  573. ActiComplete.CallbackUrl = ""
  574. if dataother.SuccessStatus == 1 {
  575. ActiComplete.Result = "1"
  576. if qualmodel.Status == "1" {
  577. qualchanentity.Status = "2" //二级单位初审
  578. } else if qualmodel.Status == "2" {
  579. qualchanentity.Status = "3" //企业法规处审批
  580. step = 3
  581. }
  582. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  583. if receiveVal == "true" {
  584. cols := []string{
  585. "Id",
  586. "Status",
  587. "Step",
  588. }
  589. _, err := svc.UpdateEntityByIdCols(qualid, qualchanentity, cols)
  590. if err == nil {
  591. //原信息表更新
  592. if qualmodel.Status == "2" {
  593. if len(qualdetail) > 0 {
  594. for i := 0; i < len(qualdetail); i++ {
  595. var supfilemodel supplierfile.OilSupplierFile
  596. supfilemodel.FileName = qualdetail[i].FileName
  597. supfilemodel.FileUrl = qualdetail[i].FileUrl
  598. supfilemodel.EffectDate = qualdetail[i].EffectDate
  599. err = svc.UpdateEntityBytbl(OilSupplierFileName, qualdetail[i].FileId, &supfilemodel, []string{"FileName", "FileUrl", "EffectDate"})
  600. }
  601. }
  602. }
  603. errinfo.Message = "提交成功!"
  604. errinfo.Code = 0
  605. this.Data["json"] = &errinfo
  606. this.ServeJSON()
  607. } else {
  608. errinfo.Message = "提交失败!"
  609. errinfo.Code = -1
  610. this.Data["json"] = &errinfo
  611. this.ServeJSON()
  612. }
  613. } else {
  614. errinfo.Message = "工作流异常,请联系管理员!"
  615. errinfo.Code = -1
  616. this.Data["json"] = &errinfo
  617. this.ServeJSON()
  618. return
  619. }
  620. } else {
  621. ActiComplete.Result = "0"
  622. if qualmodel.Status == "1" {
  623. qualchanentity.Status = "-2" //二级单位初审
  624. } else if qualmodel.Status == "2" {
  625. qualchanentity.Status = "-3" //企业法规处审批
  626. }
  627. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  628. if receiveVal == "true" {
  629. qualchanentity.Step = step
  630. cols := []string{
  631. "Id",
  632. "Status",
  633. "Step",
  634. }
  635. _, err := svc.UpdateEntityByIdCols(qualid, qualchanentity, cols)
  636. if err == nil {
  637. errinfo.Message = "提交成功!"
  638. errinfo.Code = 0
  639. this.Data["json"] = &errinfo
  640. this.ServeJSON()
  641. } else {
  642. errinfo.Message = "提交失败!"
  643. errinfo.Code = -1
  644. this.Data["json"] = &errinfo
  645. this.ServeJSON()
  646. }
  647. } else {
  648. errinfo.Message = "工作流异常,请联系管理员!"
  649. errinfo.Code = -1
  650. this.Data["json"] = &errinfo
  651. this.ServeJSON()
  652. return
  653. }
  654. }
  655. }